Les données d’aujourd’hui sont générées à partir d’un nombre infini de sources : capteurs IoT, serveurs de bases de données, journaux d’applications. Il est presque impossible de réguler la structure, l’intégrité des données ou de contrôler la quantité ou la vitesse des données générées.
Alors que les solutions traditionnelles sont conçues pour ingérer, traiter et structurer les données avant qu’elles ne puissent être utilisées, l’architecture de données en streaming ajoute la possibilité de consommer, de conserver, de stocker, d’enrichir et d’analyser les données en mouvement.
Comme de plus en plus de données proviennent d’une variété de sources d’événements, il existe un besoin de technologie pour collecter, traiter les données et extraire une valeur réelle des données en temps réel. Les données devraient maintenant être livrées beaucoup plus rapidement que jamais.
Sources de données en continu
Les données en streaming sont utilisées dans de nombreuses industries. En fait, à strictement parler, chaque donnée peut être considérée comme un flux. Certains des cas d’utilisation les plus populaires sont répertoriés ci-dessous :
- Données de capteur IoT. Machines industrielles, électronique grand public, agriculture.
- Suivi des utilisateurs sur les sites Web. Boutiques en ligne, portails de comparaison de prix.
- Surveillance. Santé du système, utilisation des ressources, systèmes de suivi du trafic.
- Industrie automobile. Suivi des véhicules, informations d’itinéraire.
- Transactions financières. Détection de la fraude, surveillance du commerce et gestion.
Données limitées vs données illimitées

Données bornées est fini et a un début et une fin discrets. Vous pouvez associer des données limitées au traitement par lots. Par exemple, les données de vente d’une entreprise sont collectées quotidiennement. Ensuite, il est téléchargé dans la base de données chaque semaine, chaque mois ou même chaque année. L’analyse est exécutée de manière à obtenir des informations sur les données et à créer des sorties via un processus par lots.

Données illimitées est infini, n’ayant ni début ni fin distincts. Les données illimitées sont généralement associées à traitement de flux. Par exemple, les capteurs collectent en permanence des données réelles sur la température, la vitesse, l’emplacement, etc. La collecte de données ne s’arrête jamais. Il s’agit d’un processus continu de 24 heures.
Nous discuterons des données illimitées et du traitement des flux dans cet article.
Qu’est-ce que le traitement de flux ?
Traitement de flux combine la collecte, l’intégration et l’analyse de données illimitées. Le traitement de flux fournit des données illimitées en continu, plutôt que d’attendre la fin d’un travail par lots à la fin d’une journée ou d’une semaine.
Le « traitement en continu » et le « traitement par lots » ont des objectifs très différents. Le traitement par lots est excellent pour analyser les tendances, tandis que le traitement par flux est idéal pour analyser et travailler sur un événement à la fois.
Imaginez que vous vous connectez à un flux de données. Les données arrivent naturellement sous forme de flux d’événements sans fin. Ainsi, le traitement est effectué en continu et vous n’avez aucun contrôle sur le moment où les données arrivent. Cela se produit simplement lorsque les données sont collectées.
Les données arrivent à grande vitesse. Donc, généralement, l’analyse des données dans le traitement de flux est beaucoup plus simple que dans les systèmes de traitement par lots, car le traitement prend du temps et des ressources. La priorité la plus élevée pour le traitement Stream est de traiter les données dès que possible.
Caractéristiques des flux de données
- Bien qu’une grande quantité de données puisse être ingérée à partir de sources d’événements, le les enregistrements de données sont généralement petits. Il s’agit de données structurées aux formats JSON, CSV, XML. En règle générale, la taille des enregistrements individuels ne dépasse pas quelques kilo-octets. Nous ne parlons pas de mégaoctets ou de gigaoctets.
- Les volumes de données peuvent être extrêmement élevés. Vous pouvez vous attendre à ce qu’un grand nombre de messages arrivent dans le système que vous devez gérer.
- Distribution inégale des données. Par exemple, vous suivez des véhicules en mouvement dans une ville. Il y a de fortes chances que vous n’ayez pas beaucoup de charge sur le système la nuit parce que personne ne conduit. Mais le matin, aux heures de pointe, d’immenses sommets vous attendent.
- Les données peuvent arriver à destination dans le désordre par rapport au moment où l’événement s’est produit. En règle générale, les données sont collectées de manière séquentielle. Mais dans le monde réel, lorsque les données transitent par un réseau ou un courtier de messages distribués, elles peuvent se retrouver dans une application grand public traitant les données dans le désordre par rapport au moment où l’événement réel s’est produit. Ainsi, le système doit être conçu pour gérer cela correctement.
Dans de nombreux cas, comme dans l’exemple de l’heure de pointe ci-dessus, le la valeur des données en temps réel pour la prise de décision diminue avec le temps.
Par exemple, vous surveillez la situation du trafic et souhaitez voir passer les voitures. Plus vous pouvez traiter ces données rapidement, plus vous pouvez déployer cette situation critique. Vous essayez de garder cette route ouverte pour augmenter le nombre de voitures qui passent. Au fil du temps, votre capacité à réagir diminue. La capacité de réagir et de prendre des décisions urgentes dépend de la rapidité avec laquelle ces données sont collectées.
Présentation des workflows de traitement de flux de base
Filtration:

