Een technologie voor stroomverwerking kiezen in Azure

In dit artikel worden technologieopties voor realtime streamverwerking in Azure vergeleken.

Bij realtime streamverwerking worden berichten uit wachtrij- of bestandsopslag verbruikt, worden de berichten verwerkt en wordt het resultaat doorgestuurd naar een andere berichtenwachtrij, bestandsopslag of database. De verwerking kan bestaan uit het uitvoeren van query's, het filteren en samenvoegen van berichten. Stroomverwerkingsen engines moeten eindeloze gegevensstromen kunnen verbruiken en resultaten kunnen produceren met minimale latentie. Zie Realtime verwerking voor meer informatie.

Wat zijn uw opties bij het kiezen van een technologie voor realtime verwerking?

In Azure voldoen alle volgende gegevensopslagen aan de belangrijkste vereisten voor realtime verwerking:

Selectiecriteria voor sleutels

Voor scenario's voor realtime verwerking kunt u beginnen met het kiezen van de juiste service voor uw behoeften door deze vragen te beantwoorden:

  • Geeft u de voorkeur aan een declaratieve of imperatieve benadering voor het schrijven van stroomverwerkingslogica?

  • Hebt u ingebouwde ondersteuning nodig voor tijdelijke verwerking of windowing?

  • Zijn uw gegevens beschikbaar in indelingen naast Avro, JSON of CSV? Zo ja, overweeg dan opties die elke indeling ondersteunen met behulp van aangepaste code.

  • Moet u uw verwerking schalen tot meer dan 1 GB/s? Zo ja, overweeg dan de opties die worden geschaald met de clustergrootte.

Mogelijkheidsmatrix

De volgende tabellen geven een overzicht van de belangrijkste verschillen in mogelijkheden.

Algemene mogelijkheden

Mogelijkheid Azure Stream Analytics HDInsight met Spark Streaming Apache Spark in Azure Databricks HDInsight met Storm Azure Functions Azure App Service WebJobs
Programmeerbaarheid Querytaal voor Stream Analytics, 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
Programmeerparadigma Declaratief ontwikkelen Combinatie van declaratief en imperatieve Combinatie van declaratief en imperatieve Imperatief ontwikkelen Imperatief ontwikkelen Imperatief ontwikkelen
Prijsmodel Streaming-eenheden Per clusteruur Databricks-eenheden Per clusteruur Uitvoering per functie en resourceverbruik Per uur app-serviceplan

Integratiemogelijkheden

Mogelijkheid Azure Stream Analytics HDInsight met Spark Streaming Apache Spark in Azure Databricks HDInsight met Storm Azure Functions Azure App Service WebJobs
Invoerwaarden Azure Event Hubs, Azure IoT Hub, Azure Blob Storage Event Hubs, IoT Hub, Kafka, HDFS, Storage Blobs, Azure Data Lake Store Event Hubs, IoT Hub, Kafka, HDFS, Storage Blobs, Azure Data Lake Store Event Hubs, IoT Hub, Storage Blobs, Azure Data Lake Store Ondersteunde bindingen Service Bus, Storage, Storage Blobs, Event Hubs, WebHooks, Cosmos DB, Files
Putten Azure Data Lake Store, Azure SQL Database, Storage Blobs, Event Hubs, Power BI, Table Storage, Service Bus Queues, Service Bus Topics, Cosmos DB, Azure Functions HDFS, Kafka, Storage Blobs, Azure Data Lake Store, Cosmos DB HDFS, Kafka, Storage Blobs, Azure Data Lake Store, Cosmos DB Event Hubs, Service Bus, Kafka Ondersteunde bindingen Service Bus, Storage, Storage Blobs, Event Hubs, WebHooks, Cosmos DB, Files

Verwerkingsmogelijkheden

Mogelijkheid Azure Stream Analytics HDInsight met Spark Streaming Apache Spark in Azure Databricks HDInsight met Storm Azure Functions Azure App Service WebJobs
Ingebouwde ondersteuning voor tijdelijke/vensters Ja Ja Ja Ja Nee Nee
Invoergegevensindelingen Avro, JSON of CSV, UTF-8 gecodeerd Elke indeling met aangepaste code Elke indeling met aangepaste code Elke indeling met aangepaste code Elke indeling met aangepaste code Elke indeling met aangepaste code
Schaalbaarheid Querypartities Gebonden aan clustergrootte Begrensd door databricks-clusterschaalconfiguratie Gebonden aan clustergrootte Maximaal 200 instanties van functie-apps die parallel worden verwerkt Gebonden aan de capaciteit van het App Service-plan
Ondersteuning voor late aankomst en afhandeling van gebeurtenissen die niet in de volgorde staan Ja Ja Ja Ja Nee Nee

Zie ook: