Compartilhar 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 serviços 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 conectará a um hub de eventos e fará ingestão de dados no Azure Data Explorer. Para obter uma visão geral sobre a ingestão dos Hubs de Eventos, consulte Conexão de dados dos Hubs de Eventos do Azure.

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

Para 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ê estabelecerá uma conexão entre o hub de eventos e a 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, será necessário atualizar ou recriar a conexão.

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

  2. Criar uma entidade de aplicativo do Microsoft Entra para usar na autenticação. Você precisa da ID do diretório (locatário), da ID do aplicativo e do 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);
    
    Configuração Valor sugerido Descrição do campo
    tenantId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx ID do locatário. Também conhecida como ID do diretório.
    subscriptionId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx A ID da 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 seu cluster.
    clusterName mykustocluster O nome do seu cluster.
    databaseName mykustodatabase O nome do banco de dados de destino no cluster.
    dataConnectionName myeventhubconnect O nome desejado da conexão de dados.
    tableName StormEvents O nome da tabela de destino no banco de dados de destino.
    mappingRuleName StormEvents_CSV_Mapping O nome do mapeamento de coluna relacionado à tabela de destino.
    dataFormat csv O formato de dados da mensagem.
    eventHubResourceId ID de Recurso A ID do recurso do hub de eventos que contém os dados para ingestão.
    consumerGroup $Default O grupo de consumidores do hub de eventos.
    local Centro dos EUA A localização do recurso de conexão de dados.
    compactação gzip ou nenhum O tipo de compactação de dados.
    databaseRouting Multi ou Single O roteamento de banco de dados para a conexão. Se você definir o valor para Single, a conexão de dados será direcionada para um único banco de dados no cluster conforme especificado na configuração databaseName. Se você definir o valor para Multi, poderá substituir o banco de dados de destino padrão usando a propriedade de ingestão Database. Para obter mais informações, confira Roteamento de evento.

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);