Traçabilité dans Unity Catalog

La traçabilité des données montre d’où proviennent les données dans Azure Databricks et où elles vont : quelles requêtes et quels fichiers alimentent une table, quels jobs et notebooks la transforment, et quels tableaux de bord consomment les résultats.

Unity Catalog capture automatiquement la traçabilité pour les requêtes exécutées sur Azure Databricks, jusqu’au niveau des colonnes, et les agrège dans tous les espaces de travail rattachés au metastore. La traçabilité dans Unity Catalog vous permet de :

  • Effectuer une analyse d’impact : avant de modifier ou de supprimer une table ou une colonne, identifiez les tables, travaux et tableaux de bord en aval qui en dépendent.
  • Examiner les causes racines : lorsqu’un rapport en aval affiche des résultats inattendus, tracez les sources en amont pour trouver où les données sont divergentes.
  • Suivre le flux de données sensibles : pour les audits de conformité, consultez l’origine des données réglementées, la façon dont elles sont transformées et les ressources en aval qui les consomment.
  • Comprendre les dépendances inter-équipes : découvrez quelles équipes sont responsables des sources en amont dont vous dépendez, ou quelles équipes consomment vos tables.

Quelle lignée capture des captures

En plus des tables, vues, colonnes, versions des modèles ML et chemins de fichiers, la traçabilité du catalogue Unity comprend :

  • Services de modèles et fournisseurs externes de modèles : Les services de modèles et les fournisseurs externes de modèles (services fournisseurs de modèles) que vous gérez via Unity Gateway, avec les modèles proposés par chaque service et la table d’inférence dans laquelle il enregistre ses inférences. Voir Suivre le service de modèle et la traçabilité des fournisseurs
  • Actifs externes : Sources en amont comme Salesforce ou MySQL et outils en aval comme Tableau ou Power BI que vous enregistrez comme actifs externes dans Unity Catalog. Voir traçabilité externe.
  • Fonctions définies par l’utilisateur (UDF) : Charges de travail et actifs de données utilisant une UDF. Consultez Voir la lignée de l’UDF.
  • Traçabilité des données via des tables temporaires : lorsqu’une table temporaire se trouve entre des tables permanentes, la traçabilité des données relie directement les tables permanentes. Voir Traçabilité à travers des tables temporaires.

L’image suivante est un exemple de graphique de traçabilité. Les nœuds peuvent représenter des tables et des vues, des versions de modèle ML, des ressources externes et des chemins d’accès aux fichiers.

Vue d’ensemble de la traçabilité.

Spécifications

Pour capturer la traçabilité des données à l’aide du catalogue Unity :

  • Les tables doivent être enregistrées dans un metastore Unity Catalog.
  • Les ressources externes (celles qui ne sont pas inscrites dans le metastore du catalogue Unity) doivent être ajoutées en tant qu’objets de métadonnées externes dans Unity Catalog, configurées pour avoir des relations avec d’autres objets sécurisables inscrits dans votre metastore Unity Catalog. Voir traçabilité externe.
  • Les requêtes doivent utiliser le DataFrame Spark (par exemple, les fonctions Spark SQL qui retournent un DataFrame) ou des interfaces DATAbricks SQL telles que les notebooks ou l’éditeur de requête SQL.

Pour afficher la lignée des données :

  • Vous devez disposer au moins du privilège BROWSE sur le catalogue parent de la table ou de la vue. Le catalogue parent doit également être accessible à partir de l’espace de travail. Consultez la liaison catalogue-espace de travail.
  • Pour les blocs-notes, les travaux ou les tableaux de bord, vous devez disposer d’autorisations sur ces objets, comme défini par les paramètres de contrôle d’accès dans l’espace de travail. Pour plus d’informations, consultez Autorisations.
  • Pour un pipeline avec Unity Catalog, vous devez disposer des autorisations CAN VIEW sur le pipeline.

Voici les exigences de calcul à respecter :

  • Le suivi de la traçabilité de la diffusion en continu entre des tables Delta nécessite Databricks Runtime 11.3 LTS ou version ultérieure.
  • Le suivi du lignage des colonnes pour les workloads de pipelines Lakeflow nécessite Databricks Runtime 13.3 LTS ou une version ultérieure.

Configuration réseau requise :

Voir le lignage dans Catalog Explorer

