Explorer les éléments courants de l’architecture de traitement par flux

Effectué

Il existe de nombreuses technologies que vous pouvez utiliser pour implémenter une solution de traitement par flux de données. Bien que des détails d’implémentation spécifiques puissent varier, il y a des éléments communs à la plupart des architectures de diffusion en continu.

Architecture générale pour le traitement par flux

Dans sa forme la plus simple, une architecture de haut niveau pour le traitement par flux ressemble à ceci :

An event generates data, which is captured in a queue before being processed, and the results are written to a data store or visualization

  1. Un événement génère des données. Il peut s’agir d’un signal émis par un capteur, d’une publication sur les réseaux sociaux, d’une entrée de fichier journal en cours d’écriture ou de toute autre occurrence qui produit des données numériques.
  2. Les données générées sont capturées dans une source de diffusion en continu pour être traitées. Dans les cas simples, la source peut être un dossier au sein d’un magasin de données Cloud ou une table dans une base de données. Dans les solutions de diffusion en continu plus robustes, la source peut être une « file d’attente » qui encapsule la logique pour s’assurer que les données d’événement sont traitées dans l’ordre et que chaque événement n’est traité qu’une seule fois.
  3. Les données d’événement sont traitées, souvent par une requête perpétuelle qui opère sur les données d’événement pour sélectionner des données pour des types spécifiques d’événements, des valeurs de données de projet ou des valeurs de données agrégées sur des périodes (ou Windows), par exemple en comptant le nombre d’émissions de capteurs par minute.
  4. Les résultats de l’opération de traitement par flux sont écrits dans une sortie (ou un récepteur), qui peut être un fichier, une table de base de données, un tableau de bord visuel en temps réel ou une autre file d’attente pour un traitement ultérieur par une requête en aval suivante.

Analyses en temps réel dans Azure

Microsoft Azure prend en charge plusieurs technologies que vous pouvez utiliser pour implémenter l’analyse en temps réel des données de diffusion en continu, notamment :

  • Azure Stream Analytics : solution PaaS (Platform-as-a-service) que vous pouvez utiliser pour définir des tâches de diffusion en continu qui ingèrent des données à partir d’une source de streaming, appliquent une requête perpétuelle et écrivent les résultats dans une sortie.
  • Spark Structured Streaming : bibliothèque open source qui vous permet de développer des solutions de diffusion en continu complexes sur des services Apache Spark, notamment Azure Synapse Analytics, Azure Databrickset Azure HDInsight.
  • Azure Data Explorer : base de données hautes performances et service d’analyse optimisés pour l’ingestion et l’interrogation des données par lots ou de diffusion en continu avec un élément de série chronologique qui peut être utilisé en tant que service Azure autonome ou en tant que runtime Azure Synapse Data Explorer dans un espace de travail Azure Synapse Analytics.

Sources pour le traitement par flux

Les services suivants sont couramment utilisés afin d’ingérer des données pour le traitement par flux dans Azure :

  • Azure Event Hubs : service d’ingestion de données que vous pouvez utiliser pour gérer les files d’attente de données d’événement, garantissant que chaque événement est traité dans l’ordre, exactement une fois.
  • Azure IoT Hub : service d’ingestion de données qui est similaire à Azure Event Hubs, mais qui est optimisé pour la gestion des données d’événement à partir d’appareils Internet of-things (IoT).
  • Azure Data Lake Store Gen 2 : service de stockage hautement évolutif qui est souvent utilisé dans les scénarios de traitement par lots, mais qui peut également être utilisé comme source de données de diffusion en continu.
  • Apache Kafka : solution d’ingestion de données Open source couramment utilisée avec Apache Spark. Vous pouvez utiliser Azure HDInsight pour créer un cluster Kafka.

Récepteurs pour le traitement par flux

La sortie du traitement par flux est souvent envoyée aux services suivants :

  • Azure Event Hubs : utilisé pour la mise en file d’attente des données traitées pour un traitement en aval supplémentaire.
  • Azure Data Lake Store Gen 2 ou stockage Blob Azure : utilisé pour conserver les résultats traités dans un fichier.
  • Azure SQL Database ou Azure Synapse Analytics, ou Azure Databricks : utilisé pour conserver les résultats traités dans un tableau de base de données pour l’interrogation et l’analyse.
  • Microsoft Power BI : permet de générer des visualisations de données en temps réel dans les rapports et les tableaux de bord.