Teilen über


Erfassen von Daten aus Event Hubs in den Azure Synapse-Daten-Explorer

Azure Synapse Data Explorer ist ein schneller und hochgradig skalierbarer Dienst zur Untersuchung von Protokoll- und Telemetriedaten. Azure Synapse Data Explorer bietet die Erfassung von Daten aus Event Hubs, IoT Hubs und Blobs, die in Blobcontainer geschrieben werden.

Azure Synapse Data Explorer ermöglicht die Datenaufnahme (das Laden von Daten) aus Event Hubs. Dabei handelt es sich um eine Big-Data-Streaming-Plattform und einen Ereignisverarbeitungsdienst. Event Hubs kann Millionen von Ereignissen pro Sekunde nahezu in Echtzeit verarbeiten. In diesem Abschnitt erstellen Sie Event Hubs, stellen zu denen eine Verbindung von Azure Synapse Daten-Explorer aus her und zeigen den Datenfluss durch das System an.

Voraussetzungen

  • Ein Azure-Abonnement. Erstellen Sie ein kostenloses Azure-Konto.

  • Erstellen eines Data Explorer-Pools über Synapse Studio oder im Azure-Portal

  • Erstellen Sie eine Data Explorer-Datenbank.

    1. Wählen Sie in Synapse Studio im linken Bereich Daten aus.

    2. Wählen Sie + (Neue Ressource hinzufügen) >Data Explorer-Pool aus, und verwenden Sie die folgenden Informationen:

      Einstellung Vorgeschlagener Wert BESCHREIBUNG
      Poolname contosodataexplorer Name des zu verwendende Data Explorer-Pools
      Name TestDatabase Der Datenbankname muss innerhalb des Clusters eindeutig sein.
      Standardaufbewahrungszeitraum 365 Die Zeitspanne (in Tagen), für die garantiert wird, dass die Daten für Abfragen verfügbar bleiben. Die Zeitspanne wird ab dem Zeitpunkt gemessen, zu dem die Daten erfasst werden.
      Standardcachezeitraum 31 Die Zeitspanne (in Tagen), wie lange häufig abgefragte Daten im SSD-Speicher oder RAM (und nicht im längerfristigen Speicher) verfügbar bleiben.
    3. Wählen Sie Erstellen, um die Datenbank zu erstellen. Die Erstellung dauert in der Regel weniger als eine Minute.

  • Erstellen einer Zieltabelle, an die Event Hubs Daten senden

    1. Wählen Sie in Synapse Studio im linken Bereich Entwickeln aus.

    2. Wählen Sie unter KQL-Skripts die Option + (Neue Ressource hinzufügen) >KQL-Skript aus. Im rechten Bereich können Sie Ihr Skript benennen.

    3. Wählen Sie im Menü Verbinden mit den Eintrag contosodataexplorer aus.

    4. Wählen Sie im Menü Datenbank verwenden die Option TestDatabase aus.

    5. Fügen Sie den folgenden Befehl ein, und wählen Sie Ausführen aus, um die Tabelle zu erstellen.

      .create table TestTable (TimeStamp: datetime, Name: string, Metric: int, Source:string)
      

      Tipp

      Vergewissern Sie sich, dass die Tabelle erstellt wurde. Wählen Sie im linken Bereich Daten aus, wählen Sie das Menü mit weiteren Optionen contosodataexplorer aus, und wählen Sie dann Aktualisieren aus. Erweitern Sie unter contosodataexplorer den Eintrag Tabellen, und stellen Sie sicher, dass die Tabelle TestTable in der Liste angezeigt wird.

    6. Kopieren Sie den folgenden Befehl in das Fenster, und wählen Sie Ausführen, um die eingehenden JSON-Daten den Spaltennamen und Datentypen der Tabelle (TestTable) zuzuordnen.

      .create table TestTable ingestion json mapping 'TestMapping' '[{"column":"TimeStamp", "Properties": {"Path": "$.timeStamp"}},{"column":"Name", "Properties": {"Path":"$.name"}} ,{"column":"Metric", "Properties": {"Path":"$.metric"}}, {"column":"Source", "Properties": {"Path":"$.source"}}]'
      
  • Es wird empfohlen, eine vom Benutzer zugewiesene verwaltete Identität oder eine vom System zugewiesene verwaltete Identität für die Datenverbindung zu verwenden (optional).

  • Eine Beispiel-App, die Daten generiert und an einen Event Hub sendet. Laden Sie die Beispiel-App auf Ihr System herunter.

  • Visual Studio-2019 zum Ausführen der Beispielapp

