Partager via


Créer une connexion de données Event Hubs pour Azure Data Explorer avec des kits 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 hub d’événements et vous allez ingérer des données dans Azure Data Explorer. Pour obtenir une vue d’ensemble de l’ingestion à partir d’Event Hubs, consultez Azure Event Hubs connexion de données.

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

Pour obtenir des exemples de code basés sur des 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 allez établir une connexion entre le hub d’événements et votre table azure Data Explorer. Tant que cette connexion est en place, les données sont transmises à partir du hub d’événements dans votre table cible. Si le hub d’événements 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 Microsoft Entra principal d’application à utiliser pour l’authentification. Vous avez besoin de l’ID d’annuaire (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 Aucune 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 Single, 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é ingestion de la base de données. Pour plus d’informations, consultez Routage des événements.

Supprimer une connexion de données event hub

Pour supprimer la connexion au hub d’événements, exécutez la commande suivante :

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