Qu’est-ce que le traitement de flux ?

Définition du traitement de flux

Le traitement de flux est une méthode permettant d’ingérer et d’analyser les données au fur et à mesure de leur génération, en temps réel.

Contrairement au traitement par lots traditionnel, qui fonctionne avec des jeux de données statiques, le traitement de flux gère des flux continus de données provenant de diverses sources telles que des capteurs, des plateformes de réseaux sociaux, des transactions financières et des appareils connectés (Internet des objets ou IdO). Chaque changement, action ou événement au sein de ces systèmes sources peut être représenté comme un « événement », c’est pourquoi le traitement de flux est parfois également appelé « traitement des flux d’événements ».

Cette approche en temps réel permet aux entreprises de réagir immédiatement aux nouvelles informations, et est donc particulièrement adaptée à des applications telles que la détection des fraudes, l’analyse prédictive et les expériences client personnalisées. Des plateformes telles qu’Apache Kafka sont couramment utilisées pour prendre en charge le traitement de flux en permettant aux systèmes de publier, de transporter et de traiter de grands volumes de données en temps réel de manière fiable et à l’échelle.

Le traitement de flux est également important pour les applications d’intelligence artificielle (IA) et de machine learning (ML), qui dépendent souvent de données actualisées en temps réel et en continu pour générer des prévisions et des informations précises. Sans cela, il peut arriver que les modèles s’appuient sur des données obsolètes ou incomplètes, ce qui réduit la précision des prévisions et augmente les risques.

Architecture de traitement de flux

L’architecture de traitement de flux comprend des technologies et des modèles qui ingèrent, transportent, traitent et analysent les flux de données en temps réel.

Dans une architecture type, des flux de données continus transitent par une plateforme spécialisée, où ils sont ingérés, stockés et mis à la disposition des systèmes en aval. Les cadres et applications de traitement de flux traitent ensuite les données en temps réel et les transmettent aux destinations en aval.

Certaines architectures de traitement de flux suivent des modèles tels que Lambda ou Kappa. L’architecture Lambda utilise une approche à double pipeline qui combine le traitement par lots et le traitement de flux, souvent pour prendre en charge l’analyse des données historiques et le traitement à faible latence. Kappa utilise un pipeline de diffusion en continu unique pour toutes les données, ce qui peut simplifier l’architecture globale et est souvent choisi pour les données pilotées par les événements.

Plateformes de diffusion en continu de données

Les plateformes de diffusion en continu de données constituent la base des pipelines et des applications de données en temps réel. Elles servent d’autoroute de messagerie et de couche de stockage permettant aux données de circuler entre les systèmes ou applications qui génèrent des événements et les services ou applications qui traitent ou analysent ces événements.

Apache Kafka est l’une des plateformes open source les plus utilisées pour la diffusion en continu d’événements. Grâce à son journal d’événements distribué et durable, Kafka permet aux applications de publier, de suivre, de stocker et de rejouer des flux de données. Ces capacités en font un outil utile pour l’analyse en temps réel, l’intégration d’applications, la détection des fraudes, le traitement des données IdO et les architectures orientées événements.

Confluent est une plateforme de diffusion en continu de données développée autour d’Apache Kafka. Elle propose des services gérés, des connecteurs, des outils de gouvernance, de gestion des schémas, de sécurité et de traitement de flux pour aider les entreprises à exploiter Kafka à l’échelle.

Parmi les autres plateformes et services de diffusion en continu de données, on peut citer :

  • Services Kafka gérés : services hébergés dans le cloud qui gèrent l’infrastructure Kafka pour le compte des utilisateurs.

  • Amazon Kinesis : un service cloud natif pour l’ingestion et la diffusion en continu de données en temps réel.

  • Google Cloud Pub/Sub : un service de messagerie sans serveur et d’ingestion d’événements pour l’analyse en continu et l’intégration d’applications.

  • Microsoft Azure Event Hubs : un service d’ingestion d’événements à haut débit pour les workloads de diffusion en continu de données.

