La traçabilité au niveau du champ, d’une tuile de tableau de bord à une colonne d’entrepôt
La traçabilité au niveau table vous dit qu’un tableau de bord touche une table. La traçabilité au niveau colonne vous dit quels tableaux de bord cassent quand vous supprimez une colonne. Voici la différence, pourquoi le dernier saut est difficile, et comment lire une carte sans s’y noyer.
Une colonne est sur le point d’être supprimée, retypée ou renommée. Deux questions se ressemblent à ce moment-là. L’une est : quels tableaux de bord touchent cette table. L’autre est : quels tableaux de bord cassent.
La traçabilité au niveau table répond à la première. Sur une table large, elle renvoie quarante tableaux de bord. Deux d’entre eux utilisent la colonne, et quelqu’un doit maintenant ouvrir quarante classeurs pour trouver ces deux-là. Le rapport est juste, et presque inutile.
La traçabilité au niveau colonne répond à la seconde, et c’est pour cela que le travail supplémentaire pour atteindre ce grain vaut la peine.
La chaîne, saut par saut
Une tuile de tableau de bord affiche une feuille, et la feuille utilise des champs.
Chaque champ est soit un calcul, soit un lien direct vers une source de données.
Un calcul utilise d’autres champs, parfois sur plusieurs niveaux, parfois à travers plusieurs sources de données.
Un champ de source de données correspond à une colonne d’une table physique.
Cette table a des tables en amont, à travers des vues et des transformations, jusqu’à l’endroit où les données ont atterri en premier.
Chaque saut traverse une frontière de système. Chaque système a sa propre idée de ce qu’est un nom. C’est là que vit le problème, et non dans le dessin du graphe.
Le dernier saut
Deux problèmes apparaissent ici. Les deux ont été trouvés en sondant des entrepôts réels, pas en lisant à leur sujet.
Les noms arrivent cités dans un dialecte. Une API de métadonnées renvoie le nom complet cité comme son propre dialecte le cite. Ce n’est pas une chaîne qu’un autre moteur acceptera telle quelle.
La casse compte. Les liaisons Snowflake sont sensibles à la casse, et un nom non cité passe en majuscules. Liez un nom brut et il ne correspond à aucune ligne.
Un zéro silencieux est la pire défaillance en traçabilité. Un résultat vide ressemble exactement à une réponse propre. Un lien connecté, bien configuré et qui ne correspond à rien se lit comme un environnement sans aucune dépendance.
La solution est de normaliser avant chaque sondage d’entrepôt, pas à la fin. Les segments Snowflake non cités passent en majuscules. Les noms Databricks sont décités et mis en minuscules dans le SQL lui-même. Le nom complet est découpé en segments au lieu d’être décortiqué par une recherche de chaîne.
D’où viennent les arêtes de colonnes
Snowflake
La fonction de traçabilité propre au compte, avec une distance plafonnée pour qu’un graphe profond ne s’emballe pas. Un repli sur l’usage du compte couvre les comptes plus anciens où cette fonction est absente.
Databricks
system.access.column_lineage. Une vraie traçabilité de colonne à colonne tenue par la plateforme elle-même, ce qui est la preuve la plus forte disponible.
Palantir AIP
Les types de liens, lus depuis chaque type d’objet tour à tour. Ils sont le graphe de jointure propre à l’ontologie, et le sens dans lequel ils courent est celui que la plateforme déclare plutôt qu’un sens déduit des noms.
Tableau
L’API de métadonnées. Elle répond au niveau colonne quand le catalogue a indexé jusque-là, et au niveau table quand il ne l’a pas fait. Ce cas doit être traité, pas escamoté.
Correspondance par nom
Un pont d’un champ de source de données vers une colonne d’entrepôt par le nom. Utilisé seulement là où la correspondance est unique, et toujours étiqueté comme apparié.
Le quatrième mérite un regard sévère, et le produit le lui donne. Un pont apparié par nom est étiqueté comme apparié, et n’est jamais montré comme une donnée de catalogue. Une supposition étiquetée supposition est utile. Une supposition promue en silence au rang de fait ruine toute la carte, y compris les parties qui étaient justes.
Dites quel grain vous avez atteint
Une carte de traçabilité devrait énoncer le grain qu’elle a atteint, et nommer ce qui l’a complété. Le catalogue peut répondre au niveau table. Les listes de colonnes tirées de l’entrepôt finissent alors le travail, et la carte dit exactement cela.
Cela ressemble à une petite question de politesse. C’est l’écart entre une carte à partir de laquelle vous pouvez décider et une carte que vous devez vérifier à la main. Une carte qui revendique toujours le grain colonne se trompera de temps en temps, et elle ne dira jamais quelles fois c’était.
Lire une carte sans s’y noyer
Un graphe complet au niveau colonne d’un environnement réel est difficile à lire d’un coup. Des milliers de nœuds, ce n’est pas une carte. C’est une texture.
Le premier chargement montre l’ossature au niveau table. Cliquez sur une carte et seul le grain propre à cette carte s’ouvre : ses colonnes, et les champs qui en découlent. C’est un saut, pas toute la fermeture. La mise en page se réajuste ensuite, pour que ce qui s’est ouvert arrive dans le champ de vision.
Ce comportement est sorti de deux tours d’usage réel, dans les deux sens. Tout montrer a été essayé en premier, et c’était inutilisable. La réponse s’est révélée être une ouverture locale plutôt qu’un graphe plus petit : une idée différente, et une meilleure.
À quoi l’utiliser
Le travail d’impact avant un changement de schéma. Vous obtenez la vraie liste des tableaux de bord touchés, pas la liste large.
Remonter un chiffre jusqu’à sa source quand deux tableaux de bord divergent et que les deux auteurs sont sûrs d’eux.
Trouver quels tableaux de bord s’appuient sur une table dont personne ne veut admettre être le propriétaire.
Remettre à quelqu’un une carte autonome qu’il peut parcourir en cliquant, exportée en un seul fichier HTML. Elle fonctionne sans serveur et sans internet.
L’export vaut la peine d’être connu. Les conversations de gouvernance se tiennent avec des gens qui n’ont pas de compte et n’en auront pas. Un fichier qu’ils peuvent ouvrir vaut mieux qu’une invitation qu’ils n’accepteront pas.
Une couche sémantique donne à une métrique un seul foyer. Chaque outil qui calcule la métrique lit ce foyer unique. Tous obtiennent le même chiffre. Voici ce que cela signifie en pratique, et ce qui change quand vous exploitez plus d’un entrepôt.
Quatre choses se font appeler gouvernance : la certification, la propriété, le contenu obsolète et le contrôle des changements. Ici, chacune est écrite comme une vérification que vous pouvez lancer, pas comme un objectif que vous pouvez énoncer. Il y est aussi question du seul changement qui passe une revue visuelle et reste faux.
Une affirmation est une phrase. Une preuve est quelque chose qu’une seconde personne peut vérifier sans vous demander. Ce qu’une piste d’audit doit contenir, ce qu’un hachage prouve réellement, et ce qu’il faut exiger de tout outil qui prétend en produire une.