Udostępnij za pośrednictwem


Tworzenie połączenia danych usługi Event Hubs dla usługi Azure Data Explorer za pomocą 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 pozyskasz dane z usługi Azure Data Explorer. Aby zapoznać się z omówieniem pozyskiwania z usługi Event Hubs, zobacz Połączenie danych usługi Azure Event Hubs.

Aby dowiedzieć się, jak utworzyć połączenie w internetowym interfejsie użytkownika usługi Azure Data Explorer, witrynie Azure Portal lub szablonie 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 Firmy 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 Klucz tajny klienta aplikacji, który 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 kolumny powiązana z tabelą docelową.
    dataFormat csv Format danych wiadomości.
    eventHubResourceId Identyfikator zasobu Identyfikator zasobu centrum zdarzeń, który przechowuje dane do pozyskiwania.
    consumerGroup $Default Grupa odbiorców centrum zdarzeń.
    lokalizacja Środkowe stany USA Lokalizacja zasobu połączenia danych.
    kompresja Gzip lub Brak Typ kompresji danych.
    databaseRouting Wiele lub pojedynczy 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 zastąpić domyślną docelową bazę danych przy użyciu właściwości Pozyskiwanie bazy 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);