Pour utiliser l’Explorateur de catalogues et voir le lignage des tables :

  1. Dans votre espace de travail Azure Databricks, cliquez sur Data icon.Catalog.

  2. Recherchez votre table ou parcourez-la.

  3. Sélectionnez l’onglet Traçabilité . Le panneau de traçabilité s’affiche et affiche les tables associées.

  4. Pour afficher un graphique interactif de la traçabilité des données, cliquez sur Afficher le graphique de traçabilité.

    Par défaut, un niveau est affiché dans le graphique. Cliquez sur l’icône Icône de signe Plus d’un nœud pour afficher davantage de connexions si elles sont disponibles.

  5. Cliquez sur l’icône d’une arête de connexion dans le graphe de traçabilité pour ouvrir le panneau Détails de traçabilité.

    Le panneau Détails de lignage affiche des détails sur la connexion, notamment les tables source et cible.

    Graphique de traçabilité

  6. Pour afficher une ressource associée à une table, sélectionnez la ressource dans le panneau Détails de lignage. Vous pouvez filtrer par carnets, tâches, pipelines et requêtes.

  7. Pour afficher la traçabilité au niveau des colonnes, cliquez sur une colonne dans le graphique pour afficher des liens vers des colonnes associées. Par exemple, le fait de cliquer sur la revenue colonne de cet exemple de graphique montre les colonnes en amont à partir de lesquelles la colonne a été dérivée :

    Lignée complète des colonnes du menu.

Voir la lignée du service modèle et des fournisseurs

Pour voir la lignée d’un service modèle ou d’un fournisseur de modèles externe (service fournisseur modèle), ouvrez son onglet Lignée dans l’Explorateur de catalogue. Pour plus de détails, voir Suivre le service de modèle et la traçabilité des fournisseurs.

Afficher la traçabilité du travail

Pour afficher la traçabilité des travaux, accédez à l’onglet Traçabilité d’une table, sélectionnez Travaux, puis sélectionnez En aval. Le nom du travail apparaît sous Nom du travail comme consommateur de la table.

Afficher la traçabilité du tableau de bord

Pour afficher la traçabilité du tableau de bord, accédez à l’onglet Traçabilité d’un tableau, puis cliquez sur Tableaux de bord. Le tableau de bord apparaît sous Nom du tableau de bord comme consommateur de la table.

Voir le lignage d’UDF

Utilisez la lignée UDF pour suivre où une fonction définie par l’utilisateur (UDF) dans le catalogue Unity est utilisée, afin que vous puissiez évaluer l’impact de la modification d’une UDF partagée avant d’effectuer des modifications. La lignée UDF suit les charges de travail qui invoquent une UDF, telles que les jobs, pipelines, notebooks ou requêtes SQL, ainsi que les données qui font référence à la UDF dans leur définition. Unity Catalog capture le lignage des UDF SQL, Python et Scala.

Pour consulter la traçabilité d’une fonction définie par l’utilisateur :

  1. Dans votre espace de travail Azure Databricks, cliquez sur Data icon.Catalog.
  2. Recherchez la fonction ou parcourez les fonctions.
  3. Sélectionnez l’onglet Lignée . L’onglet liste les éléments connectés à la UDF, ainsi que la Direction, le Type et la Dernière activité de chaque actif.

L’exemple suivant montre l’onglet Lignée pour la udf_demo.default.normalize_email UDF. Les ressources en aval incluent la customer_profiles_view table, les requêtes et carnets qui appellent la fonction, ainsi que la tâche qui l’exécute.

L’onglet Traçabilité pour une fonction définie par l’utilisateur dans Catalog Explorer

Les UDF utilisés pour transformer des données entre des tables ou des vues sont également représentés dans le graphe de lignage. Dans l’exemple suivant, le panneau Détails du lignage pour le lien entre la table customers et la vue customer_profiles_view affiche la normalize_email UDF qui transforme les données :

Une UDF affichée dans le panneau Détails de lignage du graphe de lignage.

La lignée UDF présente les limitations suivantes, en plus des limitations générales de la lignée des données :

  • Le catalogue Unity capture la lignée UDF au niveau de la table. La traçabilité d’une fonction définie par l’utilisateur au niveau de la colonne n’est pas capturée.
  • Les UDF SQL ne sont pas détectées dans les instructions INSERT, UPDATE et MERGE.
  • La lignée n’est pas capturée pour les tables ou fonctions référencées à l’intérieur d’un corps UDF.
  • Les fonctions à valeurs de table, les fonctions ML et les fonctions de spécification de caractéristiques ne sont pas capturées dans la lignée.
  • Vous ne pouvez pas interroger la lignée UDF en utilisant les tables du système de lignées.

Obtenez la traçabilité à l’aide de code Genie

Genie Code peut répondre aux questions de traçabilité en langage naturel.

