Wybieranie technologii przetwarzania strumieniowego na platformie Azure

W tym artykule porównaliśmy opcje technologii przetwarzania strumienia w czasie rzeczywistym na platformie Azure.

Przetwarzanie strumienia w czasie rzeczywistym zużywa komunikaty z magazynu w kolejce lub w magazynie opartym na plikach, przetwarza komunikaty i przekazuje wynik do innej kolejki komunikatów, magazynu plików lub bazy danych. Przetwarzanie może obejmować wykonywanie zapytań, filtrowanie i agregowanie komunikatów. Aparaty przetwarzania strumieniowego muszą mieć możliwość korzystania z niekończących się strumieni danych i generowania wyników z minimalnym opóźnieniem. Aby uzyskać więcej informacji, zobacz Przetwarzanie w czasie rzeczywistym.

Jakie są dostępne opcje podczas wybierania technologii przetwarzania w czasie rzeczywistym?

Na platformie Azure wszystkie następujące magazyny danych spełniają podstawowe wymagania dotyczące przetwarzania w czasie rzeczywistym:

Kluczowe kryteria wyboru

W przypadku scenariuszy przetwarzania w czasie rzeczywistym zacznij wybierać odpowiednią usługę dla Twoich potrzeb, odpowiadając na następujące pytania:

  • Czy wolisz deklaratywne lub imperatywne podejście do tworzenia logiki przetwarzania strumieniowego?

  • Czy potrzebujesz wbudowanej obsługi przetwarzania danych czasowych lub okien?

  • Czy dane są dostarczane w formatach oprócz formatu Avro, JSON lub CSV? Jeśli tak, rozważ opcje, które obsługują dowolny format przy użyciu kodu niestandardowego.

  • Czy musisz skalować przetwarzanie poza 1 GB/s? Jeśli tak, rozważ opcje skalowane przy użyciu rozmiaru klastra.

Macierz możliwości

W poniższych tabelach podsumowano kluczowe różnice w możliwościach.

Ogólne możliwości

Możliwość Azure Stream Analytics Usługa HDInsight z przesyłaniem strumieniowym platformy Spark Platforma Apache Spark w usłudze Azure Databricks Usługa HDInsight z systemem Storm Azure Functions Azure App Service WebJobs
Możliwości programowania 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
Paradygmat programowania Deklaratywny Mieszanka deklaratywnego i imperatywnego Mieszanka deklaratywnego i imperatywnego Programowanie imperatywne Programowanie imperatywne Programowanie imperatywne
Model cen Jednostki przesyłania strumieniowego Na godzinę klastra Jednostki usługi Databricks Na godzinę klastra Wykonywanie funkcji i zużycie zasobów Godzina planu usługi App Service

Możliwości integracji

Możliwość Azure Stream Analytics Usługa HDInsight z przesyłaniem strumieniowym platformy Spark Platforma Apache Spark w usłudze Azure Databricks Usługa HDInsight z systemem Storm Azure Functions Azure App Service WebJobs
Dane wejściowe 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 Obsługiwane powiązania Service Bus, kolejki magazynu, obiekty blob usługi Storage, event hubs, elementy webhook, usługa Azure Cosmos DB, pliki
Umywalki Azure Data Lake Storage Gen 1, Azure Data Explorer, Azure Database for PostgreSQL, Azure SQL Database, Azure Synapse Analytics, Blob Storage i Azure Data Lake Gen 2, Azure Event Hubs, Power BI, Azure Table Storage, Azure Service Bus queues, Azure Service Bus topics, 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 Obsługiwane powiązania Service Bus, kolejki magazynu, obiekty blob usługi Storage, event hubs, elementy webhook, usługa Azure Cosmos DB, pliki

Możliwości przetwarzania

Możliwość Azure Stream Analytics Usługa HDInsight z przesyłaniem strumieniowym platformy Spark Platforma Apache Spark w usłudze Azure Databricks Usługa HDInsight z systemem Storm Azure Functions Azure App Service WebJobs
Wbudowana obsługa czasowo/okien Tak Tak Tak Tak Nie. Nie.
Formaty danych wejściowych Kodowanie Avro, JSON lub CSV, UTF-8 Dowolny format korzystający z kodu niestandardowego Dowolny format korzystający z kodu niestandardowego Dowolny format korzystający z kodu niestandardowego Dowolny format korzystający z kodu niestandardowego Dowolny format korzystający z kodu niestandardowego
Skalowalność Partycje zapytań Ograniczone według rozmiaru klastra Powiązana z konfiguracją skalowania klastra usługi Databricks Ograniczone według rozmiaru klastra Przetwarzanie równoległe do 200 wystąpień aplikacji funkcji Powiązana z pojemnością planu usługi App Service
Obsługa zdarzeń związanych z późnym przybyciem i poza zamówieniem Tak Tak Tak Tak Nie. Nie.

Współautorzy

Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.

Główny autor:

Następne kroki