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.

Vue d’ensemble des données de streaming

Les organisations ont souvent différentes sources de données qui émettent simultanément des messages, des enregistrements ou des données. La quantité de données peut aller de quelques octets à plusieurs mégaoctets (Mo). Les données de streaming sont émises à un volume élevé de manière continue et incrémentielle qui peut être traitée en quasi temps réel. Ce type de données inclut des informations que les entreprises utilisent pour l’analytique en temps réel et la visibilité sur différents aspects de leur activité, tels que les journaux d’activité des applications, les mises à jour de géolocalisation, les événements et les lectures de capteur.

Les données de diffusion en continu présentent souvent les caractéristiques suivantes :

  • Intégrité des données imparfaites : Les erreurs temporaires à la source peuvent entraîner des éléments de données manquants. La nature continue du flux peut introduire des incohérences de données. Par conséquent, les systèmes de traitement et d’analytique de flux incluent généralement la logique de validation des données pour atténuer ces erreurs.

  • Flux de données continu : Un flux de données n’a pas de début ou de fin. Vous devez donc collecter constamment des données. Par exemple, les journaux d’activité du serveur s’accumulent tant que le serveur s’exécute.

  • Formats de données variés : Vous pouvez diffuser en continu des données dans plusieurs formats, tels que JSON, Avro et CSV. Il peut également inclure différents types de données, tels que des chaînes, des nombres, des dates et des types binaires. Les systèmes de traitement de flux doivent gérer ces variations de données.

  • Ordre des données sensibles à l’heure : Les éléments individuels d’un flux de données contiennent des horodatages. Et le flux de données lui-même peut être sensible au temps et perdre de la valeur après une heure spécifique. Dans certains cas, vous devez conserver l’ordre de traitement des données.

Options technologiques pour le traitement en temps réel

Pour vous aider à choisir la technologie appropriée, cette section présente les options courantes dans Azure, de l’ingestion à la consommation. Chaque sous-section met en évidence les technologies recommandées en fonction de leur rôle dans le flux de traitement de streaming.

Flux de traitement à haut niveau

Diagramme montrant le flux de données pour la solution de traitement des données de bout en bout.

Téléchargez un fichier Visio de cette architecture.

Producteurs de streaming

Les producteurs de flux génèrent et envoient des données dans les services d’ingestion Azure. Ils produisent en permanence des données à partir de sources telles que des appareils IoT (Internet des objets), des journaux d’application ou des bases de données.

Les producteurs de flux offrent les avantages suivants :

  • Capturez des données en quasi temps réel. Les producteurs peuvent continuellement collecter des données à partir de sources telles que des appareils IoT, des interactions utilisateur et des journaux d’application. Ils diffusent les données dans des services Azure tels qu’Azure Event Hubs ou Azure IoT Hub.

  • Optimisez le débit avec traitement par lots et compression. Les producteurs peuvent traiter les messages par lots et appliquer la compression pour réduire la taille des données pendant la transmission. Ces fonctionnalités améliorent l’efficacité.

  • Garantir une transmission fiable avec la gestion des erreurs et les nouvelles tentatives. Les producteurs peuvent gérer les interruptions réseau ou les défaillances de répartiteur par le biais de nouvelles tentatives automatiques pour garantir une livraison fiable des données.

  • Garantir l’intégrité des données avec idempotence. Vous pouvez configurer les producteurs pour prendre en charge la remise exactement une fois, ce qui empêche les messages en double et garantit un flux de données cohérent.

Composants

  • IoT Hub ingère des données IoT. Il fournit des fonctionnalités telles que la communication bidirectionnelle, l’authentification des appareils et la mise en mémoire tampon des messages hors connexion. Il est idéal pour gérer les appareils IoT et leurs flux de données.

  • Les producteurs de capture de données modifiées (CDC) incluent des bases de données Azure telles qu’Azure SQL Database et Azure Cosmos DB.

    Pour accéder aux données CDC, vous pouvez utiliser des connecteurs, tels que Debezium pour SQL Database ou le flux de modification d'Azure Cosmos DB. Ces connecteurs sont souvent hébergés sur des environnements Azure Functions ou Azure App Service. Si vous utilisez la fonctionnalité eventstreams de Microsoft Fabric, vous n'avez pas besoin d'applications distinctes, telles que Debezium, pour connecter les producteurs CDC aux consommateurs finaux.

  • Les applications personnalisées telles que Debezium peuvent également être hébergées en tant qu’applications autonomes sur des services managés, telles qu’Azure Kubernetes Service (AKS) ou des environnements App Service. Cette approche fournit davantage de contrôle ou de personnalisation.

Fonctionnalités générales

Capacité IoT Hub Producteurs de capture de données modifiées Applications personnalisées
Télémétrie de l’appareil Oui Non Non
Service managé Oui Non Non
Extensibilité Oui Oui Oui

Ingestion de flux

