Välja en dataströmbearbetningsteknik i Azure
Den här artikeln jämför teknikval för dataströmbearbetning i realtid i Azure.
Dataströmbearbetning i realtid förbrukar meddelanden från kö- eller filbaserad lagring, bearbetar meddelandena och vidarebefordrar resultatet till en annan meddelandekö, fillagring eller databas. Bearbetningen kan omfatta frågor, filtrering och aggregering av meddelanden. Dataströmbearbetningsmotorer måste kunna använda oändliga dataströmmar och ge resultat med minimal svarstid. Mer information finns i Realtidsbearbetning.
Vilka alternativ har du när du väljer teknik för realtidsbearbetning?
I Azure uppfyller alla följande datalager de grundläggande kraven som stöder realtidsbearbetning:
- Azure Stream Analytics
- HDInsight med Spark Streaming
- Apache Spark i Azure Databricks
- HDInsight med Storm
- Azure Functions
- Azure App Service WebJobs
- Apache Kafka Streams-API
Viktiga urvalsvillkor
För realtidsbearbetningsscenarier kan du börja välja lämplig tjänst för dina behov genom att besvara följande frågor:
Föredrar du en deklarativ eller imperativ metod för redigering av dataströmbearbetningslogik?
Behöver du inbyggt stöd för tidsbearbetning eller fönster?
Kommer dina data i format utöver Avro, JSON eller CSV? Om ja, överväg alternativ som stöder alla format med anpassad kod.
Behöver du skala bearbetningen över 1 GB/s? Om ja, överväg de alternativ som skalas med klusterstorleken.
Kapacitetsmatris
I följande tabeller sammanfattas de viktigaste skillnaderna i funktioner.
Allmänna funktioner
| Funktion | Azure Stream Analytics | HDInsight med Spark Streaming | Apache Spark i Azure Databricks | HDInsight med Storm | Azure Functions | Azure App Service WebJobs |
|---|---|---|---|---|---|---|
| Programmerbarhet | Stream Analytics-frågespråk, 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 |
| Programmeringsparadigm | Deklarativ | Blandning av deklarativ och imperativ | Blandning av deklarativ och imperativ | Imperativ | Imperativ | Imperativ |
| Prismodell | Strömningsenheter | Per klustertimme | Databricks-enheter | Per klustertimme | Per funktionskörning och resursförbrukning | Per App Service-plantimme |
Integreringsfunktioner
| Funktion | Azure Stream Analytics | HDInsight med Spark Streaming | Apache Spark i Azure Databricks | HDInsight med Storm | Azure Functions | Azure App Service WebJobs |
|---|---|---|---|---|---|---|
| Indata | 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 | Bindningar som stöds | Service Bus, Storage queues, Storage Blobs, Event Hubs, WebHooks, Cosmos DB, Files |
| Sjunker | 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 | Bindningar som stöds | Service Bus, Storage queues, Storage Blobs, Event Hubs, WebHooks, Cosmos DB, Files |
Bearbetningsfunktioner
| Funktion | Azure Stream Analytics | HDInsight med Spark Streaming | Apache Spark i Azure Databricks | HDInsight med Storm | Azure Functions | Azure App Service WebJobs |
|---|---|---|---|---|---|---|
| Inbyggt stöd för tids-/fönster | Ja | Ja | Ja | Ja | Inga | Inga |
| Format för indata | Avro, JSON eller CSV, UTF-8-kodad | Alla format med anpassad kod | Alla format med anpassad kod | Alla format med anpassad kod | Alla format med anpassad kod | Alla format med anpassad kod |
| Skalbarhet | Frågepartitioner | Avgränsade efter klusterstorlek | Begränsas av konfiguration av Databricks-klusterskalning | Avgränsade efter klusterstorlek | Upp till 200 funktionsappinstanser som bearbetas parallellt | Begränsas av App Service-plankapaciteten |
| Support för händelsehantering för försenad och utanför ordning | Ja | Ja | Ja | Ja | Inga | Inga |
Se även: