Qu'est-ce que le data streaming ?

Le data streaming est le processus de transmission d'un flux continu de données (également appelé « flux ») généralement introduit dans un logiciel de traitement de flux afin d'en tirer des informations précieuses. Un data stream est constitué d'une série d'éléments de données ordonnés dans le temps. Les données représentent un « événement » ou un changement d'état qui s'est produit dans l'entreprise et qu'il est utile pour l'entreprise de connaître et d'analyser, souvent en temps réel. Parmi les exemples de data stream, citons les données de capteurs, les journaux d'activité des navigateurs Web et les journaux de transactions financières. Un data stream peut être visualisé comme un tapis roulant sans fin, transportant des éléments de données et les acheminant en continu vers un processeur de données.

Exemple de data streaming

Avec la croissance de l'Internet des objets (IoT) et les attentes des clients, l'importance du streaming et du traitement des data stream a augmenté. Les moniteurs de santé personnels et les systèmes de sécurité domestique sont deux exemples de sources de data streaming. Un système de sécurité domestique comprend plusieurs capteurs de mouvement pour surveiller différentes zones de la maison. Ces capteurs génèrent un data stream transmis en continu à une infrastructure de traitement qui surveille toute activité inattendue, soit en temps réel, soit en sauvegardant les données pour les analyser afin de détecter des modèles plus difficiles à détecter ultérieurement. Les moniteurs de santé sont un autre exemple de sources de data streaming, notamment les moniteurs de rythme cardiaque, de pression sanguine ou d'oxygène. Ces appareils génèrent en permanence des données. L'analyse en temps opportun de ces données est essentielle, car la sécurité de la personne concernée peut en dépendre.

Quelles sont les caractéristiques générales des data stream ?

Les streaming data provenant de capteurs, de navigateurs Web et d'autres systèmes de surveillance présentent certaines caractéristiques qui les distinguent des données historiques traditionnelles. Voici quelques caractéristiques clés des streaming data :

Urgentes

Chaque élément d'un data stream contient un horodatage. Les data stream sont sensibles au temps et perdent de leur importance après un certain délai. Par exemple, les données d'un système de sécurité domestique qui indiquent un mouvement suspect doivent être analysées et traitées dans un court laps de temps pour rester pertinentes.

Continues

Le sreaming data n'a ni début ni fin. Les data stream sont continus et se produisent en temps réel, mais ils ne sont pas toujours pris en compte sur le moment, en fonction des exigences du système.

Hétérogènes

Les data stream proviennent souvent de milliers de sources différentes qui peuvent être géographiquement éloignées. En raison de la disparité des sources, les data stream peuvent être un mélange de différents formats.

Imparfaites

En raison de la variété de leurs sources et des différents mécanismes de transmission des données, un data stream peut comporter des éléments de données manquants ou endommagés. De même, les éléments de données d'un flux peuvent arriver dans le désordre.

Volatiles et non reproductibles

Comme le data streaming se produit en temps réel, la transmission répétée d'un flux est assez difficile. Bien qu'il existe des dispositions pour la retransmission, les nouvelles données peuvent ne pas être les mêmes que les dernières. Cela rend les data stream très volatiles. Toutefois, de nombreux systèmes modernes conservent un enregistrement de leurs data stream. Ainsi, même si vous n'avez pas pu y accéder sur le moment, vous pourrez toujours les analyser ultérieurement.

Ebook gratuit : quel type d'analyse vous convient le mieux ? Reporting, analyse prédictive et tout ce qui se trouve entre les deux.
E-book gratuit : Quel type d'analyse vous convient le mieux ? Reporting, analyse prédictive, et tout ce qui se trouve entre les deux.
Quel type d'analyse vous convient le mieux ? Identifiez la meilleure solution pour votre entreprise.

Quelle est l'importance du data streaming pour les entreprises ?

Les données sous forme de flux sont très importantes dans le monde d'aujourd'hui. De nombreux appareils IoT et internautes génèrent chaque seconde d'énormes volumes de données continues et en temps réel. Le traitement de ces données en temps réel constitue à la fois un défi et une opportunité pour les entreprises.

La nature changeante des données

Traditionnellement, les entreprises collectent des données au fil du temps, les stockent dans des entrepôts de données et les traitent par lots. Cela permet d'économiser une puissance de calcul limitée. Ces dernières années, la structure des données et les technologies de traitement ont fortement évolué. L'IoT a introduit un large éventail de capteurs qui génèrent des data stream. Les cartes de crédit et les transactions financières en ligne génèrent également des données en temps réel qui doivent être analysées et vérifiées. Les navigateurs Web génèrent des transactions en ligne et des journaux d'activité. Le data streaming et le traitement de flux sont essentiels pour traiter ces types de données.

