Een technologie voor stroomverwerking kiezen in Azure
In dit artikel worden technologische keuzes vergeleken voor realtime stroomverwerking in Azure.
De verwerking van realtimestreams verbruikt berichten uit wachtrij- of bestandsopslag, verwerkt de berichten en stuurt het resultaat door naar een andere berichtenwachtrij, bestandsopslag of database. Verwerking kan bestaan uit het opvragen, filteren en samenvoegen van berichten. Stroomverwerkingsengines moeten eindeloze gegevensstromen kunnen verbruiken en resultaten met minimale latentie kunnen produceren. Zie Realtime verwerking voor meer informatie.
Wat zijn uw opties bij het kiezen van een technologie voor realtime verwerking?
In Azure voldoen alle volgende gegevensarchieven aan de kernvereisten voor realtime verwerking:
- Azure Stream Analytics
- HDInsight met Spark Streaming
- Apache Spark in Azure Databricks
- Azure Functions
- Azure App Service WebJobs
- Streams-API voor Apache Kafka
Criteria voor sleutelselectie
Voor realtime verwerkingsscenario's kiest u de juiste service voor uw behoeften door deze vragen te beantwoorden:
Geeft u de voorkeur aan een declaratieve of imperatieve benadering voor het ontwerpen van stroomverwerkingslogica?
Hebt u ingebouwde ondersteuning nodig voor tijdelijke verwerking of vensters?
Komen uw gegevens binnen in indelingen naast Avro, JSON of CSV? Zo ja, overweeg dan opties die ondersteuning bieden voor elke indeling met behulp van aangepaste code.
Moet u uw verwerking schalen buiten 1 GBps? Zo ja, overweeg dan de opties die worden geschaald met de clustergrootte.
Mogelijkheidsmatrix
De volgende tabellen bevatten een overzicht van de belangrijkste verschillen in mogelijkheden.
Algemene mogelijkheden
Mogelijkheid | Azure Stream Analytics | HDInsight met Spark Streaming | Apache Spark in Azure Databricks | Azure Functions | Azure App Service WebJobs |
---|---|---|---|---|---|
Programmeerbaarheid | SQL, JavaScript | C#/F#, Java, Python, Scala | C#/F#, Java, Python, R, Scala | C#, F#, Java, Node.js, Python | C#, Java, Node.js, PHP, Python |
Programmeerparadigma | Declaratief | Mengsel van declaratief en imperatief | Mengsel van declaratief en imperatief | Imperatief ontwikkelen | Imperatief ontwikkelen |
Prijsmodel | Streaming-eenheden | Kosten van knooppunten per minuut | Databricks-eenheden | Uitvoering en resourceverbruik per functie | Per App Service-planuur |
Integratiemogelijkheden
Mogelijkheid | Azure Stream Analytics | HDInsight met Spark Streaming | Apache Spark in Azure Databricks | Azure Functions | Azure App Service WebJobs |
---|---|---|---|---|---|
Invoerwaarden | Azure Event Hubs, Azure IoT Hub, Azure Blob storage/Data Lake Storage Gen2 | Event Hubs, IoT Hub, Kafka, HDFS, Storage Blobs, Azure Data Lake Store | Event Hubs, IoT Hub, Kafka, HDFS, Storage Blobs, Azure Data Lake Store | Ondersteunde bindingen | Service Bus, Storage Queues, Storage Blobs, Event Hubs, WebHooks, Azure Cosmos DB, Files |
Putten | Azure Data Lake Storage Gen 1, Azure Data Explorer, Azure Database for PostgreSQL, Azure SQL Database, Azure Synapse Analytics, Blob Storage en Azure Data Lake Gen 2, Azure Event Hubs, Power BI, Azure Table Storage, Azure Service Bus-wachtrijen, Azure Service Bus-onderwerpen, Azure Cosmos DB, Azure Functions | HDFS, Kafka, Storage Blobs, Azure Data Lake Store, Azure Cosmos DB | HDFS, Kafka, Storage Blobs, Azure Data Lake Store, Azure Cosmos DB | Ondersteunde bindingen | Service Bus, Storage Queues, Storage Blobs, Event Hubs, WebHooks, Azure Cosmos DB, Files |
Verwerkingsmogelijkheden
Mogelijkheid | Azure Stream Analytics | HDInsight met Spark Streaming | Apache Spark in Azure Databricks | Azure Functions | Azure App Service WebJobs |
---|---|---|---|---|---|
Ingebouwde ondersteuning voor tijdelijke/vensters | Ja | Ja | Ja | No | Nr. |
Indelingen voor invoergegevens | Avro, JSON of CSV, UTF-8 gecodeerd | Elke indeling met aangepaste code | Elke indeling met aangepaste code Elke indeling met behulp van aangepaste code | Elke indeling met aangepaste code | |
Schaalbaarheid | Querypartities | Gebonden door clustergrootte | Afhankelijk van de schaalconfiguratie van het Databricks-cluster | Maximaal 200 exemplaren van de functie-app worden parallel verwerkt | Gebonden aan capaciteit van App Service-plan |
Ondersteuning voor late aankomst en verwerking van orderevenementen | Ja | Ja | Ja | No | Nr. |
Medewerkers
Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.
Hoofdauteur:
- Zoiner Tejada | CEO en architect
Volgende stappen
- Overzicht van App Service
- Azure Functions verkennen
- Aan de slag met Azure Stream Analytics
- Geavanceerde streaminggegevenstransformaties uitvoeren
- Clusters instellen in HDInsight
- Apache Spark gebruiken in Azure Databricks
Verwante resources
- Real time processing (Realtime-verwerking)
- Streamverwerking met Azure Stream Analytics