Pour obtenir des informations de traçabilité à l’aide de Genie Code :

  1. Dans la barre latérale de l’espace de travail, cliquez sur l’icône Données.Catalogue.
  2. Parcourez ou recherchez le catalogue, cliquez sur le nom du catalogue, puis cliquez sur l’icône de couleur de code Genie. Icône Génie Code dans le coin supérieur droit.
  3. À l’invite de commande de Genie Code, tapez :
    • /getTableLineages pour afficher les dépendances en amont et en aval.
    • /getTableInsights pour accéder aux insights pilotés par les métadonnées, tels que l’activité utilisateur et les modèles de requête.

Ces requêtes permettent à Genie Code de répondre à des questions telles que « montre-moi les lignées en aval » ou « qui interroge le plus souvent cette table ».

Code Genie fournit la traçabilité et des informations relatives à la table.

Traçabilité des requêtes avec les tables système

Vous pouvez utiliser les tables système de traçabilité pour interroger les données de traçabilité de manière programmatique. Pour obtenir des instructions détaillées, consultez les Références sur les tables système et les Références de tables système de traçabilité.

Note

La lignée pour les UDF du catalogue Unity n’est pas disponible dans les tables du système de lignée. Consultez Voir la lignée de l’UDF.

Traçabilité par tables temporaires

Azure Databricks fournit des tables temporaires pour le stockage intermédiaire de résultats dans les flux de travail SQL. Les tables temporaires n’existent qu’au sein d’une session et n’ajoutent pas d’objets à votre catalogue.

Les tables temporaires n’apparaissent pas dans Lineage. Lorsqu’une table temporaire se situe entre des tables permanentes, la lignée relie directement les tables permanentes en amont à la table permanente en aval, à la fois au niveau de la table et de la colonne. Cette connexion apparaît dans Catalog Explorer et dans les tables du système de lignées. Elle reste après la suppression ou l’expiration de la table temporaire.

La traçabilité passe par des tables temporaires écrites avec CREATE TEMP TABLE ... AS SELECT, CREATE OR REPLACE TEMP TABLE ... AS SELECT, REPLACE TEMP TABLE ... AS SELECT, INSERT INTO et INSERT OVERWRITE. TEMPORARY et TEMP sont interchangeables. Les chaînes de tables temporaires, de vues temporaires et d’expressions de table courantes (CTE) renvoient également à leurs sources permanentes.

les écritures UPDATE, DELETE et MERGE INTO ne modifient pas la lignée d’une table temporaire. Consultez Limitations. Si vous utilisez une table permanente comme table de staging, elle apparaît dans Lineage comme un nœud à part entière.

Dans l’exemple suivant, la généalogie indique que prod.sales.orders_2025 et prod.sales.orders_2026 sont en amont de prod.reports.all_orders.

-- Stage rows from two permanent tables in a temporary table
CREATE TEMP TABLE temp_orders AS
SELECT order_id, customer_id, amount FROM prod.sales.orders_2025;

INSERT INTO temp_orders
SELECT order_id, customer_id, amount FROM prod.sales.orders_2026;

-- Write a permanent table from the temporary table
CREATE TABLE prod.reports.all_orders AS
SELECT order_id, customer_id, amount FROM temp_orders;

-- Upstream tables are the permanent sources, not temp_orders
SELECT DISTINCT source_table_full_name
FROM system.access.table_lineage
WHERE target_table_full_name = 'prod.reports.all_orders';

Permissions

Les graphiques de traçabilité partagent le même modèle d’autorisation que Unity Catalog. Les tables et autres objets de données inscrits dans le metastore Du catalogue Unity sont visibles uniquement par les utilisateurs disposant d’au moins BROWSE des autorisations sur ces objets. Si un utilisateur n’a pas le privilège BROWSE ou SELECT sur une table, il ne peut pas explorer sa traçabilité.

La traçabilité est agrégée sur tous les espaces de travail attachés au metastore Unity Catalog. Par conséquent, la traçabilité capturée dans un espace de travail est visible dans tout autre espace de travail qui partage ce metastore, tant que l’utilisateur dispose d’autorisations d’objet adéquates. Des informations détaillées sur les objets au niveau de l’espace de travail, tels que les blocs-notes et les tableaux de bord d’autres espaces de travail, sont masqués. Consultez Limitations.

Par exemple, exécutez les commandes suivantes pour userA:

GRANT USE SCHEMA on lineage_data.lineagedemo to `userA@company.com`;
GRANT SELECT on lineage_data.lineagedemo.menu to `userA@company.com`;

Lorsque userA affichent le graphique de traçabilité de la table lineage_data.lineagedemo.menu, ils voient la table menu. Ils ne peuvent pas voir d’informations sur les tables associées, telles que la table en aval lineage_data.lineagedemo.dinner . La dinner table apparaît comme un nœud masked pour userA, et userA ne peut pas étendre le graphe pour révéler les tables en aval à partir de tables auxquelles ils n’ont pas l’autorisation d’accéder.

