Delen via


Een Event Hubs-gegevensverbinding maken voor Azure Data Explorer met SDK's

Azure Data Explorer biedt opname van Event Hubs, een platform voor het streamen van big data en een service voor gebeurtenisopname. Event Hubs kunnen miljoenen gebeurtenissen per seconde bijna in realtime verwerken.

In dit artikel maakt u verbinding met een Event Hub en neemt u gegevens op in Azure Data Explorer. Zie Azure Event Hubs gegevensverbinding voor een overzicht van het opnemen vanuit Event Hubs.

Zie Een Event Hubs-gegevensverbinding maken voor meer informatie over het maken van de verbinding in de Azure Data Explorer-webinterface, Azure Portal of met een ARM-sjabloon.

Zie het gearchiveerde artikel voor codevoorbeelden op basis van eerdere SDK-versies.

Vereisten

Een Event Hub-gegevensverbinding maken

In deze sectie brengt u een verbinding tot stand tussen de Event Hub en uw Azure Data Explorer-tabel. Zolang deze verbinding tot stand is gebracht, worden gegevens vanuit de Event Hub verzonden naar uw doeltabel. Als de Event Hub wordt verplaatst naar een andere resource of een ander abonnement, moet u de verbinding bijwerken of opnieuw maken.

  1. Installeer het NuGet-pakket Microsoft.Azure.Management.Kusto.

  2. Maak een Microsoft Entra toepassingsprincipal voor verificatie. U hebt de map-id (tenant), toepassings-id en clientgeheim nodig.

  3. Voer de volgende code uit.

    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);
    
    Instelling Voorgestelde waarde Beschrijving van veld
    tenantId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Uw tenant-id. Dit wordt ook wel map-id genoemd.
    subscriptionId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx De abonnements-id die u gebruikt voor het maken van resources.
    clientId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx De client-id van de toepassing die toegang heeft tot resources in uw tenant.
    clientSecret Tijdelijke aanduidingClientSecret Het clientgeheim van de toepassing die toegang heeft tot resources in uw tenant.
    resourceGroupName testrg De naam van de resourcegroep die uw cluster bevat.
    clusterName mykustocluster De naam van uw cluster.
    databaseName mykustodatabase De naam van de doeldatabase in uw cluster.
    dataConnectionName myeventhubconnect De gewenste naam van uw gegevensverbinding.
    tableName StormEvents De naam van de doeltabel in de doeldatabase.
    mappingRuleName StormEvents_CSV_Mapping De naam van de kolomtoewijzing die is gerelateerd aan de doeltabel.
    dataFormat Csv De gegevensindeling van het bericht.
    eventHubResourceId Resource-id De resource-id van uw Event Hub die de gegevens voor opname bevat.
    consumerGroup $Default De consumentengroep van uw Event Hub.
    location US - centraal De locatie van de gegevensverbindingsresource.
    compressie Gzip of Geen Het type gegevenscompressie.
    databaseRouting Meerdere of enkele De databaseroutering voor de verbinding. Als u de waarde instelt op Single, wordt de gegevensverbinding gerouteerd naar één database in het cluster, zoals opgegeven in de instelling databaseName . Als u de waarde instelt op Multi, kunt u de standaarddoeldatabase overschrijven met behulp van de eigenschap Databaseopname. Zie Gebeurtenissenroutering voor meer informatie.

Een Event Hub-gegevensverbinding verwijderen

Als u de Event Hub-verbinding wilt verwijderen, voert u de volgende opdracht uit:

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