Delen via


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

Azure Data Explorer biedt opname van Event Hubs, een streamingplatform voor big data en een service voor gebeurtenisopname. Event Hubs kan miljoenen gebeurtenissen per seconde in bijna 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 opname vanuit Event Hubs.

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

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

Vereiste voorwaarden

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 is ingesteld, worden gegevens van de Event Hub naar uw doeltabel verzonden. 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 Microsoft.Azure.Management.Kusto NuGet-pakket.

  2. Maak een Microsoft Entra-toepassingsprincipaal voor verificatie. U hebt de map-id (tenant), de toepassings-id en het 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);
    
    Setting Voorgestelde waarde veldbeschrijving
    tenantId xxxxxxxx-xxxxx-xxxx-xxxx-xxxx-xxxxxxxxx Uw tenant-id. Ook wel directory-id genoemd.
    subscriptionId xxxxxxxx-xxxxx-xxxx-xxxx-xxxx-xxxxxxxxx De abonnements-id die u gebruikt voor het maken van bronnen.
    clientId xxxxxxxx-xxxxx-xxxx-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.
    clusternaam mykustocluster De naam van uw cluster.
    databaseName mykustodatabase De naam van de doeldatabase in uw cluster.
    gegevensverbindingnaam myeventhubconnect De gewenste naam van uw gegevensverbinding.
    tableName StormEvents De naam van de doeltabel in de doeldatabase.
    koppelingsregelNaam StormEvents_CSV_Mapping De naam van de kolomtoewijzing die betrekking heeft op de doeltabel.
    gegevensformaat CSV De gegevensindeling van het bericht.
    eventHubResourceId Resource-id De resource-ID van uw Event Hub die de gegevens bevat voor verwerking.
    consumentengroep $Default De consumentengroep van uw Event Hub.
    location Centraal-US De locatie van de gegevensverbindingsresource.
    compression gzip of None Het type gegevenscompressie.
    databaseRoutering Meerdere of enkele De databaseroutering voor de verbinding. Als u de waarde instelt op Single, wordt de gegevensverbinding doorgestuurd 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

Voer de volgende opdracht uit om de Event Hub-verbinding te verwijderen:

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