Réduisez la quantité de données en mémoire avant de les enregistrer sur le disque.
Revenons à notre exemple sur la surveillance des véhicules. Imaginez combien de voitures arrivent à un certain point de la route aux heures de pointe. Faire passer tous ces milliers de voitures en une seconde coûte assez cher. Peut-être êtes-vous simplement intéressé par un type de véhicule spécifique (SUV ou camion). Vous pouvez filtrer ces données dans un workflow, puis les valider sur disque. L’autre filtrera par emplacement. Nous pouvons vouloir collecter des données sur l’ensemble du pays, mais en réalité, nous ne sommes probablement intéressés que par l’analyse de certaines zones spécifiques.
Les organisations sont souvent intéressées par la collecte d’ensembles de données pour un seul scénario à partir de l’ensemble de données complet, le filtrage est donc vital.
Enrichissement:

Enrichissement des données consiste à joindre des données illimitées et à ajouter des données propriétaires ou tierces à un ensemble de données avant de les stocker sur un disque.
Pourquoi voudriez-vous enrichir vos données en temps réel plutôt que dans votre entrepôt ?
Dans l’exemple du trafic aux heures de pointe, si vous enrichissez vos données en temps réel, vous pouvez prendre la bonne décision immédiatement pendant l’événement. Disons que vous enrichissez vos données dans un entrepôt. Dans ce cas, vous l’enrichissez après l’événement, ou vous devrez peut-être même effectuer une recherche complexe de lieu et d’heure pour déterminer quelle était la situation à l’époque, ce qui est une option beaucoup plus coûteuse.
Lorsque de petits morceaux de données sont diffusés à partir de capteurs, il n’est pas nécessaire de stocker toutes ces données pour prendre des décisions intelligentes. Dans la plupart des cas, il suffit de n’avoir que la valeur moyenne de plusieurs capteurs pendant un certain temps dans le stockage.
Agrégation

L’agrégation est la somme de données illimitées en calculant des agrégats dans une fenêtre de temps avant d’écrire les données sur le disque.
Dans ce cas, fenêtrage est utilisé pour l’agrégation. Pour résumer les statistiques de données pour des périodes spécifiques, vous devez créer des points de début et de fin pour chaque fenêtre d’analyse.
Par exemple, si vous surveillez la température de l’air avec des milliers de capteurs dans une province chaque minute, vous n’avez probablement pas besoin de ce niveau de détail. Vous pouvez agréger des données sur dix minutes pour chaque période fenêtrée.
L’agrégation réduit considérablement la quantité de données que vous devez stocker.
Pourquoi tirer parti du Cloud Computing pour le traitement de flux ?
Techniquement, il est possible de créer une infrastructure sur site pour le traitement des données en continu. Mais il est beaucoup plus rentable de tirer parti des services cloud pour les tâches de traitement de flux.
L’évolutivité des clouds est phénoménale, il n’est donc pas nécessaire de se concentrer sur l’infrastructure, mais vous pouvez vous concentrer directement sur le problème.
De nombreuses sources de données en streaming se trouvent désormais dans le cloud. C’est un grand moment maintenant que les services liés à la collecte de données et au « traitement de flux » comme Lacs de données, entrepôts de données, appareils IoT ne font qu’exploser avec la mise en ligne de la 5G.