Choisissez une technologie de traitement de flux dans Azure
Cet article compare les choix technologiques pour le traitement de flux en temps réel dans Azure.
Le traitement de flux en temps réel utilise des messages provenant d'une file d'attente ou d'un stockage de fichiers, traite les messages, puis transfère le résultat à une autre file d'attente de messages, à un autre magasin de fichiers ou à une autre base de données. Ce traitement peut inclure l’interrogation, le filtrage et l’agrégation de messages. Les moteurs de traitement de flux doivent être en mesure d'utiliser des flux infinis de données et de produire des résultats avec une latence minimale. Pour plus d’informations, consultez Traitement en temps réel.
Quelles sont vos options quant au choix d’une technologie de traitement en temps réel ?
Dans Azure, tous les magasins de données suivants répondent aux principales exigences de prise en charge du traitement en temps réel :
- Azure Stream Analytics
- HDInsight avec Spark Streaming
- Apache Spark dans Azure Databricks
- Azure Functions
- Azure App Service WebJobs
- API de flux Apache Kafka
Critères de sélection principaux
Pour les scénarios de traitement en temps réel, commencez par choisir le service adapté à vos besoins en répondant à ces questions :
Préférez-vous une approche déclarative ou impérative pour élaborer la logique de traitement du flux ?
Avez-vous besoin d’une prise en charge intégrée pour le traitement temporel ou le fenêtrage ?
Vos données arrivent-elles dans des formats autres que Avro, JSON ou CSV ? Si tel est le cas, choisissez des options prenant en charge n’importe quel format à base d’un code personnalisé.
Devez-vous mettre à l’échelle votre traitement au-delà de 1 Go/s ? Si oui, choisissez des options qui évoluent avec la taille du cluster.
Matrice des fonctionnalités
Les tableaux suivants résument les principales différences entre les fonctionnalités.
Fonctionnalités générales
Fonctionnalité | Azure Stream Analytics | HDInsight avec Spark Streaming | Apache Spark dans Azure Databricks | Azure Functions | Azure App Service WebJobs |
---|---|---|---|---|---|
Programmabilité | 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 |
Paradigme de programmation | Déclaratif | À la fois déclaratif et impératif | À la fois déclaratif et impératif | Imperative | Imperative |
Modèle de tarification | Unités de streaming | Coût du nœud par minute | Unités Databricks | Par exécution de fonction et consommation de ressources | Par heure de plan de service d'application |
Fonctionnalités d’intégration
Fonctionnalité | Azure Stream Analytics | HDInsight avec Spark Streaming | Apache Spark dans Azure Databricks | Azure Functions | Azure App Service WebJobs |
---|---|---|---|---|---|
Entrées | Azure Event Hubs, Azure IoT Hub, Azure Blob storage/Data Lake Storage Gen2, etc. | Event Hubs, IoT Hub, Kafka, HDFS, Storage Blobs, Azure Data Lake Store | Event Hubs, IoT Hub, Kafka, HDFS, Storage Blobs, Azure Data Lake Store | Liaisons prises en charge | Service Bus, files d’attente de stockage, Storage Blobs, Event Hubs, WebHooks, Azure Cosmos DB, Files |
Récepteurs | Azure Data Lake Storage Gen 1, Azure Data Explorer, Azure Database pour PostgreSQL, Azure SQL Database, Azure Synapse Analytics, Stockage Blob et Azure Data Lake Gen 2, Azure Event Hubs, Power BI, Stockage Table Azure, Files d’attente Azure Service Bus, Rubriques Azure Service Bus, 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 | Liaisons prises en charge | Service Bus, files d’attente de stockage, Storage Blobs, Event Hubs, WebHooks, Azure Cosmos DB, Files |
Fonctionnalités de traitement
Fonctionnalité | Azure Stream Analytics | HDInsight avec Spark Streaming | Apache Spark dans Azure Databricks | Azure Functions | Azure App Service WebJobs |
---|---|---|---|---|---|
Prise en charge temporelle/fenêtrage intégrée | Oui | Oui | Oui | No | Non |
Formats de données d’entrée | Avro, JSON ou CSV, encodage UTF-8 | Tout format à base de code personnalisé | Tout format utilisant du code personnalisé Tout format utilisant du code personnalisé | Tout format à base de code personnalisé | |
Extensibilité | Interroger des partitions | Limitée par la taille du cluster | Limitée par la configuration de la mise à l’échelle du cluster Databricks | Jusqu'à 200 instances d’application de fonction traitées en parallèle | Limité par la capacité du plan de service de l'application |
Prise en charge de l’arrivée tardive et de la gestion des événements de manière désordonnée | Oui | Oui | Oui | No | Non |
Contributeurs
Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.
Auteur principal :
- Zoiner Tejada | CEO et Architecte
Étapes suivantes
- Vue d'ensemble d'App Service
- Explorer Azure Functions
- Prise en main d’Azure Stream Analytics
- Effectuer des transformations de données de streaming avancées
- Configurer des clusters dans HDInsight
- Utiliser Apache Spark dans Azure Databricks