Les producteurs, tels que les applications web et mobiles, les appareils IoT et les capteurs, génèrent en permanence des données. Le pipeline de traitement de flux doit ingérer efficacement ces données pour l’analyse en temps réel et par lots.

Tenez compte des facteurs suivants :

  • Vitesse des données : Déterminez comment gérer des données à haute fréquence à partir de plusieurs sources, qui varient souvent au format et à la taille.

  • Scalabilité : Assurez-vous que la couche d’ingestion peut être mise à l’échelle dynamiquement à mesure que le volume de données, la variété et la vitesse augmentent.

  • Intégrité et fiabilité des données : Empêchez la perte de données ou la duplication pendant la transmission.

Composants

  • Event Hubs est un service d’ingestion de données en temps réel qui peut gérer des millions d’événements par seconde, ce qui le rend idéal pour les scénarios à haut débit. Il peut s'ajuster dynamiquement et traiter des volumes massifs de données avec une faible latence.

    Event Hubs prend en charge des fonctionnalités telles que le partitionnement pour le traitement parallèle et les stratégies de rétention des données. Il s’intègre aux services Azure tels qu’Azure Stream Analytics, Fabric, Azure Databricks et Azure Functions. Event Hubs s’intègre également à Apache Kafka et vous pouvez exécuter des charges de travail Kafka existantes sans aucune modification du code.

  • Event Grid est un service de routage des événements entièrement managé. Il ingère, distribue et réagit aux événements provenant de différentes sources. Il est donc idéal pour les architectures basées sur les événements en temps réel. Il gère efficacement les notifications d’événements et s’intègre aux services Azure, aux applications personnalisées et aux systèmes partenaires. Event Grid joue un rôle essentiel dans l’ingestion de flux.

  • Kafka sur Azure HDInsight est un service Apache Kafka géré pour l’ingestion et le traitement en temps réel des données à grande échelle. Utilisez ce service pour capturer et stocker des données de streaming à partir de différentes sources, telles que les appareils IoT, les journaux d’application et les flux de réseaux sociaux. Ce service fournit un contrôle supplémentaire d’une configuration Kakfa sur une infrastructure managée.

  • Apache Kafka sur Confluent Cloud est un service Apache Kafka entièrement managé pour l’ingestion de données en temps réel. Il s’intègre à Azure pour simplifier le déploiement et la mise à l’échelle. Cette solution inclut des fonctionnalités telles que le registre de schémas, ksqlDB pour les requêtes de flux et la sécurité de niveau entreprise. Utilisez cette option si vous utilisez l’écosystème étendu de Confluent de connecteurs et d’outils de traitement de flux.

Fonctionnalités générales

Capacité Event Hubs Kafka sur HDInsight Kafka sur Confluent
Rétention des messages Oui Oui Oui
Limite de taille des messages 1 Mo Paramétrable Paramétrable
Service managé Oui Infrastructure managée en tant que service Oui
Mise à l’échelle automatique Oui Oui Oui
Offre de partenariat Non Non Oui
Modèle de tarification En fonction du niveau Par heure de cluster Modèles de consommation

Traitement des flux de données

Cette étape implique des processus qui transforment les données en temps réel et filtrent, agrègent, enrichissent ou analysent les données ingérées.

Tenez compte des facteurs suivants :

  • Traitement avec état et sans état : Déterminez si votre traitement dépend des données précédemment vues (avec état) ou des événements indépendants (sans état).

  • Gestion de l’heure des événements : Comptez des scénarios dans lesquels vous devez traiter les flux de données à partir de plusieurs sources ensemble, en particulier pour les enregistrements à arrivée tardive.

  • Fenêtrage: Utilisez des fenêtres glissantes ou bascules pour gérer les agrégations et les analyses basées sur le temps.

  • Tolérance de panne : Assurez-vous que le système peut récupérer des défaillances sans perte de données ni retraitement des erreurs.

Composants

  • Stream Analytics est un service managé qui utilise un langage de requête SQL pour activer l’analytique en temps réel. Utilisez ce service pour des tâches de traitement simples telles que le filtrage, l’agrégation et la jointure de flux de données. Il s’intègre en toute transparence avec Event Hubs, IoT Hub et Azure Blob Storage pour l’entrée et la sortie. Stream Analytics convient le mieux aux tâches à faible complexité et en temps réel où une solution simple et gérée avec des requêtes SQL est suffisante.

  • Spark Structured Streaming est pris en charge par des services tels que Fabric, Azure Databricks et Azure Synapse Analytics. Ces services fournissent une plateforme d’analytique unifiée basée sur Apache Spark et peuvent gérer des transformations de données complexes, des pipelines Machine Learning et des charges de travail Big Data. Les API de diffusion en continu Spark prennent en charge l’intégration approfondie à Delta Lake pour le contrôle de version et la cohérence des données.

  • Les flux d’événements Fabric sont une fonctionnalité de diffusion en continu de données en temps réel dans Fabric, qui est une plateforme d’analytique unifiée. Les flux d’événements permettent l’ingestion, le traitement et l’intégration transparentes des données de streaming pour l’analytique et les applications en temps réel. Les utilisateurs peuvent accéder aux flux d’événements avec une expertise technique minimale. Il fournit des interfaces glisser-déplacer pour configurer des pipelines de données.

  • Azure Functions est un service de calcul serverless pour le traitement piloté par les événements. Il est utile pour les tâches légères, telles que la transformation de données ou le déclenchement de flux de travail en fonction d’événements en temps réel. Les fonctions Azure sont sans état par conception. La fonctionnalité Fonctions Durables étend les capacités pour prendre en charge des flux de travail avec état pour la coordination d'événements complexes.