Cadres de traitement de flux

Les cadres de traitement de flux sont des outils utilisés par les développeurs pour traiter et analyser les données en mouvement. Alors que les plateformes de diffusion en continu telles que Kafka se concentrent sur l’ingestion, le stockage et le transport d’événements, les cadres de traitement de flux se concentrent sur le calcul : filtrer, transformer, joindre, agréger et analyser les données à mesure qu’elles transitent par un pipeline.

De nombreux cadres de traitement de flux s’intègrent à Kafka, en utilisant les sujets Kafka comme source des événements entrants et comme destination des résultats traités.

Voici quelques exemples de cadres et d’outils de traitement de flux :

  • Kafka Streams : une bibliothèque Java permettant de créer des applications de traitement de flux directement sur Apache Kafka.

  • ksqlDB : un moteur de traitement de flux basé sur SQL, développé sur Kafka Streams, qui permet aux développeurs de traiter et d’interroger des flux de données en continu à l’aide de la syntaxe SQL.

  • Apache Flink : un cadre de traitement de flux avec gestion en mémoire, conçu pour les calculs avec état et le traitement d’événements complexes. Il est couramment utilisé pour des cas d’utilisation tels que la détection des fraudes et la surveillance.
  • Apache Spark Structured Streaming : développé à partir de l’ancienne solution Apache Spark Streaming, c’est un moteur de traitement de flux qui prend en charge l’analyse en temps réel ainsi que le traitement par lots. Il est souvent utilisé pour combiner l’analyse des flux de données en continu et des données historiques.

  • Apache Storm : un système de calcul distribué en temps réel permettant de traiter des flux de données en continu non bornées et avec une latence très faible.

Pourquoi utiliser le traitement de flux ? 

Imaginez que l’on surveille les signes vitaux d’un patient, mais que l’on ne vérifie les données que quelques heures par jour : les professionnels de santé passeraient à côté de changements critiques nécessitant une intervention immédiate.

Les entreprises de tous les secteurs sont confrontées à des risques similaires lorsqu’elles fonctionnent uniquement sur la base d’un traitement des données différé ou par lots. Pour agir avec rapidité et précision, elles doivent avoir accès aux informations au fur et à mesure qu’elles se produisent. Les systèmes de traitement de flux répondent à ce besoin en ingérant et en analysant en continu les données en temps réel, réduisant ainsi la latence inhérente aux workloads ETL (extraction, transformation, chargement) planifiées par lots.

Grâce au traitement en temps réel des données provenant de systèmes distribués dans des environnements hybrides et multicloud (tels que les bases de données relationnelles, les data lakes, les files d’attente de messages, les appareils connectés et les applications d’entreprise), le traitement de flux permet aux entreprises de se forger une vision plus unifiée et quasi-instantanée des données opérationnelles. Cela soutient des cas d’utilisation tels que la détection d’anomalies, la prévention des fraudes, la tarification dynamique et la personnalisation en temps réel.

Le traitement de flux revêt également une importance croissante pour la mise à l’échelle des initiatives d’IA qui reposent sur des données mises à jour en permanence. À mesure que les volumes de données et la complexité des modèles d’IA augmentent, l’infrastructure de données d’entreprise doit être capable de gérer des débits élevés et de s’adapter rapidement à des environnements distribués.

Une étude de l’IBM Institute for Business Value montre qu’environ la moitié des entreprises interrogées accordent la priorité à l’optimisation du réseau, à l’accélération du traitement des données et à l’informatique distribuée pour prendre en charge les workloads modernes. Sans la capacité de traiter et de fournir des données en temps réel et en grande quantité, les entreprises risquent de voir leurs analyses ralenties, la précision de leurs modèles réduite et de manquer l’occasion de prendre une longueur d’avance sur la concurrence.

Comment le traitement de flux facilite-t-il l’IA ?

