Introduction au streaming de données
Au cours des dernières années, le besoin de données en temps réel a considérablement augmenté. Les organisations développent de plus en plus d'applications et de plateformes qui s'appuient sur des flux de données pour produire des analyses en temps réel et du machine learning, afin de soutenir les efforts de croissance de l'entreprise. En collectant, en traitant et en analysant les données en continu, les dirigeants peuvent obtenir des informations immédiates, prendre des décisions plus rapidement et faire des prédictions plus précises.
Avec le streaming de données en temps réel, les entreprises peuvent suivre de nombreux éléments stratégiques, comme les transactions commerciales dans les systèmes opérationnels et les cas de fraude potentiels, mais aussi informer leurs modèles de tarification dynamique. Parallèlement à cela, la prolifération de l'Internet des objets (IoT) a considérablement accru les quantités de données brutes émises chaque jour par les appareils et capteurs. Un accès immédiat à ces datasets facilite la résolution des problèmes potentiels et permet de faire des recommandations propres à un site ou un secteur.
En bref, les données en temps réel ont le pouvoir de transformer une organisation en créant de nouvelles opportunités d'innovation et en offrant une visibilité sur les datasets.
Poursuivez votre exploration
Traitement en streaming et par batch
Pour gérer leurs données, les organisations ont traditionnellement misé sur le traitement par batch, qui consiste à collecter et traiter les données par lots à des intervalles définis. Aujourd'hui, les entreprises optent pour le traitement par batch lorsqu'elles ont besoin de données récentes, mais pas nécessairement en temps réel. C'est notamment le cas de la prévision des ventes, de la gestion des stocks, de l'ingestion de données à partir de mainframes et du traitement des enquêtes consommateurs.
Cependant, pour rester compétitives dans l'environnement commercial mondialisé d'aujourd'hui, les organisations ont de plus en plus besoin d'accéder aux données dès leur collecte. Le streaming des données les aide à prendre des décisions rapides grâce au traitement rapide, précis et quasi-temps réel des données. Capable de traiter les données en quelques secondes ou millisecondes, le streaming est l'outil idéal des applications tels que le trading à haute fréquence, les enchères en temps réel, le traitement des logs, l'analyse en temps réel et la détection de la fraude.
Mais il ne suffit pas de savoir qu'on a besoin de données en continu pour abandonner le traitement par batch, car plusieurs facteurs compliquent la transition :
- API et langages à apprendre. Il se peut que les langages et les outils que maîtrise l'équipe data en place ne suffisent pas.
- Outils opérationnels complexes à développer. Il peut être difficile de déployer et de maintenir des pipelines de données en streaming qui fonctionnent de manière fiable dans l'environnement de production.
- Séparation des données en temps réel et historiques. Certaines incompatibilités des modèles de gouvernance incompatibles peuvent empêcher de contrôler correctement l'accès des utilisateurs et des groupes.
Databricks aide les clients à dépasser le dilemme traditionnel entre batch et streaming avec la Data Intelligence Platform. En intégrant l'analytique en temps réel, le machine learning (ML) et les applications sur une même plateforme, la plateforme centralise et simplifie le traitement de données en gérant à la fois les données par batch et en streaming.
Avec la Databricks Data Intelligence Platform, les utilisateurs vont :
- Créer plus rapidement des pipelines de streaming et des applications. Les clients peuvent utiliser les langages et les outils qu'ils maîtrisent déjà avec des API unifiées de traitement batch et streaming en SQL et Python. Ils pourront ainsi mettre l'analytique, le ML et les applications en temps réel au service de l'ensemble de l'organisation.
- Simplifier les opérations grâce à l'automatisation des outils. Déployez facilement vos pipelines et applications en temps réel en production et bénéficiez d'une gestion simplifiée. Les outils automatisés simplifient l'orchestration des tâches, la tolérance aux pannes et le rétablissement, l'optimisation des performances ainsi que l'automatisation des contrôles et de l'évolutivité.
- Unifier la gouvernance de toutes vos données en temps réel sur vos différents clouds. Unity Catalog fournit un modèle de gouvernance unifié pour l'ensemble de vos données batch et streaming, afin de simplifier la découverte, la consultation et le partage des données en temps réel.
Streaming et traitement en temps réel
Le streaming et le traitement en temps réel sont deux concepts étroitement liés et ils sont souvent employés de manière interchangeable. Il faut toutefois faire quelques distinctions subtiles mais importantes.
Le « streaming des données » désigne les flux de données continus générés par les données en mouvement. C'est une approche de pipeline dans laquelle les données sont traitées en petits groupes – ou événements – au fil de leur génération. Le « traitement en temps réel », en revanche, met l'accent sur l'immédiateté de l'analyse et de la réponse. Il vise à fournir des informations avec le minimum de délai après la réception des données. En d'autres termes, un système de streaming ingère des données en temps réel et les traite dès leur arrivée.
Soulignons également que, lorsqu'on parle de « streaming en temps réel », il faut faire une distinction supplémentaire entre « temps réel » et « quasi-temps réel », et cette distinction concerne principalement la latence. On parle de données en temps réel lorsque les systèmes analysent et exploitent les données avec des délais négligeables, généralement dans l'ordre de quelques millisecondes après la génération des données. Ces systèmes sont conçus pour des scénarios exigeant une action immédiate, comme le trading automatisé d'actions, les systèmes de surveillance médicale ou la détection de la fraude dans les transactions financières.
Le traitement en quasi-temps réel, en revanche, implique un léger retard, qui se mesure généralement en secondes. Cette approche convient donc mieux aux situations qui ne nécessitent pas une réponse instantanée, mais ont tout intérêt à recevoir des mises à jour constantes . C'est le cas du suivi des flux des réseaux sociaux, de la supervision logistique et de l'agrégation des données qui alimentent les tableaux de bord opérationnels.
Traitement incrémentiel dans les pipelines de données
Si le traitement en stream est extrêmement utile pour certaines organisations, il reste onéreux et consomme beaucoup de ressources. Il est toutefois possible de bénéficier des avantages du streaming de données sans les traiter en continu : grâce à l'incrémentalisation. Cette méthode ne traite que les données nouvellement ajoutées, modifiées ou remplacées plutôt que le dataset au complet.
Dans Databricks, les vues matérialisées sont très utiles pour adopter l'incrémentalisation. Une vue matérialisée est un objet de base de données qui stocke les résultats d’une requête (query) dans une table physique. Les vues matérialisées sont différentes des vues de base de données classiques qui sont virtuelles et tirent leurs données des tables sous-jacentes. Elles contiennent des données précalculées mises à jour de manière progressive selon un planning ou à la demande. Ce calcul préalable des données permet d’accélérer les temps de réponse des requêtes et d’améliorer les performances dans certains scénarios.
Les vues matérialisées peuvent être utiles lors du traitement de petits ensembles de données, plutôt que des datasets complets. Globalement, l'incrémentalisation des données d'un pipeline peut en augmenter l'efficacité en réduisant l'effort de calcul, le temps de traitement et la consommation de ressources. C'est particulièrement pratique pour les pipelines volumineux : le traitement des mises à jour peut accélérer l'analyse et la prise de décision.
Considérations et compromis propres au streaming
La mise en œuvre des flux de données en temps réel doit tenir compte de facteurs importants dans l'architecture de traitement. La conception du système peut introduire des compromis importants et dépend des exigences des charges de travail de votre organisation et de ses objectifs commerciaux. Parmi ces facteurs, citons surtout :
La latence : elle désigne le temps nécessaire pour que les données soient traitées et livrées à partir de leur réception. Des données à faible latence sont essentielles pour des applications en temps réel telles que la détection de la fraude ou même le streaming vidéo en direct, mais elles peuvent coûter cher à maintenir.
Une latence plus élevée peut tout à fait convenir aux workflows qui nécessitent uniquement des rapports périodiques ou qui n'exigent pas un traitement immédiat et une prise de décision rapide. Les systèmes qui stockent les données de log ou produisent des rapports de ventes quotidiens ou hebdomadaires utilisent généralement des flux de données à latence plus élevée.
Débit : il s'agit du volume de données qu'un système peut traiter dans un intervalle donné ; il est généralement exprimé en événements par seconde. L'IoT exige un débit élevé pour gérer efficacement des flux de données massifs. Il faut toutefois garder en tête qu'un débit plus élevé peut avoir un impact sur la latence.
Coût : dans de nombreuses organisations, le coût est le facteur qui détermine les bons niveaux de latence et de débit de leurs systèmes. Pour les charges de travail qui nécessitent un traitement rapide des données, il peut être rentable d'investir dans la conception d'un système à faible latence et à haut débit. En revanche, si vos besoins en données ne sont pas immédiats, ou si vos charges de travail nécessitent des batches de données plus volumineux, alors un système à la latence plus élevée pourra tout à fait convenir.
Toutes les architectures de streaming ne se valent pas, et il est essentiel de trouver le juste équilibre pour répondre aux exigences de vos charges en préservant votre budget. Il s'agit davantage d'accéder à vos données au moment où vous en avez besoin qu'en temps réel.
Architecture de streaming Spark
Le streaming structuré SparkTM est la technologie à la base du streaming de données sur la Databricks Data Intelligence Platform. Il fournit une API unifiée pour le traitement en batch et en streaming. Spark est un projet open source qui divise les flux de données continus en petits batches plus faciles à traiter. Le streaming structuré vous permet d’utiliser les API structurées de Spark pour exécuter des opérations en mode streaming, de la même façon que vous le feriez en mode batch. Cela peut réduire la latence (jusqu'à 250 ms seulement) et permettre un traitement incrémental.
Dans le streaming structuré, les données sont considérées comme une table infinie et traitées de manière incrémentale. Spark collecte les données entrantes sur un bref intervalle, forme un batch puis le traite comme une tâche batch traditionnelle. Cette approche combine la simplicité du traitement par batch avec des capacités quasi en temps réel, et ses points de contrôle intégrés lui confèrent des capacités de tolérance aux pannes et de récupération en cas de défaillance.
L'approche Spark du pipeline de données est conçue pour utiliser efficacement les ressources. Le pipeline commence par ingérer les données brutes, qui sont ensuite filtrées, agrégées ou mappées sur le trajet du dépôt de stockage. Mais chaque étape traite les données de manière incrémentielle tout au long du pipeline, afin de détecter les anomalies et les erreurs avant qu'elles ne soient stockées dans une base de données.
Pour les charges qui exigent une grande réactivité, Spark propose un mode de traitement continu qui offre des capacités temps réel en traitant chaque enregistrement individuellement dès son arrivée. Pour en savoir plus sur la gestion des données en streaming sur Databricks, visitez cette page.
ETL et streaming
L'ETL (extraction, transformation, chargement) en streaming permet de traiter et d'analyser les données en temps réel ou presque, afin de répondre aux exigences des applications et des workflows data-driven. L'ETL est habituellement exécuté par batch ; l'ETL en streaming, quant à lui, ingère les données au fil de leur génération pour garantir une disponibilité quasi immédiate des données pour l'analyse.
L'ETL en streaming minimise la latence en traitant les données de manière incrémentielle. Cela permet de bénéficier de mises à jour continues sans attendre le prochain lot de données. Il réduit également les risques associés aux données obsolètes ou inutiles et veille à ce que les décisions s'appuient sur les informations les plus récentes disponibles.
Tout outil ETL doit posséder la capacité d'évoluer avec l'entreprise. Databricks a créé DLT, le premier cadre ETL qui utilise une approche déclarative simple pour construire des pipelines de données fiables. Vos équipes peuvent utiliser les langages et les outils qu'elles connaissent déjà, comme SQL et Python, pour développer et exécuter des pipelines de données par batch et en streaming. Tout se fait au même endroit, avec des paramètres de rafraîchissement contrôlables et automatisés. Au bénéfice du gain du temps s'ajoute celui de l'allègement de la complexité opérationnelle. Quel que soit l’endroit où vous prévoyez d’envoyer vos données, gagnez du temps sur le nettoyage des données brutes en créant vos pipelines de streaming sur la Databricks Data Intelligence Platform.
Analytique en streaming
Comme nous l'avons vu, le streaming de données assure le traitement continu des données avec une faible latence. Il peut ainsi transmettre des analyses en temps réel, au fur et à mesure que les événements se produisent. L'accès en temps réel (ou quasi-temps réel) aux données brutes peut avoir une valeur stratégique pour les opérations commerciales, car il met à la portée des décideurs les informations les plus récentes et les plus pertinentes. L'analytique en streaming offre plusieurs avantages :
Visualisation des données. Garder un œil sur les informations les plus importantes de l’entreprise peut aider les organisations à gérer quotidiennement leurs indicateurs clés de performance (KPI). Les données de streaming peuvent être surveillées en temps réel, ce qui permet aux entreprises de savoir ce qui se passe à chaque instant.
Insights commerciaux. Les tableaux de bord en temps réel peuvent vous alerter en cas d'événement métier anormal. Ils servent notamment à automatiser la détection et la prise en charge des menaces métier, ainsi qu'à signaler les comportements anormaux à examiner.
Compétitivité accrue. Les entreprises qui cherchent à acquérir un avantage concurrentiel peuvent utiliser les données en streaming pour discerner les tendances et établir des critères de référence rapidement. Cela peut leur donner un avantage sur leurs concurrents qui s'appuient sur l'analyse par lots.
Réduction des pertes évitables. Avec l'analytique en streaming, les organisations peuvent prévenir ou réduire les dommages causés par tout type d'incident : failles de sécurité, problèmes de fabrication ou perte de clients.
Analyse des opérations commerciales courantes. L'analytique en streaming permet d'ingérer et d'obtenir instantanément des informations exploitables issues de données en temps réel. Et quand les dirigeants ont accès à des données pertinentes, fiables et à jour, ils ont l'assurance de prendre des décisions fondées et éclairées.
Le streaming pour l'IA/ML
Avec le développement des modèles d'intelligence artificielle (IA) et de ML, le traitement par batch traditionnel s'adapte difficilement aux volumes et à la diversité des données utilisées par ces applications. Tout retard dans la transmission des données peut fausser les réponses et nuire à l'efficacité de l'application.
Le streaming de données délivre en temps réel un flux continu d'informations basées sur les données les plus récentes. Grâce à ce mécanisme, les modèles IA/ML adaptent leurs prédictions au fur et à mesure que les événements se produisent. Le streaming des données a un double intérêt pour la préparation des modèles d'IA :
Entraînement de l'IA : dans les premières étapes du développement de l'IA/ML, le streaming des données est indispensable pour entraîner les modèles, parce qu'il délivre de grands ensembles de données structurées ou non structurées. Les modèles sont entraînés à reconnaître des motifs ou des corrélations, puis à faire des prédictions initiales sur la base de paramètres aléatoires ou prédéfinis. Ce processus est répété et affiné à l'aide de grandes quantités de données afin d'améliorer la précision et la fiabilité du modèle au fil du temps. En apprenant de ces motifs et tendances – mais aussi des déviations par rapport à la norme, ces modèles améliorent progressivement la précision des résultats et des prédictions.
Inférence de l'IA : une fois qu'un système d'IA/ML a été entraîné, il peut être déployé dans un environnement de production. Il utilisera alors les paramètres appris lors de son entraînement pour faire des prédictions (inférences) basées sur les données d'entrée. Le streaming fournit des données fraîches et inédites, grâce auxquelles les modèles génèrent des insights et des prédictions presque instantanément.
Dans tous les secteurs d'activité, les insights produits par l'IA sur la base de datasets en streaming s'avèrent très utiles. Les acteurs de la santé et du bien-être utilisent des rapports en temps réel sur les données de leurs clients pour aider les pharmaciens à fournir des recommandations et des conseils personnalisés. Les entreprises de télécommunications misent sur le machine learning en temps réel pour détecter des activités frauduleuses, comme le déblocage illégal d'appareils mobiles et l'usurpation d'identité. Les détaillants, quant à eux, exploitent les données en streaming pour automatiser la fixation des prix en temps réel, en fonction de l'inventaire et des caractéristiques du marché.
Si le streaming de données est crucial pour ces applications, soulignons tout de même que l'intégration de l'IA/ML avec le streaming présente un ensemble unique de défis. Mentionnons en particulier :
Le volume des données : les organisations ont une avalanche de données à leur disposition : informations des clients, données de transactions, données d'utilisation des appareils, etc. Pour gérer toutes ces données et les intégrer dans un modèle IA/ML, il faut une architecture de données robuste et des capacités de traitement à la fois évolutives et résilientes.
La qualité des données : si la quantité de données augmente de manière exponentielle, leur qualité et leur précision varie. Les données sont souvent issues de systèmes différents. Elles se présentent dans des formats hétérogènes et peuvent être incomplètes ou incohérentes. Pour que les modèles d'IA/ML fonctionnent correctement, la fiabilité des données doit être continuellement testée et validée.
Les pipelines de données : le développement de pipelines robustes et efficaces pour gérer l'ingestion de données en temps réel, leur transformation et leur mise à disposition de l'IA/ML peut être complexe. Votre organisation doit impérativement investir dans une infrastructure évolutive si elle veut manipuler de grands modèles d'ingestion et de traitement de données.
Databricks répond à ces problèmes avec Mosaic AI, qui fournit aux clients des outils unifiés pour développer, déployer, évaluer et gouverner des solutions d'IA et de ML. Les utilisateurs obtiennent des résultats précis et personnalisés à l'aide des données d'entreprise. Ils peuvent entraîner et servir leurs propres grands modèles de langage (LLM) à un coût 10 fois inférieur.
Streaming sur Databricks
Le déploiement du streaming de données au sein de votre organisation peut demander des efforts importants. Databricks vous facilite la tâche en simplifiant le streaming. La Databricks Data Intelligence Platform rassemble l'analytique, le machine learning et les applications en temps réel sur une seule et même plateforme. En développant des applications de streaming sur Databricks, vous allez :
- Donner à vos équipes data les moyens de créer des charges de travail de streaming avec les langages, les outils et les API qu'elles connaissent déjà.
- Simplifier le développement et les opérations grâce aux fonctions prêtes à l'emploi qui automatisent de nombreux aspects de production associés au développement et à la maintenance de pipelines de données en temps réel.
- Éliminer les silos et centraliser vos modèles de sécurité et de gouvernance sur une même plateforme prenant en charge les données en streaming et par batch.
De plus, avec DLT, les clients bénéficient d'outils automatisés qui simplifient l'ingestion des données et l'ETL, afin de préparer les datasets qui seront déployés dans les applications d'analytique en temps réel, de ML et d'exploitation.
Le streaming structuré Spark est au cœur des capacités temps réel de Databricks. Largement adopté par des centaines de milliers de personnes et d'organisations, il fournit une API unique et unifiée pour le traitement par batch et en streaming. Cette API simplifie le développement d'applications en temps réel pour les data engineers et les développeurs, qui n'ont pas besoin de changer de code ni d'acquérir de nouvelles compétences.
Partout dans le monde, les organisations profitent des avantages du streaming de données sur la Databricks Data Intelligence Platform pour optimiser leurs systèmes opérationnels, gérer des réseaux de paiement numériques, explorer des pistes d'innovation dans le domaine des énergies renouvelables et protéger les consommateurs contre la fraude.
Databricks intègre étroitement toutes ces capacités pour prendre en charge l'ensemble de vos cas d'utilisation en temps réel sur une seule plateforme.