Fonctionnalités générales

Capacité Analyse de flux Spark Structured Streaming (Fabric, Azure Databricks, Azure Synapse Analytics) Fabric flux d’événements Les fonctions Azure
Traitement par micro-lots Oui Oui Oui Non
Traitement basé sur les événements Non Non Oui Oui
Traitement avec état Oui Oui Oui Non
Prise en charge du point de contrôle Oui Oui Oui Non
Interface à code faible Oui Non Oui Non
Modèle de tarification Unités de streaming Oui Fabric SKU Oui

Récepteurs de diffusion en continu

Une fois que le système traite les données, il dirige les données vers des destinations ou récepteurs appropriés, pour le stockage, une analyse supplémentaire ou une utilisation dans des applications en temps réel. Ces destinations peuvent inclure des bases de données, des lacs de données, des outils d’analyse ou des tableaux de bord pour la visualisation.

Tenez compte des facteurs suivants :

  • Consommation et utilisation des données : Utilisez Power BI pour les tableaux de bord d’analytique ou de création de rapports en temps réel. Il s’intègre bien aux services Azure et fournit des visualisations dynamiques des flux de données.

  • Exigences à faible latence : Déterminez si votre système doit fournir des analyses sur des flux de données en temps réel, tels que les données de télémétrie des appareils et les journaux d’application. Certaines applications peuvent également nécessiter une latence ultra-faible pour les lectures et les écritures, ce qui les rend adaptées à l’analytique opérationnelle ou aux applications en temps réel.

  • Scalabilité et volume : Évaluez la nécessité pour votre charge de travail d’ingérer de grands volumes de données, prendre en charge divers formats de données et mettre à l’échelle efficacement et rentablement.

Composants

  • Azure Data Lake Storage est une solution évolutive, distribuée et rentable pour stocker des données non structurées et semi-structurées. Il prend en charge le stockage à l’échelle de pétaoctets et les charges de travail à débit élevé pour stocker de grands volumes de données de streaming. Il permet également des opérations de lecture et d’écriture rapides, qui prennent en charge l’analytique sur les données de streaming et les pipelines de données en temps réel.

  • Un Fabric eventhouse est une base de données KQL pour les analyses et explorations en temps réel sur des données basées sur des événements, telles que les données de télémétrie et de journal, les données de séries chronologiques et les données IoT. Il prend en charge l’ingestion de millions d’événements par seconde avec une faible latence. Cette fonctionnalité permet un accès quasi instantané aux données de diffusion en continu. Un eventhouse s’intègre profondément à l’écosystème Fabric. Il permet aux utilisateurs d’interroger et d’analyser immédiatement les données de streaming à l’aide d’outils tels que Power BI.

  • Azure Cosmos DB est une base de données NoSQL pour un stockage de données à faible latence, distribué globalement et hautement évolutif. Il est compatible avec plusieurs API, telles que SQL, MongoDB, Cassandra, Table et Gremlin, qui offrent une flexibilité pour diverses applications. Azure Cosmos DB offre un débit élevé et peut gérer de grands volumes de données de streaming avec des performances cohérentes.

  • SQL Database est un service de base de données relationnelle entièrement managé et basé sur le cloud. Il est basé sur le moteur SQL Server. Il offre donc les fonctionnalités d’une base de données SQL Server traditionnelle avec les avantages de la scalabilité, de la fiabilité et de la réduction de la charge de gestion basée sur le cloud.

Fonctionnalités générales

Capacité Data Lake Storage Maison événementielle en tissu Base de données Azure Cosmos DB Base de données SQL
Magasin d’objets à usage général Oui Non Non Non
Agrégations de données de streaming Non Oui Non Non
Lectures et écritures à faible latence pour les documents JSON Non Oui Oui Non
Agrégations de données structurées pour Power BI Non Oui Non Oui
Modèle de tarification Par Go ou To Fabric SKU Unités de requête Unité de transaction de base de données (DTU) ou vCore

Contributeurs

Microsoft gère cet article. Les contributeurs suivants ont écrit cet article.

Auteur principal :

Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.

Étapes suivantes

Explorez les modules de formation suivants :