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:
- Azure Stream Analytics
- Usługa HDInsight z przesyłaniem strumieniowym platformy Spark
- Platforma Apache Spark w usłudze Azure Databricks
- Azure Functions
- Azure App Service WebJobs
- Interfejs API strumieni platformy Apache Kafka
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 | Azure Functions | Azure App Service WebJobs |
---|---|---|---|---|---|
Możliwości programowania | 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 |
Paradygmat programowania | Deklaratywny | Mieszanka deklaratywnego i imperatywnego | Mieszanka deklaratywnego i imperatywnego | Programowanie imperatywne | Programowanie imperatywne |
Model cen | Jednostki przesyłania strumieniowego | Koszt węzła na minutę | Jednostki usługi Databricks | 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 | Azure Functions | Azure App Service WebJobs |
---|---|---|---|---|---|
Dane wejściowe | 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 | 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 | 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 | Azure Functions | Azure App Service WebJobs |
---|---|---|---|---|---|
Wbudowana obsługa czasowo/okien | 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 niestandardowego kodu Dowolny format przy użyciu 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 | 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 | 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:
- Zoiner Tejada | Dyrektor generalny i architekt
Następne kroki
- Omówienie usługi App Service
- Eksplorowanie usługi Azure Functions
- Rozpoczynanie pracy z usługą Azure Stream Analytics
- Wykonywanie zaawansowanych przekształceń danych przesyłanych strumieniowo
- Konfigurowanie klastrów w usłudze HDInsight
- Korzystanie z platformy Apache Spark w usłudze Azure Databricks