De grands volumes de données

La quantité de données générées chaque seconde est trop importante pour être stockée dans un entrepôt de données. Par conséquent, les données de flux sont souvent évaluées sur le moment pour déterminer si elles constituent un élément clé des données en temps réel ou si elles ne sont pas nécessaires. Par conséquent, les systèmes peuvent diffuser des données en continu et les analyser immédiatement pour décider de ce qui doit être stocké ou non, ce qui aide les organisations à réduire les pertes de données, le stockage de données et les coûts d'infrastructure.

Exemples de data streaming

L'Internet des objets : l'ioT comprend un très grand nombre de dispositifs qui collectent des données à l'aide de capteurs et les transmettent en temps réel à un processeur de données. Les données de l'ioT génèrent des données en continu. Les moniteurs de santé portables comme les montres, les systèmes de sécurité domestique, les systèmes de surveillance du trafic, les scanners biométriques, les appareils électroménagers connectés, les systèmes de cybersécurité et de protection de la vie privée génèrent et diffusent des données en temps réel.

Moniteurs boursiers en temps réel : les données financières en temps réel sont souvent transmises sous forme de flux. Le traitement et l'analyse des données financières (comme le cours des actions et les tendances du marché) aident les organisations à prendre rapidement des décisions cruciales.

Journaux d'activité et de transactions : Internet est également une source importante de stream data en temps réel. Lorsque des personnes visitent des sites Web ou cliquent sur des liens, les navigateurs Web génèrent des journaux d'activité. Les transactions financières en ligne, comme les achats par carte de crédit, génèrent également des données critiques en termes de temps qui peuvent être diffusées et traitées pour des actions en temps réel.

Les moniteurs de processus : chaque entreprise génère des milliards de points de données à partir de ses systèmes internes. En diffusant ces données et en les traitant en temps réel, les entreprises sont en mesure de surveiller la santé du système et d'agir avant que les choses ne s'aggravent. Par exemple, les entreprises manufacturières disposent souvent d'appareils permettant de surveiller l'état de santé de la chaîne de montage et de détecter les pannes afin d'évaluer les risques pour la production. Ces appareils peuvent également diffuser des données critiques en temps réel pour surveiller les pannes et même les prévenir.

Qu'est-ce que le traitement en continu ? Comment fonctionne-t-il ?

Pour traiter des données en continu ou en direct, vous avez besoin d'un processus très différent du processus batch (traitement par lots) traditionnel. Les processeur de flux recueillent, analysent et visualisent les flux continus de données. Et bien sûr, pour le traitement, vous devez commencer par le data streaming. Celui-ci est le point de départ du traitement en continu. Le traitement en continu est utilisé pour absorber les data stream et en tirer des informations, souvent en temps réel. En raison de la nature unique des streaming data, le processeur de flux doit répondre aux exigences suivantes :

Faible latence

Le processeur de flux doit travailler rapidement sur des flux continus de données. La vitesse de traitement est une préoccupation majeure pour deux raisons. Premièrement, les données arrivent sous forme de flux continu et si le processeur est lent et manque des données, il ne peut pas revenir en arrière. Deuxièmement, les streaming data perdent rapidement leur pertinence. Tout retard de traitement entraîne une détérioration de la valeur des données.

Évolutivité

Les streaming data n'ont pas toujours le même volume. Par exemple, les capteurs peuvent souvent générer de faibles volumes de données, mais occasionnellement, il peut y avoir un pic de données. Comme le volume des données est imprévisible, le processeur doit être capable de traiter de gros volumes de données lorsque cela s'avère nécessaire.

Disponibilité

Le processeur de flux ne peut pas se permettre de longs temps d'arrêt. Les stream data sont continues et arrivent en temps réel. Le processeur doit être tolérant aux pannes, ce qui signifie qu'il doit pouvoir continuer à fonctionner même si certains de ses composants tombent en panne. Un processeur de flux doit également être capable de collecter, de traiter et de transmettre immédiatement les informations à une couche supérieure pour présentation.

Quels sont les principaux composants d'un processeur de flux ?

En général, il existe deux cas d'utilisation du traitement en continu :

Gestion de data stream

