Data Lineage : une tentative de définition

by | May 13, 2020 | Catalogue de données, Data Gouvernance

Dans la gouvernance des données, on évoque fréquemment la fonctionnalité du data lineage. Malheureusement, une certaine confusion s’installe parfois lorsqu’on en parle à la machine à café. Le lineage a en effet beaucoup évolué ces dernières années…

Une définition très large pourrait être :

“Le lineage d’une donnée est la représentation des objets associés à cette donnée”.

Cet article a pour vocation de tenter d’analyser les deux éléments de cette définition : 

  • la question primordiale de ce qu’on entend par association d’objets (le contenu),
  • et celle secondaire de la représentation (la forme).

Vous voulez découvrir notre Data Catalog ?

moteur-recherche-datacatalog-360

Contenu du lineage

Le lineage technique

Initialement, le lignage d’une donnée se rattachait uniquement à la question de son origine et des différentes transformations qui amenaient à son existence ou son utilisation. Dans ce cadre, on regardait uniquement les associations techniques (quels sont les objets associés qui permettent de charger cette donnée). 

Regarder ce lineage dans l’autre direction (quelles sont les transformations et données dont mon objet est la source) était alors appelé analyse d’impact.

Une première évolution a eu lieu, et ces deux sens d’analyse (Amont et aval) se regroupent désormais sous le terme de lineage (en anglais on parle de backward/forward ou end-to end data lineage).

 La notion de transformation/déplacement de la donnée implique clairement une question sur la “dynamique” des données, et on qualifie souvent ce type de lineage d’horizontal. On constatera surtout qu’il s’agit d’un lineage technique, qui présente le parcours de la donnée dans l’entreprise en alternant flux et stockage de données.

Le lineage conceptuel

Avec le déploiement de solution de métadata management, une autre évolution du lignage semble être en cours : les lineages peuvent désormais présenter la notion de déclinaison entre une donnée conceptuelle et ses déclinaisons logiques et physique. Par exemple l’objet métier “Client” pourrait être décliné en entité fonctionnelle “Client” puis en tables “CL001” et “DIM_CLIENT”

On parle alors de lignage vertical de la donnée. Bien que le terme ne soit pas encore très répandu, j’utilise également la notion d’empreinte (footprint) pour un lineage descendant. En effet, il permet de visualiser par exemple toutes les sources qui contiennent une donnée importante.

Toutes nos ressources sont par ici 

Le lineage global comme graal de la traçabilité ?

Il peut-être tentant de chercher à combiner les 2 types de lineage “Horizontal” et “Vertical”. Néanmoins cette représentation se révèle très rapidement complexe à déchiffrer vu le nombre d’objets et de liens que l’on peut trouver dans un SI standard.

Dans ce cadre, il faut bien garder à l’esprit une notion de catégorisation des liens ainsi que leur direction : il s’agit de pouvoir filtrer sur les objets qui nous intéressent et éviter le bruit des objets inutiles.

Prenons l’exemple d’un lineage technique: je souhaite savoir comment la colonne T_CLIENT.ID_CLIENT est alimentée.

En récupérant tous les liens je pourrais disposer d’un lineage comme celui-ci (pas très complexe mais avec beaucoup d’informations superflues) :

datalineage-1

Je vais filtrer sur les types d’association “Alimentation physique” :

datalineage-2

Puis choisir la direction : droite vers gauche en partant de ma colonne :

datalineage-3

J’arrive ainsi à visualiser facilement l’origine de mes données. Bien-sûr nous aurions pu également filtrer sur un niveau de profondeur, les types d’objets,…

Comme pour tout outil d’analyse, la réussite d’un lineage dépend d’un facteur prépondérant: quelle est la question que je me pose ?

Il suffit de travailler dans une seule perspective (vertical/horizontal et une seule direction) pour répondre ainsi à la plupart des questions.

Représentations du lineage

Il est tout à fait possible de représenter textuellement ou via des tableurs des lineages. Mais le fait de manipuler des objets et leurs associations ramène tout naturellement à des représentations de type base graphe (affichage de nœuds et de relations).

Historiquement, l’objet principal du lineage était au début de l’arborescence et en haut à gauche dans les graphes.

SAS_DI

Exemple d’image SAS Data Integration Studio

LineageBO

Exemple de lineage des données d’un rapport Business Objects (2014). Les données sources sont positionnées à droite dans ce lineage. https://blogs.sap.com/wp-content/uploads/2014/04/boe4_424174.png

Il semble désormais admis que la représentation du lineage horizontal se fait en positionnant les objets source à gauche et les objets cible à droite de l’objet principal (du moins dans les cultures occidentales pour s’aligner sur le mode de lecture de gauche à droite).

Lineage_PBI

Exemple de Lineage PowerBI (source : https://docs.microsoft.com/en-us/power-bi/collaborate-share/media/service-data-lineage/service-data-lineage-view.png )

D’une manière générale, les évolutions de représentation graphique dans le web ont grandement servi la représentation des lineages.

Conclusion

On assiste actuellement à une demande croissante de lineages dans la plupart des outils en lien avec la data et notamment les outils de gouvernance. On peut supposer que l’amélioration rapide des aspects visuels n’y est pas étrangère. Attention néanmoins à ne pas négliger les capacité concernant la gestion du contenu (capacité de récupération et de filtrage) au profit de l’esthétisme : le lineage est avant tout un outil d’analyse qui doit servir la productivité et le partage de la connaissance.

Auteur de l’article : Sébastien Thomas, passionné par les métadonnées et la modélisation, il est cofondateur de DataGalaxy.

Toutes nos ressources sont par ici