Aller au contenu principal

Lignage dans Unity Catalog

La data lineage montre d'où proviennent les données dans Databricks et où elles vont : quelles query et quels fichiers peuplent une table, quels Jobs et Notebook transforment les données, et quels tableaux de bord consomment les résultats.

Unity Catalog capture automatiquement la traçabilité pour les queries exécutées sur Databricks, jusqu'au niveau des colonnes, et l'agrège sur tous les workspaces attachés au metastore. La traçabilité dans Unity Catalog vous permet de :

  • Effectuez une analyse d'impact : avant de modifier ou de supprimer une table ou une colonne, identifiez les tables en aval, les Jobs et les tableaux de bord qui en dépendent.
  • Enquêter sur les causes principales : lorsqu’un rapport en aval affiche des résultats inattendus, identifiez les sources en amont pour trouver où les données ont divergé.
  • Suivi du flux de données sensibles : Pour les audits de conformité, sachez où les données réglementées sont générées, comment elles sont transformées et quels assets en aval les consomment.
  • Comprendre les dépendances inter-équipes : découvrez quelles équipes possèdent les sources en amont dont vous dépendez, ou quelles équipes consomment vos tables.

La traçabilité externe étend le graphe de traçabilité au-delà de Databricks. Enregistrez des sources en amont comme Salesforce ou MySQL et des outils en aval comme Tableau ou Power BI en tant qu'assets externes dans Unity Catalog, et ils apparaissent à côté de vos tables Unity Catalog dans un seul graphe. Voir Traçabilité externe.

L'image suivante est un exemple de Graphe de lignage. Les nœuds peuvent représenter des tables et des vues, des versions de modèles ML, des assets externes et des chemins de fichiers.

Vue d'ensemble de la traçabilité.

Exigences

Pour capturer le data lineage à l’aide de Unity Catalog :

  • Les tables doivent être enregistrées dans un métastore Unity Catalog.
  • Les assets externes (ceux non enregistrés dans le métastore Unity Catalog) doivent être ajoutés en tant qu' objets de métadonnées externes dans Unity Catalog, configurés pour avoir des relations avec d'autres objets sécurisables enregistrés dans votre métastore Unity Catalog. Consultez la traçabilité externe.
  • Les query doivent utiliser le Spark DataFrame (par exemple, les fonctions Spark SQL qui renvoient un DataFrame) ou les interfaces Databricks SQL telles que les Notebooks ou l'éditeur de query SQL.

Pour afficher la data lineage :

  • Vous devez disposer d'au moins du privilège BROWSE sur le catalogue parent de la table ou de la vue. Le catalogue parent doit également être accessible depuis le workspace. Consulter la liaison workspace-catalogue.
  • Pour les Notebooks, Jobs ou tableaux de bord, vous devez disposer des autorisations sur ces objets, telles que définies par les paramètres de contrôle d'accès dans le Workspace. Pour plus de détails, consultez Autorisations.
  • Pour un pipeline compatible Unity Catalog, vous devez disposer de l'autorisation CAN VIEW sur le pipeline.

Compute requis :

  • Le suivi de la lignée du streaming entre les tables Delta nécessite Databricks Runtime 11.3 LTS ou une version supérieure.
  • Le suivi de la lignée des colonnes pour les charges de travail LakeFlow Pipelines nécessite Databricks Runtime 13,3 LTS ou une version ultérieure.

Exigences réseau :

Afficher la traçabilité dans l'Explorateur de catalogues

Pour utiliser l'Explorateur de catalogues afin d'afficher la traçabilité des tables :

  1. Dans votre workspace Databricks, cliquez sur Icône de données. Catalogue .

  2. Recherchez ou parcourez votre table.

  3. Sélectionnez l'onglet Traçabilité . Le panneau de traçabilité apparaît et affiche les tables associées.

  4. Pour afficher un graphe interactif de la data lineage, cliquez sur Voir le graphe de traçabilité .

    Par défaut, un niveau est affiché dans le Graphe. Cliquez sur l'icône Icône du signe Plus sur un nœud pour révéler plus de connexions si elles sont disponibles.

  5. Cliquez sur l'icône sur 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 les détails de la connexion, y compris les tables source et cible.

    Graphe de traçabilité.

  6. Pour afficher un asset associé à une table, sélectionnez l'asset dans le panneau Détails de la lignée . Vous pouvez filtrer par Notebooks, Jobs, pipelines et queries.

  7. Pour afficher la lignée au niveau de la colonne, cliquez sur une colonne dans le graphe pour afficher les liens vers les colonnes connexes. Par exemple, cliquer sur la colonne revenue dans ce graphe d'exemple affiche les colonnes en amont dont la colonne a été dérivée :

    Menu complet de traçabilité des colonnes.

Afficher la traçabilité des jobs

Pour afficher la traçabilité des Jobs, accédez à la **tab** **Traçabilité** d'une table, sélectionnez **Jobs**, puis sélectionnez **Downstream**. Le nom du job apparaît sous Job Name en tant que consommateur de la table.

Afficher la traçabilité du tableau de bord

Pour afficher la traçabilité du tableau de bord, accédez au tab Traçabilité d'une table et cliquez sur Tableaux de bord. Le tableau de bord apparaît sous Nom du tableau de bord en tant que consommateur de la table.

Obtenir la lignée à l'aide de Genie Code

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

