Skapa en Event Hubs-dataanslutning för Azure Data Explorer med SDK:er

Azure Data Explorer erbjuder inmatning från Event Hubs, en plattform för stordataströmning och händelseinmatningstjänst. Event Hubs kan bearbeta miljontals händelser per sekund nästan i realtid.

I den här artikeln ansluter du till en händelsehubb och matar in data i Azure Data Explorer. En översikt över inmatning från Event Hubs finns i Azure Event Hubs dataanslutning.

Information om hur du skapar anslutningen i Azure Data Explorer-webbgränssnittet, Azure Portal eller med en ARM-mall finns i Skapa en Event Hubs-dataanslutning.

Kodexempel baserade på tidigare SDK-versioner finns i den arkiverade artikeln.

Förutsättningar

Skapa en händelsehubbdataanslutning

I det här avsnittet upprättar du en anslutning mellan händelsehubben och din Azure Data Explorer-tabell. Så länge den här anslutningen är på plats överförs data från händelsehubben till måltabellen. Om händelsehubben flyttas till en annan resurs eller prenumeration måste du uppdatera eller återskapa anslutningen.

  1. Installera NuGet-paketet Microsoft.Azure.Management.Kusto.

  2. Skapa ett Microsoft Entra programhuvudnamn som ska användas för autentisering. Du behöver katalog-ID(klient)-ID, program-ID och klienthemlighet.

  3. Kör följande kod.

    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);
    
    Inställning Föreslaget värde Fältbeskrivning
    tenantId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Ditt klientorganisations-ID. Kallas även katalog-ID.
    subscriptionId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Det prenumerations-ID som du använder för att skapa resurser.
    ClientID xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Klient-ID för programmet som kan komma åt resurser i din klientorganisation.
    clientSecret PlatshållareKlientSecret Klienthemligheten för programmet som kan komma åt resurser i din klientorganisation.
    resourceGroupName testrg Namnet på resursgruppen som innehåller klustret.
    clusterName mykustocluster Namnet på klustret.
    databaseName mykustodatabase Namnet på måldatabasen i klustret.
    dataConnectionName myeventhubconnect Önskat namn på dataanslutningen.
    tableName StormEvents Namnet på måltabellen i måldatabasen.
    mappingRuleName StormEvents_CSV_Mapping Namnet på din kolumnmappning som är relaterad till måltabellen.
    dataFormat Csv Meddelandets dataformat.
    eventHubResourceId Resurs-ID Resurs-ID för din händelsehubb som innehåller data för inmatning.
    consumerGroup $Default Konsumentgruppen för din händelsehubb.
    location USA, centrala Platsen för dataanslutningsresursen.
    komprimering Gzip eller Ingen Typ av datakomprimering.
    databaseRouting Flera eller enstaka Databasroutningen för anslutningen. Om du ställer in värdet på Enkel dirigeras dataanslutningen till en enkel databas i klustret enligt vad som anges i inställningen databaseName . Om du ställer in värdet på Multi kan du åsidosätta standardmåldatabasen med hjälp av egenskapen Databasinmatning. Mer information finns i Händelsedirigering.

Ta bort en händelsehubbdataanslutning

Om du vill ta bort händelsehubbens anslutning kör du följande kommando:

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