Dans la gestion des data stream, l'objectif du traitement des flux est de créer un résumé des données entrantes ou de construire des modèles. Par exemple, à partir d'un flux continu de données faciales, un processeur de flux peut être en mesure de créer une liste de caractéristiques faciales. Un autre exemple de ce cas d'utilisation est celui des journaux d'activité Internet. À partir du flux constant de données sur les clics des utilisateurs, le processeur de flux tente de calculer les préférences et les goûts de l'utilisateur.

Complex event processing

Le complex event processing est le cas d'utilisation qui s'applique à la plupart des data stream de l'IoT. Dans ce cas d'utilisation, le data stream est constitué de flux d'événements. Le travail du processeur de flux consiste à extraire les événements significatifs, en tirer des enseignements utiles et transmettre rapidement les informations à une couche supérieure afin que des mesures rapides puissent être prises en temps réel.

Certains processeurs de flux ne traitent qu'un seul des cas d'utilisation ci-dessus, tandis que d'autres, plus avancés, traitent les deux. Indépendamment du cas d'utilisation, l'architecture de bout en bout du processeur de flux doit présenter les fonctionnalités suivantes :

Génération de données

Le système de génération de données désigne les différentes sources de données brutes, comme les capteurs, les moniteurs de transactions et les navigateurs Web. Elles produisent en permanence des données que le système de traitement en continu doit consommer.

Collecte et agrégation des données

Chacune des sources de génération de données ci-dessus est associée à un client, qui reçoit les données de la source. Ces clients sont appelés clients sources. L'agrégateur rassemble les données de plusieurs clients sources et envoie les données en mouvement vers un tampon de données centralisé.

Mise en mémoire du tampon de messagerie

Les tampons de messagerie prennent les stream data provenant d'un agent d'agrégation et les stockent temporairement avant de les transmettre à un processeur logique. Il existe deux principaux types de tampons de messagerie : les tampons basés sur les sujets et les tampons basés sur les files d'attente. Dans les tampons basés sur les sujets, les données entrantes sont stockées sous la forme d'enregistrements appelés sujets. Un ou plusieurs producteurs de données peuvent contribuer à un sujet. Le tampon de messagerie basé sur les files d'attente est plutôt un système de mise en mémoire tampon point à point, qui lit les données d'un seul producteur et les transmet à un seul consommateur de données.

Message Broker

Les systèmes de collecte et d'agrégation des données et de mise en mémoire tampon des messages forment ensemble un système de message broker. La fonctionnalité du message broker consiste à agréger les stream data provenant de diverses sources, à les formater et à les transmettre à un système de traitement logique continu.

Traitement logique continu

C'est le cœur de l'architecture de traitement des flux. Le sous-système de traitement logique continu exécute diverses requêtes prédéfinies sur les data stream entrants pour en tirer des informations utiles. Les requêtes peuvent être aussi simples que celles stockées dans un fichier XML. Ces requêtes sont exécutées en continu sur les données entrantes. Ce sous-système peut définir un langage de commande déclaratif permettant aux utilisateurs de créer facilement ces requêtes. Le système de traitement logique continu fonctionne souvent sur des machines distribuées pour des raisons d'évolutivité et de tolérance aux pannes. Au fil des ans, le système de traitement logique a évolué pour prendre en charge la modification dynamique des requêtes et les API de programmation pour faciliter les requêtes.

Stockage et présentation

Ce sont deux systèmes de soutien dans le traitement des flux. Le système de stockage conserve un résumé du data stream d'entrée et peut être utilisé pour des références futures. Il stocke également les résultats des requêtes qui sont exécutées sur le data stream continu. Le système de présentation est utilisé pour la visualisation des données au niveau des consommateurs. Le système de présentation peut inclure un niveau supérieur de système analytique ou des alertes pour les utilisateurs finaux.

Traitement en continu et processus batch

Traditionnellement, les entreprises collectent des données provenant de diverses sources, comme les registres de ventes, les interactions avec les clients et les évaluations, et les stockent dans un entrepôt de données. Ces données sont ensuite traitées par lots dans un système d'analyse de données. Le processus batch fonctionne souvent sur des données historiques qui ne sont pas critiques en termes de temps. Bien que les données historiques soient importantes, elles ne fournissent pas les informations en temps réel que de nombreuses organisations recherchent aujourd'hui. Le traitement en continu permet d'obtenir des informations sur des données en temps réel qui doivent être traitées rapidement.

Le processus batch permet de stocker et de traiter les données à votre convenance, tandis que le traitement en continu exige une action en temps réel ou quasi réel. Le processus batch traite les données qui ne sont pas critiques en termes de temps et qui n'ont pas besoin d'être aussi rapides que le traitement en continu. Par rapport au traitement en continu, le processus batch nécessite souvent une infrastructure plus importante pour stocker les données en attendant qu'elles soient analysées. Toutefois, la plupart des entreprises ont besoin d'une combinaison de traitement en continu et de processus batch pour réussir sur le marché actuel.

