Auf Englisch lesen

Freigeben über


Erstellen einer Event Hubs-Datenverbindung für Azure Data Explorer mit SDKs

Azure Data Explorer ermöglicht die Datenerfassung aus Event Hubs. Dabei handelt es sich um eine Big-Data-Streamingplattform und einen 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 aus Event Hubs finden Sie unter Azure Event Hubs-Datenverbindung.

Informationen zum Erstellen der Verbindung über die Azure Data Explorer-Webbenutzeroberfläche, das Azure-Portal oder eine ARM-Vorlage finden Sie unter Erstellen einer Event Hubs-Datenverbindung.

Codebeispiele, die auf früheren SDK-Versionen basieren, finden Sie im archivierten Artikel.

Voraussetzungen

Erstellen einer Event Hub-Datenverbindung

In diesem Abschnitt richten Sie eine Verbindung zwischen dem Event Hub und Ihrer Azure Data Explorer-Tabelle ein. 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.

  1. Installieren Sie die erforderlichen Bibliotheken.

    pip install azure-common
    pip install azure-mgmt-kusto
    
  2. 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.

  3. Führen Sie den folgenden Code aus.

    from azure.mgmt.kusto import KustoManagementClient
    from azure.mgmt.kusto.models import EventHubDataConnection
    from azure.identity import ClientSecretCredential
    
    #Directory (tenant) ID
    tenant_id = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"
    #Application ID
    client_id = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"
    #Client Secret
    client_secret = "xxxxxxxxxxxxxx"
    subscription_id = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"
    credentials = ServicePrincipalCredentials(
            client_id=client_id,
            secret=client_secret,
            tenant=tenant_id
        )
    kusto_management_client = KustoManagementClient(credentials, subscription_id)
    
    resource_group_name = "myresourcegroup"
    #The cluster and database that are created as part of the Prerequisites
    cluster_name = "mycluster"
    database_name = "mydatabase"
    data_connection_name = "myeventhubconnect"
    #The event hub that is created as part of the Prerequisites
    event_hub_resource_id = "/subscriptions/xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx/resourceGroups/myresourcegroup/providers/Microsoft.EventHub/namespaces/myeventhubnamespace/eventhubs/myeventhub"";
    consumer_group = "$Default"
    location = "Central US"
    #The table and column mapping that are created as part of the Prerequisites
    table_name = "mytable"
    mapping_rule_name = "mytablemappingrule"
    data_format = "csv"
    database_routing = "Multi"
    #Returns an instance of LROPoller, check https://learn.microsoft.com/python/api/msrest/msrest.polling.lropoller?view=azure-python
    poller = kusto_management_client.data_connections.create_or_update(
                resource_group_name=resource_group_name,
                cluster_name=cluster_name,
                database_name=database_name,
                data_connection_name=data_connection_name,
                parameters=EventHubDataConnection(
                    event_hub_resource_id=event_hub_resource_id,
                    consumer_group=consumer_group,
                    location=location,
                    table_name=table_name,
                    mapping_rule_name=mapping_rule_name,
                    data_format=data_format,
                    database_routing=database_routing
                )
            )
    poller.wait()
    print(poller.result())
    
    Einstellung Empfohlener Wert Feldbeschreibung
    tenant_id 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.
    client_id xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Die Client-ID der Anwendung, die auf Ressourcen in Ihrem Mandanten zugreifen kann.
    client_secret xxxxxxxxxxxxxx Das Clientgeheimnis der Anwendung, die auf Ressourcen in Ihrem Mandanten zugreifen kann.
    resource_group_name myresourcegroup Der Name der Ressourcengruppe, die Ihren Cluster enthält.
    cluster_name mycluster Der Name Ihres Clusters.
    database_name mydatabase Der Name der Zieldatenbank in Ihrem Cluster.
    data_connection_name myeventhubconnect Der gewünschte Name Ihrer Datenverbindung.
    table_name mytable Der Name der Zieltabelle in der Zieldatenbank.
    mapping_rule_name mytablemappingrule Der Name der Spaltenzuordnung, die mit der Zieltabelle verknüpft ist.
    data_format csv Das Datenformat der Nachricht.
    event_hub_resource_id Ressourcen-ID Die Ressourcen-ID Ihres Event Hubs mit den Daten für die Erfassung
    consumer_group $Default Die Consumergruppe Ihres Event Hubs.
    location USA, Mitte Der Speicherort der Datenverbindungsressource.
    databaseRouting Multi oder Single Das Datenbankrouting für die Verbindung. Wenn Sie den Wert auf Single festlegen, wird die Datenverbindung wie in der Einstellung databaseName angegeben an eine einzelne Datenbank im Cluster geroutet. Wenn Sie den Wert auf Multi festlegen, können Sie die Standardzieldatenbank mithilfe der Erfassungseigenschaft Database ü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);