Si vous exécutez la commande suivante pour accorder l’autorisation BROWSE à userB, cet utilisateur peut afficher le graphique de traçabilité pour n’importe quelle table du lineage_data schéma :

GRANT BROWSE on lineage_data to `userB@company.com`;

Les utilisateurs de Lineage doivent également disposer d’autorisations spécifiques pour afficher des objets de l’espace de travail tels que des notebooks, des tâches et des tableaux de bord. Les informations détaillées sur ces objets sont visibles uniquement dans l’espace de travail où ils ont été créés.

Pour plus d’informations sur la gestion de l’accès aux objets sécurisables dans Unity Catalog, consultez Gérer les privilèges dans Unity Catalog. Pour plus d’informations sur la gestion de l’accès aux objets de l’espace de travail comme les notebooks, les travaux et les tableaux de bord, consultez Listes de contrôle d’accès.

Retention

Les données de lignage affichées dans l’Explorateur de catalogue sont conservées indéfiniment. Toutes les données de traçabilité capturées après le 1er septembre 2024 sont disponibles. Pour les metastores créés après cette date, Catalog Explorer inclut une option Toutes les périodes dans la liste déroulante d'intervalle de temps de la traçabilité. Pour les metastores plus anciens, la liste déroulante inclut une option Toutes les options disponibles qui commencent à partir du 1er septembre 2024. La sélection par défaut est de 1 an.

Les tables système de traçabilité (system.access.table_lineage et system.access.column_lineage) conservent une fenêtre de données dynamique d'une durée de un an. Consultez Références de tables système de traçabilité.

Limitations

La traçabilité des données présente les limitations suivantes. Ces limitations s’appliquent également aux tables de système de lignage :

  • Les données de traçabilité capturées avant le 1er septembre 2024 ne sont pas disponibles.
  • Les travaux qui utilisent la demande de l'API runs submit Jobs ou le type de tâche spark submit ne sont pas disponibles dans les vues de lignage. La traçabilité au niveau des tables et des colonnes est toujours capturée pour ces workflows, mais le lien vers l’exécution du travail n’est pas capturé.
  • La traçabilité n’est pas conservée pour les catalogues renommés, les schémas, les tables, les vues ou les colonnes.
  • Si vous utilisez des points de contrôle de jeu de données Spark SQL, la traçabilité n’est pas capturée.
  • Unity Catalog capture les informations de traçabilité des pipelines Lakeflow dans la plupart des cas, mais la couverture est incomplète pour les pipelines qui utilisent des PRIVATE tables.
  • Les jeux de données distribués résilients (RDD) ne sont pas capturés dans la traçabilité.
  • Les vues temporaires globales ne sont pas capturées dans la traçabilité.
  • La traçabilité via une table temporaire n’inclut pas les modifications apportées par UPDATE, DELETE ou MERGE INTO. Par exemple, après MERGE INTO temp_orders USING prod.sales.returns ..., une table permanente écrite depuis temp_orders n’apparaît pas prod.sales.returns comme source amont.
  • Les transactions émettent la traçabilité lorsque chaque lecture et écriture ont lieu. Les événements de lignée persistent même si la transaction est annulée.
  • Les tables sous system.information_schema ne sont pas capturées dans la traçabilité.
  • Unity Catalog capture autant que possible la traçabilité au niveau des colonnes. Cependant, dans certains cas, la traçabilité au niveau des colonnes ne peut pas être capturée. Voici quelques-uns des éléments suivants :
    • Si la source ou la cible est référencée comme un chemin (Exemple : select * from delta."s3://<bucket>/<path>"), l’Explorateur de catalogue et l’API de traçabilité n’affichent pas la traçabilité des colonnes. Ils montrent la lignée des colonnes uniquement lorsque la source et la cible sont référencées par le nom du tableau (Exemple : select * from <catalog>.<schema>.<table>). La table système system.access.column_lineage enregistre la traçabilité des colonnes pour les références de chemin, avec le chemin dans source_path ou target_path à la place d’un nom de table. Pour interroger ces enregistrements, voir Résolution de problèmes des requêtes dans les tables externes.

    • L’utilisation de fonctions définies par l’utilisateur (UDF) peut masquer la correspondance entre les colonnes source et cible. Unity Catalog capture la lignée au niveau de la table pour les UDF, mais pas la lignée au niveau de la colonne. Consultez Voir la lignée de l’UDF.

Ressources additionnelles