Partager via


Créer une connexion de données Event Hubs pour Azure Data Explorer à l’aide de kits de développement logiciel (SDK)

Azure Data Explorer offre une ingestion à partir d’Event Hubs, une plateforme de streaming Big Data et un service d’ingestion d’événements. Event Hubs peut traiter des millions d’événements par seconde en quasi-temps réel.

Dans cet article, vous vous connectez à un Event Hub et ingérez des données dans Azure Data Explorer. Pour obtenir une vue d’ensemble de l’ingestion à partir d’Event Hubs, consultez l’article Connexion de données Azure Event Hubs.

Pour apprendre à créer la connexion dans l’interface utilisateur web Azure Data Explorer, dans le portail Azure ou avec un modèle ARM, consultez l’article Créer une connexion de données Event Hubs.

Pour obtenir des exemples de code fondés sur les versions précédentes du kit de développement logiciel (SDK), consultez l’article archivé.

Prérequis

Créer une connexion de données Event Hub

Dans cette section, vous établissez une connexion entre l’Event Hub et votre table Azure Data Explorer. Tant que cette connexion est en place, les données sont transmises depuis l’Event Hub dans votre table cible. Si l’Event Hub est déplacé vers une autre ressource ou un autre abonnement, vous devez mettre à jour ou recréer la connexion.

  1. Installez le package NuGet Microsoft.Azure.Management.Kusto.

  2. Créez un principal d’application Microsoft Entra à utiliser pour l’authentification. Vous avez besoin de l’ID d’annuaire (de locataire), de l’ID d’application et de la clé secrète client.

  3. Exécutez le code suivant.

    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);
    
    Paramètre Valeur suggérée Description du champ
    tenantId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Votre ID de client. Également appelé ID de répertoire.
    subscriptionId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx ID d’abonnement que vous utilisez pour la création de ressources.
    clientId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx ID client de l’application qui peut accéder aux ressources figurant dans votre locataire.
    clientSecret PlaceholderClientSecret Secret client de l’application qui peut accéder aux ressources figurant dans votre locataire.
    resourceGroupName testrg Nom du groupe de ressources qui contient votre cluster.
    clusterName mykustocluster Nom de votre cluster.
    databaseName mykustodatabase Nom de la base de données cible dans votre cluster.
    dataConnectionName myeventhubconnect Nom souhaité de votre connexion de données.
    tableName StormEvents Nom de la table cible dans la base de données cible.
    mappingRuleName StormEvents_CSV_Mapping Nom de votre mappage de colonnes associé à la table cible.
    dataFormat csv Format de données du message.
    eventHubResourceId ID de ressource ID de ressource de votre hub d’événements qui contient les données pour l’ingestion.
    consumerGroup $Default Groupe de consommateurs de votre hub d’événements.
    location USA Centre Emplacement de la ressource de connexion de données.
    compression gzip ou None Type de compression de données.
    databaseRouting Multi ou Single Routage de la base de données pour la connexion. Si vous définissez la valeur sur Unique, la connexion de données est routée vers une base de données unique dans le cluster, comme spécifié dans le paramètre databaseName. Si vous définissez la valeur sur Multi, vous pouvez remplacer la base de données cible par défaut en utilisant la propriété d’ingestion Database. Pour plus d’informations, consultez Routage des événements.

Supprimer une connexion de données Event Hub

Pour supprimer la connexion Event Hub, exécutez la commande suivante :

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