Tworzenie połączenia danych usługi Event Hubs dla usługi Azure Data Explorer przy użyciu zestawów SDK

Usługa Azure Data Explorer oferuje pozyskiwanie z usługi Event Hubs, platformy przesyłania strumieniowego danych big data i usługi pozyskiwania zdarzeń. Usługa Event Hubs może przetwarzać miliony zdarzeń na sekundę niemal w czasie rzeczywistym.

W tym artykule nawiążesz połączenie z centrum zdarzeń i pozyskujesz dane z usługą Azure Data Explorer. Aby zapoznać się z omówieniem pozyskiwania z usługi Event Hubs, zobacz Azure Event Hubs połączenie danych.

Aby dowiedzieć się, jak utworzyć połączenie w internetowym interfejsie użytkownika usługi Azure Data Explorer, Azure Portal lub przy użyciu szablonu usługi ARM, zobacz Tworzenie połączenia danych usługi Event Hubs.

Przykłady kodu oparte na poprzednich wersjach zestawu SDK można znaleźć w zarchiwizowanym artykule.

Wymagania wstępne

Tworzenie połączenia danych centrum zdarzeń

W tej sekcji ustanowisz połączenie między centrum zdarzeń a tabelą usługi Azure Data Explorer. O ile to połączenie jest na miejscu, dane są przesyłane z centrum zdarzeń do tabeli docelowej. Jeśli centrum zdarzeń zostanie przeniesione do innego zasobu lub subskrypcji, musisz zaktualizować lub ponownie utworzyć połączenie.

  1. Zainstaluj pakiet NuGet Microsoft.Azure.Management.Kusto.

  2. Utwórz jednostkę aplikacji Microsoft Entra do użycia na potrzeby uwierzytelniania. Potrzebujesz identyfikatora katalogu (dzierżawy), identyfikatora aplikacji i klucza tajnego klienta.

  3. Uruchom następujący 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);
    
    Ustawienie Sugerowana wartość Opis pola
    tenantId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Identyfikator dzierżawy. Znany również jako identyfikator katalogu.
    subscriptionId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Identyfikator subskrypcji używany do tworzenia zasobów.
    clientId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Identyfikator klienta aplikacji, która może uzyskiwać dostęp do zasobów w dzierżawie.
    clientSecret Symbol zastępczyClientSecret Wpis tajny klienta aplikacji, która może uzyskiwać dostęp do zasobów w dzierżawie.
    resourceGroupName testrg Nazwa grupy zasobów zawierającej klaster.
    clusterName mykustocluster Nazwa klastra.
    databaseName mykustodatabase Nazwa docelowej bazy danych w klastrze.
    dataConnectionName myeventhubconnect Żądana nazwa połączenia danych.
    tableName StormEvents Nazwa tabeli docelowej w docelowej bazie danych.
    mappingRuleName StormEvents_CSV_Mapping Nazwa mapowania kolumn powiązanych z tabelą docelową.
    Dataformat Csv Format danych komunikatu.
    eventHubResourceId Identyfikator zasobu Identyfikator zasobu centrum zdarzeń, który przechowuje dane do pozyskiwania.
    consumerGroup $Default Grupa odbiorców centrum zdarzeń.
    location Środkowe stany USA Lokalizacja zasobu połączenia danych.
    kompresja Gzip lub Brak Typ kompresji danych.
    databaseRouting Wiele lub pojedyncza Routing bazy danych dla połączenia. Jeśli ustawisz wartość Na pojedynczą, połączenie danych jest kierowane do pojedynczej bazy danych w klastrze, jak określono w ustawieniu databaseName . Jeśli ustawisz wartość Na wiele, możesz przesłonić domyślną docelową bazę danych przy użyciu właściwości pozyskiwaniabazy danych. Aby uzyskać więcej informacji, zobacz Routing zdarzeń.

Usuwanie połączenia danych centrum zdarzeń

Aby usunąć połączenie centrum zdarzeń, uruchom następujące polecenie:

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