Melden Sie sich auf dem Azure-Portal an.

Melden Sie sich beim Azure-Portal an.

Erstellen eines Ereignis-Hubs

Erstellen Sie einen Event Hub, indem Sie im Azure-Portal eine Azure Resource Manager-Vorlage verwenden.

  1. Verwenden Sie für die Event Hub-Erstellung die folgende Schaltfläche, um die Bereitstellung zu starten. Klicken Sie mit der rechten Maustaste, und wählen Sie In neuem Fenster öffnen, damit Sie die restlichen Schritte in diesem Artikel ausführen können.

    Schaltfläche zum Bereitstellen der Resource Manager-Vorlage in Azure.

    Mit der Schaltfläche In Azure bereitstellen gelangen Sie zum Azure-Portal.

  2. Wählen Sie das Abonnement aus, in dem Sie den Event Hub erstellen möchten, und erstellen Sie eine Ressourcengruppe mit dem Namen test-hub-rg.

    Erstellen einer Ressourcengruppe

  3. Füllen Sie das Formular mit den folgenden Informationen aus.

    Verwenden Sie für alle nicht in der folgenden Tabelle aufgeführten Einstellungen die jeweiligen Standardwerte.

    Einstellung Empfohlener Wert Feldbeschreibung
    Subscription Ihr Abonnement Wählen Sie das Azure-Abonnement aus, das Sie für Ihre Event Hubs verwenden möchten.
    Resource group test-hub-rg Erstellen Sie eine neue Ressourcengruppe.
    Position USA, Westen Wählen Sie für diesen Artikel die Option USA, Westen aus. Wählen Sie für ein Produktionssystem die Region aus, die Ihre Anforderungen am besten erfüllt. Erstellen Sie den Event-Hubs-Namensraum am gleichen Standort wie den Azure Synapse-Daten-Explorer-Cluster, um eine optimale Leistung zu erzielen (besonders wichtig für Event Hubs-Namensräume mit hohem Durchsatz).
    Namespacename Ein eindeutiger Namespacename Wählen Sie einen eindeutigen Namen, der Ihren Namespace identifiziert. Beispiel: mytestnamespace. Der Domänenname servicebus.windows.net wird an den von Ihnen angegebenen Namen angefügt. Der Name darf nur Buchstaben, Zahlen und Bindestriche enthalten. Der Name muss mit einem Buchstaben beginnen und mit einem Buchstaben oder einer Zahl enden. Der Wert muss zwischen 6 und 50 Zeichen umfassen.
    Event Hubs-Name test-hub Die Event Hubs befinden sich unter dem Namespace, der einen eindeutigen Bereichscontainer bereitstellt. Der Name der Event Hubs muss innerhalb des Namespaces eindeutig sein.
    Name der Consumergruppe test-group Durch Consumergruppen können mehrere verarbeitende Anwendungen jeweils über eine separate Ansicht des Ereignisdatenstroms verfügen.
  4. Klicken Sie auf Überprüfen + erstellen.

  5. Überprüfen Sie die Zusammenfassung der erstellten Ressourcen. Wählen Sie Erstellen aus, wodurch bestätigt wird, dass Sie Ressourcen in Ihrem Abonnement erstellen.

    Screenshot vom Azure-Portal zum Überprüfen und Erstellen eines Event-Hubs-Namensraumes, Event Hubs und einer Consumergruppe.

  6. Wählen Sie auf der Symbolleiste die Option Benachrichtigungen aus, um den Bereitstellungsvorgang zu überwachen. Es kann einige Minuten dauern, bis die Bereitstellung erfolgreich abgeschlossen ist, aber Sie können jetzt mit dem nächsten Schritt fortfahren.

    Symbol „Benachrichtigungen“

Überlegungen zur Authentifizierung

Abhängig vom Identitätstyp, den Sie für die Authentifizierung bei Event Hubs verwenden, benötigen Sie möglicherweise einige andere Konfigurationen.

  • Wenn Sie sich bei Event Hubs mit einer benutzerseitig zugewiesenen verwalteten Identität authentifizieren, navigieren Sie zu Ihren Event Hubs > Netzwerk, wählen Sie dann unter Zugang gewähren aus die Option Alle Netzwerke aus, und speichern Sie die Änderungen.

    Screenshot der Event-Hubs-Netzwerkseite mit der Auswahl, den Zugriff auf alle Netzwerke zuzulassen.

  • Wenn Sie sich bei Event Hubs mit einer systemseitig zugewiesenen verwalteten Identität authentifizieren, navigieren Sie zu Ihren Event Hubs > Netzwerk, und erlauben Sie dann entweder den Zugriff von allen Netzwerken aus, oder wählen Sie unter Zugriff gewähren über die Option Ausgewählte Netzwerke und anschließend Vertrauenswürdigen Microsoft-Diensten die Umgehung dieser Firewall erlauben aus, und speichern Sie die Änderungen.

    Screenshot der Event-Hubs-Netzwerkseite mit der Auswahl, den Zugriff auf vertrauenswürdige Dienste zuzulassen.

Herstellen einer Verbindung mit den Event Hubs

Als Nächstes stellen Sie über den Data Explorer Pool eine Verbindung mit den Event Hubs her. Nach Einrichtung dieser Verbindung werden bei Event Hubs eingehende Daten an die Tabelle gestreamt, die Sie weiter oben in diesem Artikel erstellt haben.

  1. Wählen Sie auf der Symbolleiste die Option Benachrichtigungen aus, um zu überprüfen, ob die Bereitstellung der Event Hubs erfolgreich verlaufen ist.

  2. Wählen Sie unter dem von Ihnen erstellten Data Explorer Pool Datenbanken>TestDatenbank aus.

    Screenshot des Testdatenbankpools mit ausgewählter Testdatenbank.

  3. Wählen Sie Datenverbindungen und dann Datenverbindung hinzufügen aus.

    Wählen Sie Datenaufnahme aus und fügen Sie dann die Datenverbindung hinzu.

Erstellen einer Datenverbindung (Vorschau)

Füllen Sie das Formular mit den folgenden Informationen aus, und wählen Sie dann Erstellen aus.

Screenshot des Datenverbindungsbereichs in Event Hubs.

Einstellung Empfohlener Wert Feldbeschreibung
Name der Datenverbindung test-hub-connection Der Name der Verbindung, die Sie in Azure Synapse Data Explorer erstellen möchten.
Subscription Die Abonnement-ID, unter der sich die Event Hubs-Ressource befindet Dieses Feld wird automatisch ausgefüllt.
Event Hubs-Namespace Ein eindeutiger Namespacename Der von Ihnen zuvor ausgewählte Name, der Ihren Namespace identifiziert.
Event Hubs test-hub Die von Ihnen erstellten Event Hubs.
Consumergruppe test-group Die Consumergruppe, die in den von Ihnen erstellten Event Hubs definiert ist.
Ereignissystemeigenschaften Auswählen relevanter Eigenschaften Die Event Hubs-Systemeigenschaften. Wenn pro Ereignisnachricht mehrere Datensätze vorhanden sind, werden die Systemeigenschaften dem ersten Datensatz hinzugefügt. Beim Hinzufügen von Systemeigenschaften erstellen oder aktualisieren Sie das Tabellenschema und die Zuordnung, um die ausgewählten Eigenschaften einzubeziehen.
Komprimierung None Der Komprimierungstyp der Event Hubs-Nachrichtennutzlast. Unterstützte Komprimierungstypen: Ohne, GZip.
Verwaltete Identität Systemseitig zugewiesen Die verwaltete Identität, die von Data Explorer für den Zugriff zum Lesen im Event Hubs verwendet wird.

Hinweis:
Wenn die Datenverbindung erstellt wird:
- Systemseitig zugewiesene Identitäten werden automatisch erstellt, wenn sie nicht vorhanden sind.
- Der verwalteten Identität wird automatisch die Rolle Azure Event Hubs-Datenempfänger zugewiesen, und sie wird Ihrem Data Explorer-Cluster hinzugefügt. Es wird empfohlen, zu überprüfen, ob die Rolle zugewiesen und die Identität dem Cluster hinzugefügt wurde.

Zieltabelle

Es stehen zwei Routingoptionen für erfasste Daten zur Verfügung: statisch und dynamisch. In diesem Artikel verwenden Sie statisches Routing, für das der Tabellenname, das Datenformat und die Zuordnung als Standardwerte angegeben werden müssen. Enthält die Event Hubs-Nachricht Datenroutinginformationen, überschreiben diese Routinginformationen die Standardeinstellungen.

  1. Füllen Sie die folgenden Routingeinstellungen aus:

    Standardroutingeinstellungen für die Aufnahme von Daten in Event Hubs – Azure Synapse-Daten-Explorer.

    Einstellung Empfohlener Wert Feldbeschreibung
    Tabellenname TestTable Die Tabelle, die Sie unter TestDatabase erstellt haben.
    Datenformat JSON Die unterstützen Formate sind Avro, CSV, JSON, MULTILINE JSON, ORC, PARQUET, PSV, SCSV, SOHSV, TSV, TXT, TSVE, APACHEAVRO und W3CLOG.
    Zuordnung TestMapping Die Zuordnung, die Sie in TestDatabase erstellt haben, um eingehende Daten den Spaltennamen und Datentypen von TestTable zuzuordnen. Für „JSON“, „MULTILINE JSON“ und „AVRO“ erforderlich, für andere Formate optional.

    Hinweis

    • Sie müssen nicht alle Standardroutingeinstellungen angeben. Es ist auch zulässig, nur einen Teil der Einstellungen anzugeben.
    • Nur Ereignisse, die nach dem Erstellen der Datenverbindung in die Warteschlange eingereiht werden, werden erfasst.
  2. Klicken Sie auf Erstellen.

Zuordnung von Ereignissystemeigenschaften

Hinweis

  • Systemeigenschaften werden für json und Tabellenformate (csv, tsv usw.), aber nicht für komprimierte Daten unterstützt. Bei Verwendung eines nicht unterstützten Formats werden die Daten weiterhin erfasst, die Eigenschaften werden jedoch ignoriert.
  • Bei Tabellendaten werden Systemeigenschaften nur für Ereignismeldungen mit einem Datensatz unterstützt.
  • Bei JSON-Daten werden Systemeigenschaften auch für Ereignismeldungen mit mehreren Datensätzen unterstützt. In solchen Fällen werden die Systemeigenschaften nur dem ersten Datensatz der Ereignismeldung hinzugefügt.
  • Für die csv-Zuordnung werden Eigenschaften in der in der Tabelle csv aufgeführten Reihenfolge am Anfang des Datensatzes hinzugefügt.
  • Für die json-Zuordnung werden Eigenschaften entsprechend den Eigenschaftsnamen in der Tabelle Systemeigenschaften hinzugefügt.

Wenn Sie Ereignissystemeigenschaften im Abschnitt Datenquelle der Tabelle ausgewählt haben, müssen Sie die Systemeigenschaften in das Tabellenschema und die Zuordnung einschließen.

Verbindungszeichenfolge kopieren

Wenn Sie die in den Voraussetzungen angegebene Beispiel-App ausführen, benötigen Sie die Verbindungszeichenfolge für den Event Hubs-Namespace.

  1. Wählen Sie unter dem von Ihnen erstellten Event Hubs-Namespace zuerst Freigegebene Zugriffsrichtlinien und dann RootManageSharedAccessKey aus.

    SAS-Richtlinien

  2. Kopieren Sie den Wert für Verbindungszeichenfolge – Primärschlüssel. Dieser wird im nächsten Abschnitt eingefügt.

    Verbindungszeichenfolge.

Generieren von Beispieldaten

