Partilhar via


Criar uma conexão de dados de Hubs de Eventos para o Azure Data Explorer com SDKs

O Azure Data Explorer oferece ingestão de Hubs de Eventos, uma plataforma de streaming de big data e um serviço de ingestão de eventos. Os Hubs de Eventos podem processar milhões de eventos por segundo quase em tempo real.

Neste artigo, você se conecta a um hub de eventos e ingere dados no Azure Data Explorer. Para obter uma visão geral sobre a ingestão a partir de Hubs de Eventos, consulte a conexão de dados dos Hubs de Eventos do Azure.

Para saber como criar a conexão na interface do usuário da Web do Azure Data Explorer, no portal do Azure ou com um modelo ARM, consulte Criar uma conexão de dados de Hubs de Eventos.

Para obter exemplos de código baseados em versões anteriores do SDK, consulte o artigo arquivado.

Pré-requisitos

Criar uma conexão de dados do hub de eventos

Nesta seção, você estabelece uma conexão entre o hub de eventos e sua tabela do Azure Data Explorer. Enquanto essa conexão estiver em vigor, os dados serão transmitidos do hub de eventos para a tabela de destino. Se o hub de eventos for movido para um recurso ou assinatura diferente, você precisará atualizar ou recriar a conexão.

  1. Instale o pacote Microsoft.Azure.Management.Kusto NuGet.

  2. Crie uma entidade de aplicação Microsoft Entra para utilizar para autenticação. Você precisa do ID do diretório (locatário), ID do aplicativo e segredo do cliente.

  3. Execute o código a seguir.

    var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Directory (tenant) ID
    var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Application ID
    var clientSecret = "PlaceholderClientSecret"; //Client Secret
    var subscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx";
    var credentials = new ClientSecretCredential(tenantId, clientId, clientSecret);
    var resourceManagementClient = new ArmClient(credentials, subscriptionId);
    var resourceGroupName = "testrg";
    //The cluster and database that are created as part of the Prerequisites
    var clusterName = "mykustocluster";
    var databaseName = "mykustodatabase";
    var subscription = await resourceManagementClient.GetDefaultSubscriptionAsync();
    var resourceGroup = (await subscription.GetResourceGroupAsync(resourceGroupName)).Value;
    var cluster = (await resourceGroup.GetKustoClusterAsync(clusterName)).Value;
    var database = (await cluster.GetKustoDatabaseAsync(databaseName)).Value;
    var dataConnections = database.GetKustoDataConnections();
    var eventHubConnectionName = "myeventhubconnect";
    //The event hub that is created as part of the Prerequisites
    var eventHubResourceId = new ResourceIdentifier("/subscriptions/<eventHubSubscriptionId>/resourceGroups/<eventHubResourceGroupName>/providers/Microsoft.EventHub/namespaces/<eventHubNamespaceName>/eventhubs/<eventHubName>");
    var consumerGroup = "$Default";
    var location = AzureLocation.CentralUS;
    //The table and column mapping are created as part of the Prerequisites
    var tableName = "StormEvents";
    var mappingRuleName = "StormEvents_CSV_Mapping";
    var dataFormat = KustoEventHubDataFormat.Csv;
    var compression = EventHubMessagesCompressionType.None;
    var databaseRouting = KustoDatabaseRouting.Multi;
    var eventHubConnectionData = new KustoEventHubDataConnection
    {
        EventHubResourceId = eventHubResourceId, ConsumerGroup = consumerGroup,
        Location = location, TableName = tableName, MappingRuleName = mappingRuleName,
        DataFormat = dataFormat, Compression = compression, DatabaseRouting = databaseRouting
    };
    await dataConnections.CreateOrUpdateAsync(WaitUntil.Completed, eventHubConnectionName, eventHubConnectionData);
    
    Setting Valor sugerido Descrição do campo
    tenantId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx O ID do inquilino. Também conhecido como ID de diretório.
    ID de subscrição xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx A ID de assinatura que você usa para a criação de recursos.
    clientId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx A ID do cliente do aplicativo que pode acessar recursos em seu locatário.
    clientSecret PlaceholderClientSecret O segredo do cliente do aplicativo que pode acessar recursos em seu locatário.
    resourceGroupName Testrg O nome do grupo de recursos que contém o cluster.
    nome_do_cluster Mykustocluster O nome do seu cluster.
    databaseName mykustodatabase O nome do banco de dados de destino no cluster.
    dataConnectionName MyEventHubConnect O nome desejado da sua conexão de dados.
    tableName StormEvents O nome da tabela de destino no banco de dados de destino.
    nomeDaRegraDeMapeamento StormEvents_CSV_Mapping O nome do mapeamento de colunas relacionado à tabela de destino.
    formato de dados CSV O formato de dados da mensagem.
    ID do recurso do Event Hub ID do recurso O ID do recurso do hub de eventos que contém os dados para ingestão.
    Grupo de consumidores $Default O grupo de consumidores do seu hub de eventos.
    localização Centro dos EUA O local do recurso de conexão de dados.
    compressão gzip ou Nenhum O tipo de compressão de dados.
    roteamento de base de dados Multi ou Single O roteamento de banco de dados para a conexão. Se você definir o valor como Single, a conexão de dados será roteada para um único banco de dados no cluster, conforme especificado na configuração databaseName . Se você definir o valor como Multi, poderá substituir o banco de dados de destino padrão usando a propriedade Databaseingestion. Para obter mais informações, consulte Roteamento de eventos.

Remover uma conexão de dados do hub de eventos

Para remover a conexão do hub de eventos, execute o seguinte comando:

kustoManagementClient.DataConnections.Delete(resourceGroupName, clusterName, databaseName, dataConnectionName);