Le traitement de flux joue un rôle important dans les applications d’IA qui nécessitent une réactivité en temps réel. Par exemple, les systèmes d’IA destinés à la maintenance prédictive, à la détection des fraudes, aux systèmes autonomes et aux recommandations personnalisées s’appuient souvent sur des données fraîches et à haut débit pour générer des prévisions ou des décisions opportunes.

En permettant aux applications d’IA d’ingérer et d’agir sur les données au fur et à mesure de leur création, qu’il s’agisse de relevés de capteurs sur des équipements industriels ou du comportement des utilisateurs sur un site Web, le traitement de flux donne aux systèmes d’IA la capacité de s’adapter aux conditions changeantes en temps réel. Les résultats de l’IA gagnent ainsi en précision et en pertinence. En effet, selon l’IBM Institute for Business Value, près de 55 % des entreprises interrogées citent l’amélioration de l’expérience client grâce aux capacités d’IA en temps réel comme principal moteur de leur investissement dans une infrastructure d’IA.

Le traitement de flux facilite également le déploiement et l’amélioration des modèles d’IA. Les pipelines de diffusion en continu acheminent des données en temps réel vers des data lakes, des entrepôts de données ou des magasins de fonctionnalités, créant ainsi une source continue de données pour la surveillance, l’évaluation et le réentraînement des modèles au fil du temps.

Quels sont les avantages du traitement de flux ?

Le traitement de flux offre un large éventail d’avantages qui permettent aux entreprises de réagir instantanément aux événements en temps réel, d’optimiser leurs ressources, d’intégrer diverses sources de données à travers les écosystèmes de données et de prendre en charge des applications fondées sur les données. Parmi les principaux avantages, on peut citer :

  • Informations en temps réel pour une prise de décision plus rapide
  • Évolutivité et flexibilité
  • Amélioration de l’expérience client
  • Efficacité opérationnelle
  • Intégration avec les écosystèmes de données
  • Prise en charge des architectures hybrides

Informations en temps réel pour une prise de décision plus rapide

Le traitement de flux permet aux entreprises d’analyser les données au fur et à mesure de leur création, et donc de détecter plus rapidement les tendances, les anomalies ou les opportunités. Grâce à la réduction de la latence entre la génération et l’analyse des données, il est possible de réagir aux événements en quelques millisecondes, une capacité essentielle pour la cybersécurité, la détection des fraudes, la surveillance et d’autres workloads où le temps est un facteur déterminant.

Évolutivité et flexibilité

Les technologies de traitement de flux peuvent gérer des volumes massifs de données sur des systèmes distribués et adapter leur capacité à l’évolution de la demande. Cette élasticité offre aux entreprises la flexibilité nécessaire pour s’adapter à des workloads fluctuants, intégrer diverses sources de données et prendre en charge de nouveaux cas d’utilisation sans avoir à remanier leur infrastructure.

Amélioration de l’expérience client

Le traitement de flux permet une personnalisation en temps réel grâce à des moteurs de recommandation et des interfaces réactives. Ces capacités permettent d’offrir des interactions client plus engageantes et pertinentes.

Efficacité opérationnelle

La surveillance continue et en temps réel des systèmes, des chaînes d’approvisionnement et des infrastructures permet de mettre en place une maintenance proactive et d’optimiser les processus, ce qui réduit les temps d’arrêt et les coûts.

Intégration avec les écosystèmes de données

Le traitement de flux permet d’alimenter en continu des data lakes, des entrepôts de données, des lakehouses et des pipelines avec des données en temps réel, soutenant ainsi les workflows d’ingénierie des données, d’analyse, de machine learning et de business intelligence.

Prise en charge des architectures hybrides

Les technologies de traitement de flux peuvent compléter les systèmes de traitement par lots, permettant d’analyser à la fois les données historiques et les données en temps réel. Par exemple, Apache Spark prend en charge à la fois l’analyse par lots et l’analyse en continu, tandis qu’Apache Kafka peut servir de base de diffusion en continu d’événements pour traiter les données d’événements en vue d’un traitement en aval.

