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
- HDInsight met Storm
- 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 tot meer dan 1 GB/s? 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 | HDInsight met Storm | Azure Functions | Azure App Service WebJobs |
---|---|---|---|---|---|---|
Programmeerbaarheid | 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 |
Programmeerparadigma | Declaratief | Mengsel van declaratief en imperatief | Mengsel van declaratief en imperatief | Imperatief ontwikkelen | Imperatief ontwikkelen | Imperatief ontwikkelen |
Prijsmodel | Streaming-eenheden | Per clusteruur | Databricks-eenheden | Per clusteruur | Uitvoering en resourceverbruik per functie | Per app service-abonnement per uur |
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/ADLS 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 | Event Hubs, IoT Hub, 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 | Event Hubs, Service Bus, Kafka | 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 | HDInsight met Storm | Azure Functions | Azure App Service WebJobs |
---|---|---|---|---|---|---|
Ingebouwde ondersteuning voor tijdelijke/vensters | Ja | 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 aangepaste code | Elke indeling met aangepaste code | Elke indeling met aangepaste code |
Schaalbaarheid | Querypartities | Gebonden door clustergrootte | Afhankelijk van de schaalconfiguratie van het Databricks-cluster | Gebonden door clustergrootte | Maximaal 200 exemplaren van de functie-app worden parallel verwerkt | Afhankelijk van capaciteit van app service-plan |
Ondersteuning voor late aankomst en verwerking van orderevenementen | Ja | Ja | Ja | Ja | No | Nr. |
Bijdragers
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
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor