Traitement continu des données en mouvement au fur et à mesure que les événements se produisent, à l'aide de frameworks de flux pour ingérer, transformer et acheminer les flux à haute vitesse afin d'obtenir des informations immédiates.
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.
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 :
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 :

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.
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.
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.