Grundlegendes zur Ereignisverarbeitung

Abgeschlossen

Azure Stream Analytics ist ein Dienst für die komplexe Ereignisverarbeitung und die Analyse von Streamingdaten. Stream Analytics wird für folgende Aufgaben eingesetzt:

  • Erfassen von Daten aus einer Eingabe, beispielsweise aus Azure Event Hubs, Azure IoT Hub oder aus einem Azure Storage Blob-Container
  • Verarbeiten der Daten mithilfe einer Abfrage zum Auswählen, Hochrechnen und Aggregieren von Datenwerten
  • Schreiben der Ergebnisse in eine Ausgabe, wie Azure Data Lake Gen 2, Azure SQL Database, Azure Synapse Analytics, Azure Functions, Azure Event Hubs, Microsoft Power BI oder andere

Diagramm, das einen Stream Analytics-Auftrag mit Eingaben, einer Abfrage und Ausgaben zeigt

Nach dem Start wird eine Stream Analytics-Abfrage unbefristet ausgeführt, wobei neue Daten verarbeitet werden, sobald sie in der Eingabe eingehen und Ergebnisse in der Ausgabe speichern.

Stream Analytics garantiert genau einmal Ereignisverarbeitung und mindestens einmal Ereignisübermittlung, sodass Ereignisse nie verloren gehen. Die Anwendung verfügt über integrierte Wiederherstellungsfunktionen für den Fall, dass für ein Ereignis ein Fehler auftritt. Außerdem bietet Stream Analytics integrierte Prüfpunkte, um den Status Ihres Auftrags aufrechtzuerhalten und wiederholbare Ergebnisse zu erzielen. Da Azure Stream Analytics eine Plattform-as-a-Service(PaaS)-Lösung ist, wird sie vollständig verwaltet und sehr zuverlässig. Die integrierte Integration mit verschiedenen Quellen und Zielen bietet ein flexibles Programmierbarkeitsmodell. Das Stream Analytics-Modul ermöglicht die In-Memory-Berechnung, sodass es eine hohe Leistung bietet.

Azure Stream Analytics-Aufträge und -Cluster

Die einfachste Möglichkeit zur Verwendung von Azure Stream Analytics besteht darin, einen Stream Analytics-Auftrag in einem Azure-Abonnement zu erstellen, dessen Ein- und Ausgaben zu konfigurieren und die Abfrage zu definieren, die der Auftrag zur Verarbeitung der Daten verwenden soll. Die Abfrage wird unter Verwendung der SQL-Syntax (Structured Query Language) formuliert und kann statische Referenzdaten aus mehreren Datenquellen enthalten, um Nachschlagewerte zu liefern, die mit in der Eingabe erfassten Streamingdaten kombiniert werden können.

Wenn Ihre Datenstromprozessanforderungen komplex oder ressourcenintensiv sind, können Sie einen Stream Analysis-Cluster erstellen, der dasselbe zugrunde liegende Verarbeitungsmodul wie ein Stream Analytics-Auftrag verwendet, aber in einem dedizierten Mandanten (sodass Ihre Verarbeitung nicht von anderen Kunden betroffen ist) und mit konfigurierbarer Skalierbarkeit, mit der Sie das richtige Gleichgewicht zwischen Durchsatz und Kosten für Ihr spezifisches Szenario definieren können.

Eingänge

Azure Stream Analytics kann Daten aus den folgenden Arten von Eingaben aufnehmen:

  • Azure Event Hubs
  • Azure IoT Hub
  • Azure Blob-Speicher
  • Azure Data Lake Storage Gen2

Inputs werden in der Regel verwendet, um auf eine Quelle von Streamingdaten zu verweisen, die verarbeitet wird, sobald neue Ereignisdatensätze hinzugefügt werden. Darüber hinaus können Sie Referenzeingaben definieren, die zum Aufnehmen statischer Daten verwendet werden, um die Echtzeit-Ereignisdatenstromdaten zu erweitern. Sie können z. B. einen Datenstrom mit Echtzeit-Wetterbeobachtungsdaten aufnehmen, die eine eindeutige ID für jede Wetterstation enthalten, und diese Daten mit einer statischen Referenzeingabe erweitern, die der Wetterstations-ID entspricht, um einen aussagekräftigeren Namen zu erhalten.

Ausgaben

Ausgaben sind Ziele, an die die Ergebnisse der Datenstromverarbeitung gesendet werden. Azure Stream Analytics unterstützt eine Vielzahl von Ausgaben, die für Folgendes verwendet werden können:

  • Die Ergebnisse der Datenstromverarbeitung zur weiteren Analyse beibehalten; Zum Beispiel durch Laden in einen Data Lake oder Data Warehouse.
  • Anzeigen einer Echtzeitvisualisierung des Datenstroms; Beispiel: Anfügen von Daten an ein Dataset in Microsoft Power BI.
  • Generieren sie gefilterte oder zusammengefasste Ereignisse für die nachgeschaltete Verarbeitung; Beispielsweise durch Schreiben der Ergebnisse der Datenstromverarbeitung in einen Event Hub.

Fragen

Die Datenstromverarbeitungslogik wird in einer Abfrage gekapselt. Abfragen werden mithilfe von SQL-Anweisungen definiert, die SELECT-DatenfelderAUS einer oder mehreren Eingaben auswählen, die Daten filtern oder aggregieren und die Ergebnisse in eine Ausgabe schreiben. Die folgende Abfrage filtert beispielsweise die Ereignisse aus der Wetterereignisseeingabe , um nur Daten aus Ereignissen mit einem Temperaturwert unter 0 einzuschließen, und schreibt die Ergebnisse in die Kalttemperaturausgabe :

SELECT observation_time, weather_station, temperature
INTO cold-temps
FROM weather-events TIMESTAMP BY observation_time
WHERE temperature < 0

Ein Feld mit dem Namen "EventProcessedUtcTime " wird automatisch erstellt, um den Zeitpunkt zu definieren, zu dem das Ereignis von Ihrer Azure Stream Analytics-Abfrage verarbeitet wird. Sie können dieses Feld verwenden, um den Zeitstempel des Ereignisses zu bestimmen, oder Sie können ein anderes DateTime-Feld explizit mithilfe der TIMESTAMP BY-Klausel angeben, wie in diesem Beispiel gezeigt. Abhängig von der Eingabe, aus der die Streamingdaten gelesen werden, können ein oder mehrere potenzielle Zeitstempelfelder automatisch erstellt werden; Wenn Sie beispielsweise eine Event Hubs-Eingabe verwenden, wird ein Feld mit dem Namen "EventQueuedUtcTime " generiert, um die Uhrzeit aufzuzeichnen, zu der das Ereignis in der Event Hub-Warteschlange empfangen wurde.

Das feld, das als Zeitstempel verwendet wird, ist wichtig, wenn Daten über zeitliche Fenster aggregiert werden, die als Nächstes erläutert werden.