Ce qu’est une couche sémantique, et ce que définir une fois veut vraiment dire
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.
Deux personnes ouvrent deux tableaux de bord. Les deux portent l’étiquette Revenu net. Les deux chiffres diffèrent de quatre pour cent. Les deux tiennent, parce que chacun a été calculé ailleurs. L’un vient d’un calcul de classeur. L’autre vient d’une vue dans l’entrepôt, et aucun des deux ne sait que l’autre existe.
Ce n’est généralement pas un problème de données. L’entrepôt va bien. L’ennui est ailleurs. La définition du Revenu net vit à plus d’un endroit, donc il y en a plus d’une.
Une couche sémantique corrige cette seule défaillance. Elle donne à une métrique un foyer unique. Les autres lisent alors la métrique au lieu de la réécrire.
Ce qu’est une couche sémantique
Une couche sémantique est une description gouvernée de vos données. Elle se place entre les tables physiques et les personnes qui posent des questions. Elle contient trois sortes de choses.
Des entités. Les objets métier dont vous parlez : client, commande, police, sinistre.
Des dimensions. Les façons de les découper : région, ligne de produits, mois, canal.
Des mesures. Les chiffres, chacun portant l’expression exacte qui le produit.
L’expression est la partie qui compte. Nommer un champ Revenu net ne crée pas une couche sémantique ; il devient une mesure que la couche peut utiliser une fois qu’elle enregistre son agrégation, ses filtres et son grain. Ces trois éléments sont ensuite publiés et appliqués.
Une couche sémantique est un contrat, pas une copie de vos données. Elle ne stocke aucune ligne. Elle stocke leur sens convenu, et pointe vers les tables qui les portent.
Ce que définir une fois veut dire
Une fois signifie que l’expression se trouve à exactement un endroit. Chaque outil qui a besoin de la métrique la lit à partir de là.
Une personne définit la mesure dans l’entrepôt, avec son expression, son grain et ses filtres.
La définition est publiée comme un objet gouverné. La plateforme elle-même la comprend. Ce n’est pas un document sur la plateforme.
Chaque question nommant cette mesure reçoit sa réponse par l’exécution de la définition stockée.
Un changement de la définition change chaque réponse, en une seule modification, sous une seule revue.
Le test est brutal. Changez la définition du Revenu net à un endroit. Si chaque tableau de bord, chaque notebook et chaque assistant suit, la métrique est définie une fois. Si d’autres copies doivent être retrouvées et modifiées, elle n’a jamais été définie une fois.
La même idée, quatre noms
Les quatre grandes plateformes livrent désormais toutes ceci. Chacune l’appelle d’un nom différent. Les mots comptent plus qu’ils ne devraient. Une équipe entrepôt connaît son propre objet sous son propre nom, et le mauvais mot rend cette conversation plus difficile qu’elle ne doit l’être.
Salesforce Data 360
Un modèle sémantique, enregistré dans Data 360. La surface de questions qu’il alimente est Tableau Semantics.
Snowflake
Une semantic view, cataloguée dans Horizon Catalog. La surface de questions qu’elle alimente est Cortex Analyst.
Databricks
Une metric view, cataloguée dans Unity Catalog. La surface de questions qu’elle alimente est Genie.
Palantir AIP
Une ontologie, publiée dans Foundry. Les types d’objets portent les entités et leurs dimensions, et une Function est l’endroit où une mesure est déclarée.
Quatre noms, une forme. Chacun est un objet nommé contenant des entités, des dimensions et des mesures. Chacun vit dans le catalogue de sa propre plateforme, si bien que les outils de la plateforme le respectent. Foundry est celle qui ne nommera pas une mesure pour vous. Quand quelqu’un dit que son entreprise a une couche sémantique, c’est cet objet qu’il désigne. Demander lequel des quatre a été construit vous y mène plus vite que demander ce qu’il contient.
Une note tirée de l’usage réel, apprise en sondant un compte Snowflake réel. Les dimensions doivent y être qualifiées par leur entité. Le même nom de dimension est souvent défini sur deux entités à des grains différents, et un nom nu pourrait désigner l’un ou l’autre. Snowflake le refuse comme ambigu. C’est le bon comportement, et cela fait un début déroutant.
Exploiter plus d’un entrepôt
À l’intérieur d’une plateforme, définir une fois est une phrase courte à dire. La plupart des entreprises d’une certaine taille exploitent au moins deux plateformes. Cela ne va pas changer.
La même table logique se retrouve alors définie deux fois, une fois par plateforme, par deux équipes sous deux processus de revue. Les deux définitions sont gouvernées. Les deux peuvent encore dériver. Rien dans l’une ou l’autre plateforme ne surveille l’autre.
Le TabTotal de Boreon lit les catalogues dans un seul modèle d’objets. Le même schéma et la même table peuvent apparaître à plusieurs endroits. Ils atterrissent comme un seul objet qui se souvient de chaque source d’où il vient, pas comme des objets séparés sans lien. Chaque paire d’entrepôts connectés est ensuite comparée, et là où deux structures divergent, l’écart est consigné comme un constat de gouvernance nommant cette paire. Vous le lisez dans un rapport, pas en réunion.
Cette comparaison lit ce que les catalogues déclarent. Une question n’est jamais posée à plusieurs entrepôts pour voir si leurs réponses concordent : une requête nommant des champs de plus d’un entrepôt est refusée, pas routée, parce qu’il n’y a aucun moteur sous les deux à la fois.
Ce dont elle hérite
Une couche sémantique qui vous demande de ressaisir votre catalogue devient un second catalogue. Les seconds catalogues deviennent obsolètes. La première synchronisation lit ce qui existe déjà : tables, colonnes, commentaires, étiquettes, clés et droits. Les conventions de nommage s’y ajoutent, et ne sont jamais exigées. Un entrepôt qui ne correspond à aucun des motifs attendus arrive quand même en entier.
Le nom de la couche vient du libellé qualifié de l’objet lui-même. Un commentaire sur l’objet ne le décide pas. Une table dans meta est dans la couche meta. Une table dans gold est dans gold. La liste des noms de couches est ouverte. Un nom que personne n’a appris à l’outil atterrit quand même correctement. Une liste fermée le réduirait à inconnu, avec toutes les autres conventions qu’elle n’avait pas rencontrées.
Là où un commentaire déclaré et le libellé de l’objet divergent, les deux sont conservés, et l’écart est lui-même un constat. Reprendre votre propre taxonomie et repérer quand elle se contredit, c’est le même travail.
Pourquoi le contrat est appliqué
Une définition publiée que rien ne vérifie est un document. La valeur apparaît à un moment précis. Une requête nomme une mesure. La définition stockée est vérifiée avant que cette requête s’exécute.
Dans ce produit, les noms qui atteignent l’entrepôt sont les propres copies du contrat. Un nom hors du contrat n’a aucun chemin de code vers un entrepôt. La requête revient en nommant ce qui était hors contrat. Le résultat est aussi plafonné en lignes.
Cette propriété est construite dans le code, pas écrite dans une instruction. Une instruction à un modèle peut être ignorée. Un chemin de code qui n’existe pas ne peut pas être persuadé. L’effet pour qui exploite le site est étroit et utile. À travers ce produit, une mesure gouvernée n’a qu’une seule façon d’être calculée, et c’est la façon officielle.
Où regarder
La console sémantique montre ce qui a été synchronisé, par entrepôt, avec des compteurs et des pastilles de parité.
La console des intégrations montre quel identifiant chaque connexion a utilisé, avec l’hôte, le rôle et l’entrepôt. Le secret lui-même n’apparaît jamais.
La fiche de champ porte neuf attributs par champ, dont le propriétaire, le steward et la classification. Vous voyez ce qui est documenté et ce qui ne l’est pas.
Une première synchronisation signale souvent des propriétaires en majorité inconnus. L’outil fonctionne. Ce que vous voyez, c’est la part de votre catalogue documentée aujourd’hui, montrée telle quelle. Une couche vide obtient zéro. Zéro est le seul point de départ qui vaille.
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 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.
La règle approuver pour exécuter, en mots simples. L’assistant lit, explique et propose, et une personne possède le chemin d’écriture. Ce que cela coûte, ce que cela rapporte, et trois questions à poser à toute fonctionnalité d’IA.