AI Academy

La gestion des données est-elle le secret de l’IA générative ?

Découvrez pourquoi des données de haute qualité sont essentielles pour une utilisation réussie de l’IA générative.

Comment fonctionne le traitement de flux ?

À la base, le traitement de flux suit un modèle en trois étapes :

  • Ingestion
  • Traitement
  • Sortie

Ingestion

Lors de l’ingestion, des connecteurs de diffusion en continu ou des plateformes de diffusion en continu d’événements capturent des données en temps réel provenant de sources telles que des capteurs, des appareils connectés, des applications mobiles ou des systèmes d’entreprise. Les données entrantes sont souvent non bornées et arrivent en continu, ce qui signifie qu’elles sont générées sans point de terminaison fixe et peuvent croître indéfiniment à mesure que de nouveaux événements se produisent. Des outils tels que Kafka Connect et Apache Pulsar sont essentiels pour gérer l’ingestion de données à haute vitesse.

Traitement

Au cours de la phase de traitement, les données sont transformées, filtrées, enrichies ou analysées à mesure qu’elles arrivent. Cette phase peut inclure des opérations telles que l’agrégation d’indicateurs, la détection d’anomalies, la jonction de plusieurs flux ou l’application de modèles de machine learning pour l’inférence en temps réel.

Le traitement de flux est particulièrement utile dans les environnements de mégadonnées, où les entreprises doivent gérer et analyser de grands volumes évoluant rapidement et provenant de sources diverses. Ces opérations sont orchestrées par des pipelines de traitement, qui définissent la séquence des transformations et la logique appliquée à mesure que les données circulent dans le système.

Sortie

Le flux de sortie constitue la dernière étape, au cours de laquelle les données traitées sont transmises à des systèmes en aval, tels que des tableaux de bord en temps réel pour la surveillance, des bases de données pour le stockage ou des systèmes automatisés qui déclenchent des workflows et des alertes. Dans de nombreux cas, les données traitées sont également acheminées vers un data lake pour une exploration flexible ou vers un entrepôt de données pour des requêtes et des rapports structurés.

Défis liés au traitement de flux

Si le traitement de flux offre de nombreux avantages, il peut également soulever des difficultés dans plusieurs domaines liés à la gestion des données, à l’architecture, à l’intégration et aux opérations :

  • Gérer d’importants volumes de données à haute vitesse provenant de sources diverses
  • Intégrer le traitement de flux dans une stratégie de données plus large
  • Concevoir des API fiables et une logique d’application en temps réel
  • Choisir les langages de programmation adaptés
  • Assurer la cohérence des données et la gouvernance des schémas
  • Prendre en charge les requêtes en temps réel et l’analyse hybride

Gérer d’importants volumes de données à haute vitesse provenant de sources diverses

Les flux provenant de divers systèmes et appareils génèrent d’énormes volumes de données hautement dynamiques qui nécessitent un traitement à faible latence. Pour les gérer efficacement, les entreprises ont besoin de moteurs de traitement de flux et de systèmes de conception capables d’évoluer horizontalement, de répartir les workloads entre les nœuds et de maintenir les performances malgré les fluctuations des volumes de données.

Intégrer le traitement de flux dans une stratégie de données plus large

Les entreprises doivent également réfléchir à la manière dont le traitement de flux s’intègre dans un écosystème de données plus large. Cette intégration peut s’avérer complexe, car les équipes spécialisées devront déterminer quelles données doivent être traitées en temps réel, lesquelles doivent être stockées pour une analyse ultérieure, et comment les systèmes de diffusion en continu doivent interagir avec les applications et les pipelines existants.

Concevoir des API fiables et une logique d’application en temps réel

