Välj en dataströmbearbetningsteknik i Azure

I den här artikeln jämförs 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ö, filarkiv eller databas. Bearbetning kan omfatta frågor, filtrering och aggregering av meddelanden. Strö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 en teknik för realtidsbearbetning?

I Azure uppfyller alla följande datalager de grundläggande kraven för realtidsbearbetning:

Kriterier för nyckelval

För bearbetningsscenarier i realtid börjar du välja lämplig tjänst för dina behov genom att svara på följande frågor:

  • Föredrar du en deklarativ eller imperativ metod för att redigera dataströmbearbetningslogik?

  • Behöver du inbyggt stöd för temporär bearbetning eller fönsterkörning?

  • Anländer dina data i format förutom Avro, JSON eller CSV? Om ja kan du överväga alternativ som stöder alla format med anpassad kod.

  • Behöver du skala bearbetningen mer än 1 GB/s? Om ja kan du överväga de alternativ som skalar med klusterstorleken.

Kapacitetsmatris

I följande tabeller sammanfattas de viktigaste skillnaderna i funktioner.

Allmänna funktioner

Kapacitet Azure Stream Analytics HDInsight med Spark Streaming Apache Spark i Azure Databricks HDInsight med Storm Azure Functions Azure App Service WebJobs
Programmerbarhet 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
Programmeringsparadigm Deklarativt Blandning av deklarativa och imperativa Blandning av deklarativa och imperativa Imperativ Imperativ Imperativ
Prismodell Enheter för direktuppspelning Per klustertimmes Databricks-enheter Per klustertimmes Per funktionskörning och resursförbrukning Per apptjänstplanstimmes

Integreringsfunktioner

Kapacitet 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/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 Bindningar som stöds Service Bus, Storage Queues, Storage Blobs, Event Hubs, WebHooks, Azure Cosmos DB, Files
Sjunker Azure Data Lake Storage Gen 1, Azure Data Explorer, Azure Database for PostgreSQL, Azure SQL Database, Azure Synapse Analytics, Blob Storage och Azure Data Lake Gen 2, Azure Event Hubs, Power BI, Azure Table Storage, Azure Service Bus-köer, Azure Service Bus-ämnen, 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 Bindningar som stöds Service Bus, Storage Queues, Storage Blobs, Event Hubs, WebHooks, Azure Cosmos DB, Files

Bearbetningsfunktioner

Kapacitet 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- och fönster Ja Ja Ja Ja No Nej
Indataformat Avro, JSON eller CSV, UTF-8 kodad Valfritt format med anpassad kod Valfritt format med anpassad kod Valfritt format med anpassad kod Valfritt format med anpassad kod Valfritt format med anpassad kod
Skalbarhet Frågepartitioner Avgränsad av klusterstorlek Begränsas av konfiguration av Databricks-klusterskalning Avgränsad av klusterstorlek Upp till 200 funktionsappinstanser bearbetas parallellt Begränsas av apptjänstplanens kapacitet
Support för händelsehantering vid sen ankomst och oordnad händelsehantering Ja Ja Ja Ja No Nej

Deltagare

Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.

Huvudförfattare:

Nästa steg