Auswählen einer Technologie für Echtzeitanalysen und -Streamingverarbeitung in Azure
Es stehen mehrere Dienste für Echtzeitanalysen und -Streamingverarbeitung in Azure zur Verfügung. Dieser Artikel enthält die Informationen, anhand derer Sie entscheiden können, welche Technologie sich am besten für Ihre Anwendung eignet.
Verwendung von Azure Stream Analytics
Azure Stream Analytics wird als Dienst für Streaminganalysen in Azure empfohlen. Sie können ihn für eine Vielzahl von Szenarien verwenden, unter anderem für folgende Szenarien:
- Dashboards für die Datenvisualisierung
- Warnungen in Echtzeit zu temporalen und räumlichen Mustern oder Anomalien
- Extraktions-, Umwandlungs- und Ladeprozesse (Extract, Transform and Load, ETL)
- Muster „Ereignissourcing“
- IoT Edge
Das Hinzufügen eines Azure Stream Analytics-Auftrags in Ihrer Anwendung ist die schnellste Möglichkeit, Streaminganalysen unter Verwendung der bereits bekannten strukturierten Abfragesprache (SQL) in Azure auszuführen. Azure Stream Analytics ist ein Auftragsdienst, sodass Sie keine Zeit mit der Verwaltung von Clustern verbringen und sich nicht um Ausfallzeiten kümmern müssen, da der Dienst ein SLA (Service Level Agreement) mit einer Verfügbarkeit von 99,9 % auf Auftragsebene bietet. Auch die Abrechnung erfolgt auf Auftragsebene. Dadurch sind die Startkosten niedrig (eine Streamingeinheit), aber skalierbar (bis zu 396 Streamingeinheiten). Es ist sehr viel kostengünstiger, einige Stream Analytics-Aufträge auszuführen, als ein Cluster auszuführen und zu verwalten.
Azure Stream Analytics verfügt über eine umfangreiche direkt verwendungsbereite Umgebung. Sie können sofort ohne weitere Einrichtung die folgenden Funktionen nutzen:
- Integrierte temporale Operatoren, z. B. Aggregate im Fenstermodus, temporale Verknüpfungen und temporale Analysefunktionen
- Native Azure-Adapter für Eingabe und Ausgabe
- Unterstützung für Referenzdaten, die sich langsam ändern (auch als Nachschlagetabellen bezeichnet), z. B. Verknüpfung mit räumlichen Referenzdaten für Geofencing
- Integrierte Lösungen, z. B. Anomalieerkennung
- Mehrere Zeitfenster in der gleichen Abfrage
- Möglichkeit, mehrere temporale Operatoren in beliebigen Sequenzen zu erstellen
- End-to-End-Latenz unter 100 ms von der Eingabe in Event Hubs bis zur Ausgabe in Event Hubs, einschließlich der Netzwerkverzögerung von und zu Event Hubs bei dauerhaft hohem Durchsatz
Verwendung anderer Technologien
UDFs, UDAs und benutzerdefinierte Deserialisierer in einer anderen Programmiersprache als JavaScript oder C#
Azure Stream Analytics unterstützt benutzerdefinierte Funktionen (UDF) oder benutzerdefinierte Aggregate (UDA) in JavaScript für Cloudaufträge und in C# für IoT Edge-Aufträge. Benutzerdefinierte C#-Deserialisierer werden auch unterstützt. Wenn Sie einen Deserialisierer, eine benutzerdefinierte Funktion oder ein benutzerdefiniertes Aggregat in anderen Programmiersprachen (z. B. Java oder Python) implementieren möchten, können Sie das strukturierte Spark-Streaming verwenden. Sie können außerdem den EventProcessorHost von Event Hubs auf Ihren virtuellen Computern ausführen, um eine beliebige Streamingverarbeitung durchzuführen.
Lösung in Umgebung mit mehreren Clouds oder einer lokalen Umgebung
Azure Stream Analytics ist die proprietäre Technologie von Microsoft und steht nur in Azure zur Verfügung. Wenn Ihre Lösung cloudübergreifend oder lokal portierbar sein soll, können Sie Open-Source-Technologien wie z. B. das strukturierte Spark-Streaming oder Apache Flink verwenden.