Dela via


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 hur du matar in från Event Hubs finns i Azure Event Hubs-dataanslutning.

Information om hur du skapar anslutningen i Azure Data Explorer-webbgränssnittet, Azure-portalen eller med en ARM-mall finns i Skapa en Händelsehubb-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);
    
    Setting Föreslaget värde Fältbeskrivning
    tenantId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Ditt hyrtagar-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 applikationen som kan komma åt resurser i din tenant.
    clientSecret PlaceholderClientSecret Klienthemligheten för applikationen som kan komma åt resurser i din hyresgäst.
    resourceGroupName testrg Namnet på resursgruppen som innehåller klustret.
    klusternamn mykustocluster Namnet på klustret.
    databaseName mykustodatabase Namnet på måldatabasen i klustret.
    datakopplingsnamn myeventhubconnect Önskat namn på dataanslutningen.
    tableName StormEvents Namnet på måltabellen i måldatabasen.
    kartläggningsregelnamn 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.
    konsumentgrupp $Default Konsumentgruppen för din händelsehubb.
    location Centrala USA Platsen för dataanslutningsresursen.
    compression gzip eller Ingen Typen av datakomprimering.
    databassökning Flera eller enstaka Databasroutningen för anslutningen. Om du anger värdet till Enkel dirigeras dataanslutningen till en enskild databas i klustret enligt vad som anges i inställningen databaseName . Om du anger värdet till Multi kan du åsidosätta standardmåldatabasen med hjälp av egenskapen Databasinmatning. Mer information finns i Händelseroutning.

Ta bort en händelsehubbdataanslutning

Kör följande kommando för att ta bort händelsehubbens anslutning:

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