Auswählen einer Technologie für die Datenstromverarbeitung in Azure

In diesem Artikel werden die Technologieoptionen für die Echtzeit-Datenstromverarbeitung in Azure verglichen.

Die Echtzeit-Datenstromverarbeitung liest Nachrichten aus warteschlangen- oder dateibasiertem Speicher, verarbeitet die Nachrichten und leitet das Ergebnis an eine andere Nachrichtenwarteschlange, einen anderen Dateispeicher oder eine andere Datenbank weiter. Die Verarbeitung beinhaltet unter Umständen das Abfragen, Filtern und Aggregieren von Nachrichten. Datenstromverarbeitungs-Engines müssen in der Lage sein, unbegrenzte Datenströme zu nutzen und mit minimaler Wartezeit Ergebnisse zu erzeugen. Weitere Informationen finden Sie unter Real time processing (Verarbeitung in Echtzeit).

Welche Technologien für die Echtzeitverarbeitung stehen zur Verfügung?

In Azure erfüllen alle folgenden Datenspeicher die grundlegenden Anforderungen für die Echtzeitverarbeitung:

Wichtige Auswahlkriterien

Beginnen Sie bei Szenarien für die Echtzeitverarbeitung mit der Auswahl des geeigneten Diensts für Ihre Anforderungen, indem Sie die folgenden Fragen beantworten:

  • Bevorzugen Sie beim Erstellen der Logik für die Datenstromverarbeitung einen deklarativen oder einen imperativen Ansatz?

  • Benötigen Sie integrierten Unterstützung für temporale Verarbeitung oder Windowing?

  • Werden Daten in anderen Formaten als Avro, JSON oder CSV empfangen? Falls ja, sollten Sie Optionen in Erwägung ziehen, die mithilfe von benutzerdefiniertem Code alle Formate unterstützen.

  • Müssen Sie die Verarbeitung auf über 1 GB/s skalieren? Falls ja, ziehen Sie die Optionen in Erwägung, die mit der Clustergröße skaliert werden.

Funktionsmatrix

In den folgenden Tabellen sind die Hauptunterschiede der Funktionen zusammengefasst:

Allgemeine Funktionen

Funktion Azure Stream Analytics HDInsight mit Spark Streaming Apache Spark in Azure Databricks HDInsight mit Storm Azure-Funktionen WebJobs in Azure App Service
Programmierbarkeit SQL, JavaScript C#/F#, Java, Python, Scala C#/F#, Java, Python, R, Scala C#, Java C#, F#, Java, Node.js, Python C#, Java, Node.js, PHP, Python
Programmierparadigma Deklarativ Mischung aus deklarativ und imperativ Mischung aus deklarativ und imperativ Imperativ Imperativ Imperativ
Preismodell Streamingeinheiten Pro Clusterstunde Databricks-Einheiten Pro Clusterstunde Nach Funktionsausführung und Ressourcenverbrauch Nach App Service-Plan-Stunde

Integrationsfunktionen

Funktion Azure Stream Analytics HDInsight mit Spark Streaming Apache Spark in Azure Databricks HDInsight mit Storm Azure-Funktionen WebJobs in Azure App Service
Eingaben Azure Event Hubs, Azure IoT Hub, Azure Blob-Speicher/ADLS Gen2 Event Hubs, IoT Hub, Kafka, HDFS, Speicherblobs, Azure Data Lake Store Event Hubs, IoT Hub, Kafka, HDFS, Speicherblobs, Azure Data Lake Store Event Hubs, IoT Hub, Speicherblobs, Azure Data Lake Store Unterstützte Bindungen Service Bus, Speicherwarteschlangen, Speicherblobs, Event Hubs, WebHooks, Azure Cosmos DB, Dateien
Senken Azure Data Lake Storage Gen 1, Azure Data Explorer, Azure Database for PostgreSQL, Azure SQL-Datenbank, Azure Synapse Analytics, Blob Storage und Azure Data Lake Gen 2, Azure Event Hubs, Power BI, Azure Table Storage, Azure Service Bus-Warteschlangen, Azure Service Bus-Themen, Azure Cosmos DB, Azure Functions HDFS, Kafka, Speicherblobs, Azure Data Lake Store, Azure Cosmos DB HDFS, Kafka, Speicherblobs, Azure Data Lake Store, Azure Cosmos DB Event Hubs, Service Bus, Kafka Unterstützte Bindungen Service Bus, Speicherwarteschlangen, Speicherblobs, Event Hubs, WebHooks, Azure Cosmos DB, Dateien

Verarbeitungsfunktionen

Funktion Azure Stream Analytics HDInsight mit Spark Streaming Apache Spark in Azure Databricks HDInsight mit Storm Azure-Funktionen WebJobs in Azure App Service
Unterstützung für integrierte temporal Verarbeitung/Windowing Ja Ja Ja Ja Nein Nein
Datenformate für die Eingabe Avro, JSON oder CSV, UTF-8-codiert Jedes Format mit benutzerdefiniertem Code Jedes Format mit benutzerdefiniertem Code Jedes Format mit benutzerdefiniertem Code Jedes Format mit benutzerdefiniertem Code Jedes Format mit benutzerdefiniertem Code
Skalierbarkeit Abfragepartitionen Durch die Clustergröße begrenzt Durch Konfiguration der Databricks-Clusterskalierung begrenzt Durch die Clustergröße begrenzt Parallele Verarbeitung von bis zu 200 Funktions-App-Instanzen Durch die Kapazität des App Service-Plans begrenzt
Unterstützung für verspäteten Eingang und Behandlung von Ereignissen mit falscher Reihenfolge Ja Ja Ja Ja Nein Nein

Beitragende

Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:

Hauptautor:

Nächste Schritte