Les applications de diffusion en continu interagissent fréquemment avec d’autres services via des interfaces de programmation d’applications (API), des interfaces orientées événements et des microservices, qui sont capables de communiquer avec une faible latence et de tolérer les pannes. De plus, les développeurs doivent tenir compte de la complexité des algorithmes utilisés pour analyser les données en mouvement, que ce soit pour la détection d’anomalies, la modélisation prédictive ou la prise de décision en temps réel.

Choisir les langages de programmation adaptés

Le traitement de flux exige des équipes qu’elles choisissent des outils et des langages adaptés à leurs besoins en matière de performances, d’évolutivité et de développement. Les développeurs se tournent souvent vers Java et Python, chacun servant des objectifs distincts au sein de l’écosystème de traitement de flux. Java est généralement utilisé pour créer des pipelines évolutifs et de qualité production dans des environnements tels qu’Apache Kafka et Apache Flink, tandis que Python est utilisé pour le prototypage rapide et l’intégration de modèles de machine learning dans les workflows de diffusion en continu.

Assurer la cohérence des données et la gouvernance des schémas

Pour garantir la cohérence et l’interprétabilité des données au fur et à mesure de leur circulation dans le système, les plateformes de traitement de flux s’appuient sur des schémas qui définissent le format, les types et la structure des données. Ces schémas permettent de valider les données sur l’ensemble des nœuds distribués et prennent en charge les requêtes en temps réel. Sans une gouvernance rigoureuse des schémas, les modifications apportées aux formats d’événements peuvent perturber les applications en aval, les tableaux de bord ou les pipelines de machine learning.

Prendre en charge les requêtes en temps réel et l’analyse hybride

De nombreuses plateformes de traitement de flux fournissent des interfaces de type SQL qui permettent aux utilisateurs de filtrer, d’agréger et de joindre des flux de données en continu sans écrire de code complexe. Cependant, interroger des données en mouvement peut s’avérer difficile. Les entreprises doivent également intégrer les systèmes de diffusion en continu à des environnements d’analyse par lots et d’analyse historique afin de combiner les informations en temps réel avec le contexte historique, ce qui peut augmenter la complexité.

Cas d’utilisation concrets du traitement de flux

Des entreprises de tous les secteurs adoptent des applications de traitement de flux pour agir sur les données dès leur génération. Vous trouverez ci-dessous des exemples illustrant comment différents secteurs exploitent le traitement de flux pour améliorer l’efficacité, les résultats pour les patients, l’engagement client et bien plus encore.

Secteur bancaire et marchés financiers

Les banques utilisent le traitement de flux pour analyser les transactions au fur et à mesure qu’elles se produisent, repérant rapidement les schémas inhabituels ou les anomalies. En corrélant plusieurs points de données tels que la localisation, l’appareil et l’historique des transactions, les systèmes peuvent signaler une activité suspecte avant qu’elle ne s’aggrave. Les informations en temps réel permettent également aux négociateurs et aux gestionnaires de risques de réagir instantanément à la volatilité. En intégrant les flux en direct provenant des bourses et des systèmes internes, les entreprises peuvent prendre des décisions éclairées plus rapidement et atténuer les risques.

Assurance

Le traitement de flux accélère la validation des déclarations de sinistre en ingérant en temps réel les données issues des détails des polices, des photos, des capteurs IdO et d’autres sources de données. Des workflows automatisés permettent d’approuver instantanément les déclarations les plus simples et de transmettre les cas complexes pour examen. Cela réduit les délais de traitement, améliore la satisfaction client et diminue les coûts opérationnels.

Soins de santé

Les hôpitaux et les professionnels de santé exploitent le traitement de flux pour identifier des schémas pouvant indiquer des complications telles qu’une septicémie, une insuffisance cardiaque ou une pneumonie, afin de pouvoir intervenir de manière proactive et en temps opportun et d’améliorer les résultats pour les patients. Par exemple, l’Emory University Hospital (États-Unis) a utilisé la plateforme d’analyse en continu d’IBM pour traiter plus de 100 000 points de données par patient et par seconde dans son unité de soins intensifs et détecter instantanément les changements potentiellement mortels, permettant ainsi des interventions plus rapides1.