Verwenden Sie die Beispiel-App, die Sie heruntergeladen haben, um die Daten zu generieren.

Warnung

In diesem Beispiel wird die Verbindungszeichenfolgenauthentifizierung verwendet, um eine Verbindung mit Event Hubs herzustellen, um die Einfachheit des Beispiels zu gewährleisten. Das hartcodieren einer Verbindungszeichenfolge in Ihr Skript erfordert jedoch ein sehr hohes Vertrauen in die Anwendung und birgt Sicherheitsrisiken.

Verwenden Sie für langfristige, sichere Lösungen eine der folgenden Optionen:

  1. Öffnen Sie die Beispiel-App-Projektmappe in Visual Studio.

  2. Ändern Sie in der Datei program.cs die Konstante eventHubName in den Namen der Event Hubs und die Konstante connectionString in die Verbindungszeichenfolge, die Sie aus den Event Hubs-Namespace kopiert haben.

    const string eventHubName = "test-hub";
    // Copy the connection string ("Connection string-primary key") from your Event Hub namespace.
    const string connectionString = @"<YourConnectionString>";
    
  3. Erstellen Sie die App, und führen Sie sie aus. Die App sendet Nachrichten an die Event Hubs und gibt alle zehn Sekunden den Status aus.

  4. Nachdem die App einige Nachrichten gesendet hat, fahren Sie mit dem nächsten Schritt fort: Überprüfen Sie die in die Event Hubs und in die Testtabelle fließenden Daten.

Überprüfen des Datenflusses

Anhand der von der App generierten Daten können Sie den Datenfluss von Event Hubs zur Tabelle in Ihrem Cluster nachvollziehen.

  1. Im Azure-Portal sehen Sie unter Ihren Event Hubs den Anstieg der Aktivität während der App-Ausführung.

    Event Hub-Diagramm.

  2. Führen Sie in Ihrer Testdatenbank die folgende Abfrage aus, um zu überprüfen, wie viele Nachrichten bisher an die Datenbank gesendet wurden:

    TestTable
    | count
    
  3. Führen Sie die folgende Abfrage aus, um den Inhalt der Nachrichten anzuzeigen:

    TestTable
    

    Das Resultset sollte wie auf der folgenden Abbildung aussehen:

    Nachrichten-Resultset

    Hinweis

    • Azure Synapse Data Explorer verfügt über eine Aggregationsrichtlinie (Batching) für die Datenerfassung, die für die Optimierung des Erfassungsprozesses konzipiert ist. Die Standardrichtlinie für die Batchverarbeitung ist so konfiguriert, dass ein Batch versiegelt wird, wenn eine der folgenden Bedingungen für den Batch zutrifft: eine maximale Verzögerungszeit von 5 Minuten, eine Gesamtgröße von 1 G oder 1.000 Blobs. Daher kann es zu Wartezeit kommen. Weitere Informationen finden Sie unter Batching-Richtlinie.
    • Die Event Hub-Erfassung beinhaltet die Event Hub-Antwortzeit von zehn Sekunden oder 1 MB.
    • Um die Verzögerung bei der Antwortzeit zu reduzieren, konfigurieren Sie Ihre Tabelle für die Unterstützung von Streaming. Weitere Informationen finden Sie unter Streaming ingestion policy (Richtlinie für die Streamingerfassung).

Bereinigen von Ressourcen

Wenn Sie nicht vorhaben, Ihre Event Hubs erneut zu verwenden, bereinigen Sie test-hub-rg, um Kosten zu vermeiden.

  1. Klicken Sie ganz links im Azure-Portal auf Ressourcengruppen und anschließend auf die erstellte Ressourcengruppe.

    Wenn das linke Menü reduziert ist, wählen Sie die Schaltfläche Erweitern aus, um es zu erweitern.

    Auswählen der zu löschenden Ressourcengruppe

  2. Wählen Sie unter test-resource-group die Option Ressourcengruppe löschen aus.

  3. Geben Sie im neuen Fenster den Namen der zu löschenden Ressourcengruppe (test-hub-rg) ein, und wählen Sie dann Löschen aus.

Nächste Schritte