Erstellen einer Event Hubs-Datenverbindung für Azure Data Explorer mit SDKs
Azure Data Explorer bietet die Erfassung von Event Hubs, einer Big Data-Streamingplattform und einem Ereigniserfassungsdienst. Event Hubs kann Millionen von Ereignissen pro Sekunde nahezu in Echtzeit verarbeiten.
In diesem Artikel stellen Sie eine Verbindung mit einem Event Hub her und erfassen Daten in Azure Data Explorer. Eine Übersicht über die Erfassung von Event Hubs finden Sie unter Azure Event Hubs Datenverbindung.
Informationen zum Erstellen der Verbindung auf der Azure Data Explorer-Webbenutzeroberfläche, Azure-Portal oder mit einer ARM-Vorlage finden Sie unter Erstellen einer Event Hubs-Datenverbindung.
Codebeispiele, die auf früheren SDK-Versionen basieren, finden Sie im archivierten Artikel.
Voraussetzungen
- Ein Azure-Abonnement. Erstellen Sie ein kostenloses Azure-Konto.
- Ein Azure Data Explorer-Cluster und eine Datenbank Erstellen eines Clusters und einer Datenbank
- Eine Zieltabelle. Erstellen Sie eine Tabelle , oder verwenden Sie eine vorhandene Tabelle.
- Eine Erfassungszuordnung für die Tabelle.
- Ein Event Hub mit Daten für die Erfassung.
Erstellen einer Event Hub-Datenverbindung
In diesem Abschnitt stellen Sie eine Verbindung zwischen dem Event Hub und Ihrer Azure Data Explorer-Tabelle her. Solange diese Verbindung besteht, werden Daten vom Event Hub in Ihre Zieltabelle übertragen. Wenn der Event Hub in eine andere Ressource oder ein anderes Abonnement verschoben wird, müssen Sie die Verbindung aktualisieren oder neu erstellen.
Installieren Sie das NuGet-Paket Microsoft.Azure.Management.Kusto.
Erstellen Sie einen Microsoft Entra Anwendungsprinzipal, der für die Authentifizierung verwendet werden soll. Sie benötigen die Verzeichnis-ID (Mandanten-ID), die Anwendungs-ID und den geheimen Clientschlüssel.
Führen Sie den folgenden Code aus.
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);
Einstellung Empfohlener Wert Feldbeschreibung tenantId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Ihre Mandanten-ID. Wird auch als Verzeichnis-ID bezeichnet. subscriptionId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Die Abonnement-ID, die Sie für die Ressourcenerstellung verwenden. clientId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Die Client-ID der Anwendung, die auf Ressourcen in Ihrem Mandanten zugreifen kann. clientSecret PlaceholderClientSecret Das Clientgeheimnis der Anwendung, die auf Ressourcen in Ihrem Mandanten zugreifen kann. resourceGroupName testrg Der Name der Ressourcengruppe, die Ihren Cluster enthält. clusterName mykustocluster Der Name Ihres Clusters. databaseName mykustodatabase Der Name der Zieldatenbank in Ihrem Cluster. dataConnectionName myeventhubconnect Der gewünschte Name Ihrer Datenverbindung. tableName StormEvents Der Name der Zieltabelle in der Zieldatenbank. mappingRuleName StormEvents_CSV_Mapping Der Name der Spaltenzuordnung, die mit der Zieltabelle verknüpft ist. dataFormat csv Das Datenformat der Nachricht. eventHubResourceId Ressourcen-ID Die Ressourcen-ID Ihres Event Hubs mit den Daten für die Erfassung consumerGroup $Default Die Consumergruppe Ihres Event Hubs. location USA, Mitte Der Speicherort der Datenverbindungsressource. compression Gzip oder Keine Der Typ der Datenkomprimierung databaseRouting Multi oder Single Das Datenbankrouting für die Verbindung. Wenn Sie den Wert auf Single festlegen, wird die Datenverbindung an eine einzelne Datenbank im Cluster weitergeleitet, wie in der Einstellung databaseName angegeben. Wenn Sie den Wert auf Multi festlegen, können Sie die Standardzieldatenbank mithilfe der ErfassungseigenschaftDatabase überschreiben. Weitere Informationen finden Sie unter Ereignisrouting.
Entfernen einer Event Hub-Datenverbindung
Führen Sie den folgenden Befehl aus, um die Event Hub-Verbindung zu entfernen:
kustoManagementClient.DataConnections.Delete(resourceGroupName, clusterName, databaseName, dataConnectionName);
Verwandte Inhalte
- Überprüfen der Verbindung mit der Event Hub-Beispielnachrichten-App
- Abfragen von Daten auf der Web-Benutzeroberfläche
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für