Essayez TIBCO Spotfire - Essai gratuit
Essayez TIBCO Spotfire - Essai gratuit
Avec TIBCO Spotfire, la solution d'analyse la plus complète du marché, découvrez facilement de nouvelles informations à partir de vos données.

Avantages du data streaming et du traitement des données

Traitement en continu et rendements élevés

Les entreprises peuvent tirer une immense valeur des données en général. Les techniques de traitement de flux en temps réel aident les entreprises à obtenir un avantage en analysant des données sensibles en matière de temps afin de pouvoir réagir et répondre rapidement aux problèmes potentiels. Par exemple, l'analyse des flux aide les organisations financières à surveiller les cours des actions en temps réel et à prendre des décisions urgentes. Elle les aide à être informés des tendances du marché en temps réel. Les systèmes robustes de visualisation, ainsi qu'une infrastructure de traitement des flux en temps réel, permettent aux entreprises d'améliorer leur temps de réponse aux événements cruciaux.

Réduire les coûts d'infrastructure

Dans le traitement traditionnel des données, celles-ci sont souvent stockées en énormes volumes dans des entrepôts de données. Le coût de ces systèmes de stockage et du matériel est souvent une charge pour les entreprises. Avec le traitement en flux, les données ne sont pas stockées en énormes volumes et les systèmes de traitement ont donc des coûts matériels moindres.

Réduire les pertes évitables

Les data stream en temps réel permettent aux entreprises de surveiller en permanence leur écosystème commercial. Ils les tiennent informées des éventuelles violations de sécurité, des problèmes de fabrication, de l'insatisfaction des clients, des effondrements financiers ou d'une perturbation imminente de l'image sociale. Grâce à la diffusion et au data streaming continu, les entreprises peuvent éviter ces problèmes.

Augmenter la compétitivité et la satisfaction des clients

Grâce au traitement des données en temps réel, les entreprises peuvent résoudre de manière proactive les problèmes éventuels avant qu'ils se matérialisent. Cela leur donne du temps et un avantage sur leurs concurrents. Le streaming et le traitement des données augmentent également la satisfaction des clients, car les problèmes des clients peuvent être traités en temps réel. Grâce au traitement continu et en temps réel des données, il n'y a pas de retard dû au fait que les données attendent d'être traitées dans les entrepôts.

Défis pour le traitement et la diffusion en continu des données

Les systèmes de traitement et de diffusion des données traitent des données hautement volatiles, en temps réel et en continu. Les données en flux sont souvent hétérogènes et incomplètes. La nature même des données en flux pose de nombreux défis au streaming et au traitement des données.

Volume et diversité des données

Le data streaming traite d'énormes volumes de données en continu et en temps réel. Les pertes de données et les paquets de données endommagés sont des problèmes courants dans le domaine du data streaming. Les données en continu sont souvent hétérogènes, provenant de divers emplacements géographiques et applications. La gestion de ces données constitue un défi pour les applications de streaming et de traitement des données en raison de leur nature même.

Respect des délais

La pertinence des données en continu diminue avec le temps. Le système de streaming et de traitement des données doit être suffisamment rapide pour analyser les données pendant qu'elles sont encore pertinentes. La nature critique des données en continu exige un système hautement performant et tolérant aux pannes.

Élasticité

Le volume de données en continu augmente chaque jour. Pour maintenir un certain niveau de qualité de service, les systèmes de traitement en continu doivent s'adapter dynamiquement à la charge. Les sources de données en flux ne transmettent pas toujours de gros volumes de données. Dans ce cas, les systèmes de traitement ne doivent utiliser que des ressources minimales. Lorsque la demande augmente, le système doit allouer dynamiquement plus de ressources. Ce besoin d'élasticité est un autre défi des systèmes de traitement en continu.

Tolérance aux pannes

Le traitement du flux se fait en continu et en temps réel. Les données transmises en continu ne peuvent pas être répétées ou parfaitement retransmises. Par conséquent, les systèmes de traitement en continu ne peuvent pas se permettre de temps d'arrêt. Contrairement aux systèmes traditionnels de processus batch, il n'y a pas beaucoup de temps entre la collecte et le traitement des données. Les systèmes doivent être disponibles en permanence et doivent fonctionner en permanence. Si une partie du système tombe en panne, cela ne doit pas affecter le reste du système de traitement.