Partager via


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 :

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 HDInsight avec Storm Azure Functions Azure App Service WebJobs
Programmabilité 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
Paradigme de programmation Déclaratif À la fois déclaratif et impératif À la fois déclaratif et impératif Imperative Imperative Imperative
Modèle de tarification Unités de streaming Par heure de cluster Unités Databricks Par heure de cluster Par exécution de fonction et consommation de ressources Par heure de plan App Service

Fonctionnalités d’intégration

Fonctionnalité Azure Stream Analytics HDInsight avec Spark Streaming Apache Spark dans Azure Databricks HDInsight avec Storm Azure Functions Azure App Service WebJobs
Entrées Azure Event Hubs, Azure IoT Hub, Stockage Blob Azure/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 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 Event Hubs, Service Bus, Kafka 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 HDInsight avec Storm Azure Functions Azure App Service WebJobs
Prise en charge temporelle/fenêtrage intégrée Oui 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 à base de code personnalisé Tout format à base de code personnalisé Tout format à base de 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 Limitée par la taille du cluster Jusqu'à 200 instances d’application de fonction traitées en parallèle Limitée par la capacité du plan App Service
Prise en charge de l’arrivée tardive et de la gestion des événements de manière désordonnée Oui 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 :

Étapes suivantes