Volba technologie zpracování datových proudů v Azure
Tento článek porovnává volby technologií pro zpracování datových proudů v reálném čase v Azure.
Zpracování datových proudů v reálném čase spotřebovává zprávy z fronty nebo úložiště založeného na souborech, zpracovává zprávy a předává výsledek do jiné fronty zpráv, úložiště souborů nebo databáze. Zpracování může zahrnovat dotazování, filtrování a agregaci zpráv. Moduly pro zpracování datových proudů musí být schopné využívat nekonečné proudy dat a vytvářet výsledky s minimální latencí. Další informace najdete v tématu Zpracování v reálném čase.
Jaké máte možnosti při výběru technologie pro zpracování v reálném čase?
V Azure budou všechna následující úložiště dat splňovat základní požadavky podporující zpracování v reálném čase:
- Azure Stream Analytics
- HDInsight se streamováním Sparku
- Apache Spark v Azure Databricks
- Azure Functions
- Azure App Service WebJobs
- Rozhraní API streamů Apache Kafka
Kritéria výběru klíče
V případě scénářů zpracování v reálném čase začněte výběrem vhodné služby pro vaše potřeby zodpovězením těchto otázek:
Dáváte přednost deklarativnímu nebo imperativnímu přístupu k vytváření logiky zpracování datových proudů?
Potřebujete integrovanou podporu pro dočasné zpracování nebo vytváření oken?
Dorazí vaše data ve formátech kromě Avro, JSON nebo CSV? Pokud ano, zvažte možnosti, které podporují libovolný formát pomocí vlastního kódu.
Potřebujete škálovat zpracování nad rámec 1 GB/s? Pokud ano, zvažte možnosti škálování s velikostí clusteru.
Matice schopností
Následující tabulky shrnují klíčové rozdíly v možnostech.
Obecné možnosti
Schopnost | Azure Stream Analytics | HDInsight se streamováním Sparku | Apache Spark na platformě Azure Databricks | Azure Functions | Azure App Service WebJobs |
---|---|---|---|---|---|
Programovatelnost | 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 |
Programovací paradigma | Deklarativní | Směs deklarativního a imperativního | Směs deklarativního a imperativního | Imperativní | Imperativní |
Cenový model | Jednotky streamování | Náklady na uzel za minutu | Jednotky Databricks | Výkon jednotlivých funkcí a spotřeba prostředků | Hodina plánu služby App Service |
Možnosti integrace
Schopnost | Azure Stream Analytics | HDInsight se streamováním Sparku | Apache Spark na platformě Azure Databricks | Azure Functions | Azure App Service WebJobs |
---|---|---|---|---|---|
Vstupy | Azure Event Hubs, Azure IoT Hub, Azure Blob Storage/ Data Lake Storage Gen2 | Event Hubs, IoT Hub, Kafka, HDFS, Objekty blob úložiště, Azure Data Lake Store | Event Hubs, IoT Hub, Kafka, HDFS, Objekty blob úložiště, Azure Data Lake Store | Podporované vazby | Service Bus, Fronty úložiště, Objekty blob úložiště, Event Hubs, WebHooky, Azure Cosmos DB, Soubory |
Potápí | Azure Data Lake Storage Gen 1, Azure Data Explorer, Azure Database for PostgreSQL, Azure SQL Database, Azure Synapse Analytics, Blob Storage a Azure Data Lake Gen 2, Azure Event Hubs, Power BI, Azure Table Storage, fronty Azure Service Bus, témata služby Azure Service Bus, Azure Cosmos DB, Azure Functions | HDFS, Kafka, Objekty blob úložiště, Azure Data Lake Store, Azure Cosmos DB | HDFS, Kafka, Objekty blob úložiště, Azure Data Lake Store, Azure Cosmos DB | Podporované vazby | Service Bus, Fronty úložiště, Objekty blob úložiště, Event Hubs, WebHooky, Azure Cosmos DB, Soubory |
Možnosti zpracování
Schopnost | Azure Stream Analytics | HDInsight se streamováním Sparku | Apache Spark na platformě Azure Databricks | Azure Functions | Azure App Service WebJobs |
---|---|---|---|---|---|
Integrovaná podpora dočasného/okenního prostředí | Ano | Ano | Ano | No | Ne |
Formáty vstupních dat | Kódování Avro, JSON nebo CSV, kódování UTF-8 | Libovolný formát s využitím vlastního kódu | Libovolný formát pomocí vlastního kódu Libovolný formát pomocí vlastního kódu | Libovolný formát s využitím vlastního kódu | |
Škálovatelnost | Dotazy na oddíly | Ohraničeno velikostí clusteru | Ohraničená konfigurací škálování clusteru Databricks | Paralelní zpracování až 200 instancí aplikace funkcí | Ohraničeno kapacitou plánu služby App Service |
Pozdní příjezd a podpora zpracování událostí mimo objednávku | Ano | Ano | Ano | No | Ne |
Přispěvatelé
Tento článek spravuje Microsoft. Původně byla napsána následujícími přispěvateli.
Hlavní autor:
- Zoiner Tejada | Generální ředitel a architekt
Další kroky
- Přehled služby App Service
- Seznámení se službou Azure Functions
- Začínáme se službou Azure Stream Analytics
- Provádění pokročilých transformací streamovaných dat
- Nastavení clusterů v HDInsightu
- Použití Apache Sparku v Azure Databricks