Data Pipeline

Un pipeline de données est une série d’étapes de traitement des données. Si les données ne sont pas actuellement chargées dans la plateforme de données, alors elles sont ingérées au début du pipeline. Ensuite, il y a une série d’étapes dans lesquelles chaque étape fournit une sortie qui est l’entrée de l’étape suivante. Ce processus se poursuit jusqu’à ce que le pipeline soit complet. Dans certains cas, des étapes indépendantes peuvent être exécutées en parallèle.

Les pipelines de données se composent de trois éléments clés : une source, une ou plusieurs étapes de traitement, et une destination. Dans certains pipelines de données, la destination peut être appelée un puits. Les pipelines de données permettent le flux de données d’une application vers un entrepôt de données, d’un lac de données vers une base de données analytiques, ou vers un système de traitement des paiements, par exemple. Les pipelines de données peuvent également avoir la même source et le même puits, de sorte que le pipeline consiste uniquement à modifier l’ensemble de données. Chaque fois que des données sont traitées entre un point A et un point B (ou des points B, C et D), il y a un pipeline de données entre ces points.

Les organisations cherchant à construire des applications avec de petites bases de code qui servent un objectif très spécifique (ces types d’applications sont appelés « microservices »), elles déplacent des données entre de plus en plus d’applications, ce qui fait de l’efficacité des pipelines de données une considération critique dans leur planification et leur développement. Les données générées dans un système ou une application source peuvent alimenter plusieurs pipelines de données, et ces pipelines peuvent avoir plusieurs autres pipelines ou applications qui dépendent de leurs sorties.

Pensez à un seul commentaire sur les médias sociaux. Cet événement pourrait générer des données pour alimenter un rapport en temps réel comptant les mentions sur les médias sociaux, une application d’analyse des sentiments qui produit un résultat positif, négatif ou neutre, ou une application représentant chaque mention sur une carte du monde. Bien que les données proviennent de la même source dans tous les cas, chacune de ces applications est construite sur des pipelines de données uniques qui doivent être complétés sans heurts avant que l’utilisateur final ne voie le résultat.

Les étapes courantes des pipelines de données comprennent la transformation, l’augmentation, l’enrichissement, le filtrage, le regroupement, l’agrégation des données et l’exécution d’algorithmes contre ces données.

Qu’est-ce qu’un pipeline de données volumineuses ?

Au fur et à mesure que le volume, la variété et la vélocité des données ont augmenté de façon spectaculaire ces dernières années, les architectes et les développeurs ont dû s’adapter aux « données volumineuses ». Le terme « big data » implique qu’il y a un énorme volume à traiter. Ce volume de données peut ouvrir des opportunités pour des cas d’utilisation tels que l’analyse prédictive, le reporting en temps réel et les alertes, parmi de nombreux exemples.

Comme de nombreux composants de l’architecture de données, les pipelines de données ont évolué pour prendre en charge le big data. Les pipelines de big data sont des pipelines de données construits pour prendre en compte un ou plusieurs des trois traits du big data. La vélocité des big data rend attrayante la construction de pipelines de données en continu pour les big data. Les données peuvent alors être capturées et traitées en temps réel pour qu’une action puisse ensuite se produire. Le volume des big data exige que les pipelines de données soient évolutifs, car le volume peut être variable dans le temps. Dans la pratique, il est probable que de nombreux événements liés aux big data se produisent simultanément ou très près les uns des autres, de sorte que le pipeline de big data doit être capable d’évoluer pour traiter simultanément des volumes importants de données. La variété des big data exige que les pipelines de big data soient capables de reconnaître et de traiter des données dans de nombreux formats différents – structurés, non structurés et semi-structurés.

Data Pipeline vs. ETL

ETL fait référence à un type spécifique de pipeline de données. ETL signifie « extraire, transformer, charger ». Il s’agit du processus de déplacement des données d’une source, telle qu’une application, vers une destination, généralement un entrepôt de données.  » Extraire  » fait référence à l’extraction des données d’une source ;  » transformer  » consiste à modifier les données afin qu’elles puissent être chargées dans la destination, et  » charger  » consiste à insérer les données dans la destination.

L’ETL a historiquement été utilisé pour les charges de travail par lots, en particulier à grande échelle. Mais une nouvelle race d’outils ETL de streaming émerge en tant que partie du pipeline pour les données d’événements en streaming en temps réel.

Préoccupations du pipeline de données

Les architectures de pipeline de données nécessitent de nombreuses considérations. Par exemple, votre pipeline doit-il traiter des données en continu ? Quel est le débit de données que vous attendez ? Quelle quantité et quels types de traitement doivent être effectués dans le pipeline de données ? Les données sont-elles générées dans le nuage ou sur place, et où doivent-elles aller ? Prévoyez-vous de construire le pipeline avec des microservices ? Existe-t-il des technologies spécifiques dans lesquelles votre équipe est déjà bien rodée en matière de programmation et de maintenance ?

Exemples d’architecture

Les pipelines de données peuvent être architecturés de plusieurs manières différentes. Un exemple courant est un pipeline de données basé sur des lots. Dans cet exemple, vous pouvez avoir une application telle qu’un système de point de vente qui génère un grand nombre de points de données que vous devez pousser vers un entrepôt de données et une base de données analytiques. Voici un exemple de ce à quoi cela ressemblerait :

Exemple de pipeline de données
Un exemple de base d’un pipeline de données.

Un autre exemple est un pipeline de données en continu. Dans un pipeline de données en continu, les données du système de point de vente seraient traitées au fur et à mesure qu’elles sont générées. Le moteur de traitement de flux pourrait alimenter les sorties du pipeline vers des magasins de données, des applications de marketing et des CRM, entre autres applications, ainsi que vers le système de point de vente lui-même.

Diagramme de pipeline de données en continu
Ce diagramme modélise un pipeline de données en continu. Le flux de données est est géré par le framework de traitement de flux où il peut être traité et livré aux apps et/ou aux solutions.

Un troisième exemple de pipeline de données est l’architecture Lambda, qui combine les pipelines de lots et de flux en une seule architecture. L’architecture Lambda est populaire dans les environnements de big data car elle permet aux développeurs de prendre en compte à la fois les cas d’utilisation de streaming en temps réel et les analyses historiques par lots. Un aspect clé de cette architecture est qu’elle encourage le stockage des données au format brut afin que vous puissiez continuellement exécuter de nouveaux pipelines de données pour corriger toute erreur de code dans les pipelines précédents, ou pour créer de nouvelles destinations de données qui permettent de nouveaux types de requêtes.

Diagramme de l'architecture Lambda
L’architecture Lambda prend en compte à la fois un pipeline de données batch traditionnel et un pipeline de streaming de données en temps réel. Elle dispose également d’une couche de service qui répond aux requêtes.

Thèmes connexes

Streaming ETL

Architecture Lambda

Traitement en continu

.

Laisser un commentaire