Télécommunications

Les opérateurs télécoms utilisent le traitement de flux pour surveiller les performances du réseau et les interactions avec les clients en temps réel. Ils exploitent l’analyse en continu pour traiter quotidiennement des milliards d’enregistrements d’appels détaillés et détecter instantanément les anomalies de service et les activités frauduleuses. En analysant les flux vocaux et d’événements au fur et à mesure des appels, le système prédit également le risque de perte de clientèle et oriente les clients de manière proactive vers des spécialistes de la rétention.

Vente au détail

Les détaillants se tournent vers le traitement de flux pour obtenir des informations plus rapidement et améliorer la prise de décision fondée sur les données. Un détaillant alimentaire, qui traitait auparavant ses données par lots une fois par jour, est passé à une ingestion de messages en temps quasi réel. Son architecture de messagerie orientée événements lui permet de traiter 50 millions de messages par jour provenant de plus de 2 400 magasins, ce qui facilite la détection rapide de problèmes tels que le vol et lui permet de prendre des décisions plus éclairées.

Traitement de flux et traitement par lots

Le choix entre le traitement de flux et le traitement par lots dépend de la nature des données, de l’urgence des informations et de la complexité de l’analyse.

Le traitement de flux est idéal pour les workloads qui nécessitent une réactivité en temps réel ou quasi-temps réel. Par exemple, il permet d’analyser les données en temps réel, d’assurer une surveillance en direct, de proposer des recommandations personnalisées et de gérer les stocks de manière dynamique, car il peut traiter en continu d’énormes quantités de données à mesure qu’elles transitent par les pipelines de données.

En revanche, le traitement par lots est plus approprié lorsqu’il s’agit de travailler avec de grands volumes de données historiques ou lorsque la latence est moins importante. Il est couramment utilisé pour des tâches telles que le reporting, l’entreposage des données et l’analyse des tendances à long terme, où les données provenant de différentes sources sont collectées, stockées et traitées à intervalles réguliers.

Le traitement par lots peut être plus simple à mettre en œuvre et plus rentable pour les workloads qui ne nécessitent pas de résultats instantanés. Dans de nombreuses architectures modernes, les entreprises combinent les deux approches : elles utilisent le traitement de flux pour obtenir des informations immédiates et le traitement par lots pour une analyse rétrospective plus approfondie. Ce modèle hybride maximise la valeur des données en temps réel et des données historiques.

Auteurs

Judith Aquino

Staff Writer

IBM Think

Alexandra Jonker

Staff Editor

IBM Think

Solutions connexes
Solutions de plateformes DataOps

Organisez vos données avec les solutions de plateformes IBM DataOps pour en garantir la fiabilité et les préparer pour l’IA.

Découvrir les solutions DataOps
IBM StreamSets

Créez et gérez des pipelines intelligents de diffusion de données en continu via une interface graphique intuitive, facilitant ainsi une intégration fluide des données dans les environnements hybrides et multicloud.

Découvrir StreamSets
Services de conseil pour les données et les analyses

Avec IBM Consulting, exploitez les données de votre entreprise et développez une organisation basée sur les informations pour tirer des avantages métier.

Découvrir les services d’analytique
Passez à l’étape suivante

Intégrez à la fois des données structurées et des données non structurées à l’aide d’un mélange de styles, y compris les lots, la diffusion en continu en temps réel et la réplication, afin d’éviter de perdre du temps et de l’argent à passer d’un outil à l’autre.

  1. Découvrir IBM watsonx.data integration
  2. Découvrir les solutions d’intégration de données
Notes de bas de page

1 Emory University Hospital explores ‘intensive care unit of the future, Emory University News Center, 5 novembre 2013