Pour obtenir des informations de lignage à l'aide de Genie Code :

  1. Dans la barre latérale du workspace, cliquez sur Icône de données. Catalogue .
  2. Parcourez ou recherchez le catalogue, cliquez sur le nom du catalogue, puis cliquez sur l'icône Icône de couleur de code Genie. Genie Code dans le coin supérieur droit.
  3. Dans l'invite Genie Code, tapez :
    • /getTableLineages pour afficher les dépendances en amont et en aval.
    • /getTableInsights pour accéder à des insights basés sur les métadonnées, tels que l'activité des utilisateurs et les modèles de query.

Ces queries permettent à Genie Code de répondre à des questions comme « montrez-moi les lignées en aval » ou « qui query cette table le plus souvent ».

Genie Code fournit la traçabilité des tables et des insights.

Query de lignage avec les tables système

Vous pouvez utiliser les tables du système de traçabilité pour query par programme les données de traçabilité. Pour des instructions détaillées, consultez la référence des tables système et la référence des tables système de traçabilité.

Autorisations

Les graphes de lineage partagent le même modèle d'autorisations que Unity Catalog. Les tables et autres objets de données enregistrés dans le métastore Unity Catalog ne sont visibles que par les utilisateurs qui disposent d'au moins BROWSE autorisations sur ces objets. Si un utilisateur ne dispose pas du privilège BROWSE ou SELECT sur une table, il ne peut pas explorer son lineage.

La traçabilité est agrégée sur tous les Workspace attachés à un métastore Unity Catalog. Ainsi, la traçabilité capturée dans un Workspace est visible dans tout autre Workspace partageant ce métastore, à condition que l'utilisateur dispose des autorisations d'objet adéquates. Les informations détaillées sur les objets au niveau du workspace, tels que les notebooks et les tableaux de bord dans d'autres workspaces, sont masquées. Consultez les Limitations.

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

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

Lorsque userA consulte le graphe de traçabilité de la table lineage_data.lineagedemo.menu, il/elle voit 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 table dinner apparaît comme un nœud masked pour userA, et userA ne peut pas développer le graphe pour révéler les tables en aval à partir de tables auxquelles il n'a pas accès.

Si vous exécutez la commande suivante pour accorder la permission BROWSE à userB, cet utilisateur peut afficher le Graphe de lignage de n’importe quelle table dans le schéma lineage_data :

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

Les utilisateurs de lignage doivent également avoir des autorisations spécifiques pour afficher les objets de Workspace tels que les notebooks, les Jobs et les tableaux de bord. Les informations détaillées concernant ces objets ne sont visibles que dans le Workspace où ils ont été créés.

Pour plus d'informations sur la gestion de l'accès aux objets sécurisables dans Unity Catalog, veuillez consulter Gérer les privilèges dans Unity Catalog. Pour plus d'information sur la gestion de l'accès aux objets du Workspace tels que les Notebooks, les Jobs et les tableaux de bord, consultez Listes de contrôle d'accès.

Rétention

Les données de traçabilité affichées dans l'Explorateur de catalogues 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, l'Explorateur de catalogues inclut une option **Toutes les périodes** dans le menu déroulant de la plage horaire de traçabilité. Pour les metastores plus anciens, le menu déroulant inclut une option Tout disponible qui start à partir du 1er septembre 2024. La sélection default est **1 an**.

Les tables système de traçabilité (system.access.table_lineage et system.access.column_lineage) conservent un historique de données glissant d'un an. Voir Référence des tables système de traçabilité.

Limitations

data lineage présente les limitations suivantes. Ces limitations s'appliquent également aux tables système de traçabilité :

  • Les données de traçabilité capturées avant le 1er septembre 2024 ne sont pas disponibles.
  • Les jobs qui utilisent la requête runs submit de l'API Jobs ou le type de tâche spark submit ne sont pas disponibles dans les vues de traçabilité. La traçabilité au niveau des tables et des colonnes est toujours capturée pour ces workflows, mais le Link vers l'exécution du Job n'est pas capturé.
  • La lignée n'est pas préservée pour les catalogues, les schémas, les tables, les vues ou les colonnes renommés.
  • Si vous utilisez le checkpointing de dataset Spark SQL, la traçabilité n'est pas capturée.
  • Unity Catalog capture la lignée des Lakeflow Pipelines dans la plupart des cas, mais la couverture est incomplète pour les pipelines qui utilisent des tables PRIVATE.
  • Les Resilient Distributed Datasets (RDD) ne sont pas capturés dans la lignée.
  • Les vues temporaires globales ne sont pas capturées dans la traçabilité.
  • Les Transactions émettent la traçabilité à chaque lecture et écriture. Les événements de traçabilité 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 la traçabilité au niveau des colonnes autant que possible. Cependant, il existe certains cas où la traçabilité au niveau des colonnes ne peut pas être capturée. Celles-ci incluent :
    • La traçabilité des colonnes ne peut pas être capturée si la source ou la cible est référencée comme chemin (Exemple : select * from delta."s3://<bucket>/<path>"). La traçabilité des colonnes n'est prise en charge que lorsque la source et la cible sont référencées par le nom de la table (Exemple : select * from <catalog>.<schema>.<table>).

    • L'utilisation de fonctions définies par l'utilisateur (UDF), qui peut masquer le mappage entre les colonnes source et cible.

Ressources supplémentaires