Aller au contenu principal

Capturer et afficher le data lineage avec Unity Catalog

Cet article décrit comment capturer et visualiser le data lineage à l'aide de Catalog Explorer.

Vous pouvez utiliser Unity Catalog pour capturer la data lineage des requêtes exécutées sur SAP Databricks. La traçabilité est prise en charge pour toutes les langues et est capturée jusqu'au niveau de la colonne. Les données de traçabilité incluent des Notebooks liés à la query. La traçabilité peut être visualisée dans l'Explorateur de catalogues en temps quasi réel.

La traçabilité est agrégée dans tous les Workspace attachés à un métastore Unity Catalog. Cela signifie que la traçabilité capturée dans un Workspace est visible dans tout autre Workspace partageant ce métastore. Plus précisément, les tables et autres objets de données enregistrés dans le métastore sont visibles par les utilisateurs qui disposent d'au moins BROWSE autorisations sur ces objets, dans tous les Workspaces attachés au métastore. Cependant, les informations détaillées concernant les objets au niveau du Workspace, comme les Notebooks dans d'autres Workspaces, sont masquées.

Les données de traçabilité sont conservées pendant un an.

Exigences

Les éléments suivants sont nécessaires pour capturer le data lineage à l'aide de Unity Catalog :

  • Le workspace doit être compatible avec Unity Catalog.
  • Les tables doivent être enregistrées dans un métastore Unity Catalog.
  • Les requêtes doivent utiliser le DataFrame Spark (par exemple, les fonctions Spark SQL qui renvoient un DataFrame) ou les interfaces Databricks SQL.
  • Pour afficher la traçabilité d'une table ou d'une vue, les utilisateurs doivent disposer d'au moins le privilège BROWSE sur le catalogue parent de la table ou de la vue. Le catalogue parent doit également être accessible depuis le workspace.
  • Pour afficher les informations de lignage des Notebooks, les utilisateurs doivent avoir des autorisations sur ces objets, telles que définies par les paramètres de contrôle d'accès dans le Workspace.

Exemples

remarque
  • Les exemples suivants utilisent le nom de catalogue lineage_data et le nom de schéma lineagedemo. Pour utiliser un catalogue et un schéma différents, modifiez les noms utilisés dans les exemples.

  • Pour cet exemple, vous devez disposer des privilèges CREATE et USE SCHEMA sur un schéma. Un administrateur de métastore, un propriétaire de catalogue, un propriétaire de schéma ou un utilisateur disposant du privilège MANAGE sur le schéma peut accorder ces privilèges. Par exemple, pour donner à tous les utilisateurs du groupe 'data_engineers' la permission de créer des tables dans le schéma lineagedemo du catalogue lineage_data, un utilisateur disposant de l'un des privilèges ou rôles ci-dessus peut exécuter les requêtes suivantes :

    SQL
    CREATE SCHEMA lineage_data.lineagedemo;
    GRANT USE SCHEMA, CREATE on SCHEMA lineage_data.lineagedemo to `data_engineers`;

Capturer et explorer la traçabilité

Pour capturer les données de traçabilité :

  1. Accédez à votre landing page SAP Databricks, cliquez sur Nouvelle icône Nouveau dans la barre latérale, puis sélectionnez Notebook dans le menu.

  2. Saisissez un nom pour le Notebook et sélectionnez SQL dans default Language .

  3. Cliquez sur Créer .

  4. Dans la première cellule de Notebook, saisissez les query suivantes :

    SQL
    CREATE TABLE IF NOT EXISTS
    lineage_data.lineagedemo.menu (
    recipe_id INT,
    app string,
    main string,
    dessert string
    );

    INSERT INTO lineage_data.lineagedemo.menu
    (recipe_id, app, main, dessert)
    VALUES
    (1,"Ceviche", "Tacos", "Flan"),
    (2,"Tomato Soup", "Souffle", "Creme Brulee"),
    (3,"Chips","Grilled Cheese","Cheesecake");

    CREATE TABLE
    lineage_data.lineagedemo.dinner
    AS SELECT
    recipe_id, concat(app," + ", main," + ",dessert)
    AS
    full_menu
    FROM
    lineage_data.lineagedemo.menu
  5. Pour exécuter les requêtes, cliquez dans la cellule et appuyez sur Maj+Entrée ou cliquez sur Menu Exécuter et sélectionnez Exécuter la cellule .

Pour utiliser l'Explorateur de catalogues pour afficher la traçabilité générée par ces requêtes :

  1. Dans la zone de recherche de la barre supérieure du workspace SAP Databricks, recherchez la table lineage_data.lineagedemo.dinner et sélectionnez-la.

  2. Sélectionnez l'onglet Traçabilité . Le panneau de traçabilité apparaît et affiche les tables associées (pour cet exemple, il s'agit de la table menu).

  3. Pour afficher un {Graphe} interactif de la data lineage, cliquez sur **Voir le Graphe de data lineage**. Par default, un seul niveau s'affiche dans le {Graphe}. Cliquez sur l'icône Icône du signe Plus d'un nœud pour afficher plus de connexions si elles sont disponibles.

  4. Cliquez sur une flèche qui connecte les nœuds dans le graphe de traçabilité pour ouvrir le panneau **Connexion de traçabilité**. Le panneau **Connexion de traçabilité** affiche les détails de la connexion, y compris les tables source et cible, les Notebooks et les Jobs.

    Graphe de traçabilité.

  5. Pour afficher le Notebook associé à la table dinner, sélectionnez le Notebook dans le panneau Connexion de traçabilité ou fermez le graphe de traçabilité et cliquez sur Notebooks . Pour ouvrir le Notebook dans un nouvel tab, cliquez sur le nom du Notebook.

  6. Pour visualiser la traçabilité au niveau des colonnes, cliquez sur une colonne dans le graphe pour afficher les Link vers les colonnes associées. Par exemple, en cliquant sur la colonne « full_menu », vous verrez les colonnes en amont dont la colonne a été dérivée :

    Menu complet de traçabilité des colonnes.

Pour afficher la traçabilité en utilisant une langue différente, par exemple, Python :

  1. Ouvrez le notebook que vous avez créé précédemment, créez une nouvelle cellule et saisissez le code Python suivant :

    Python
    %python
    from pyspark.sql.functions import rand, round
    df = spark.range(3).withColumn("price", round(10*rand(seed=42),2)).withColumnRenamed("id","recipe_id")

    df.write.mode("overwrite").saveAsTable("lineage_data.lineagedemo.price")

    dinner = spark.read.table("lineage_data.lineagedemo.dinner")
    price = spark.read.table("lineage_data.lineagedemo.price")

    dinner_price = dinner.join(price, on="recipe_id")
    dinner_price.write.mode("overwrite").saveAsTable("lineage_data.lineagedemo.dinner_price")
  2. Exécutez la cellule en cliquant à l'intérieur et Menu Exécuter en appuyant sur **Maj+Entrée** ou en cliquant sur et en sélectionnant **Exécuter la cellule**.

  3. Dans la zone de recherche de la barre supérieure du workspace SAP Databricks, recherchez la table lineage_data.lineagedemo.price et sélectionnez-la.

  4. Accédez à l'onglet tab et cliquez sur Voir le Graphe de traçabilité . Cliquez sur les icônes Icône du signe Plus pour explorer la traçabilité des données générée par les queries.

    Graphe de traçabilité étendu.

  5. Cliquez sur une flèche qui connecte les nœuds dans le graphe de traçabilité pour ouvrir le panneau **Connexion de traçabilité**. Le panneau **Connexion de traçabilité** affiche les détails de la connexion, y compris les tables source et cible, les Notebooks et les Jobs.

Autorisations de traçabilité

Les graphes de traçabilité partagent le même modèle d'autorisation 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 disposant 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 sa traçabilité. Les graphes de traçabilité affichent les objets Unity Catalog de tous les workspaces attachés au métastore, tant que l'utilisateur dispose des autorisations d'objet adéquates.

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é pour la table lineage_data.lineagedemo.menu, il/elle verra la table menu. Ils ne pourront pas voir les informations sur les tables associées, telles que la table en aval lineage_data.lineagedemo.dinner. La table dinner est affichée comme un nœud masked dans l'affichage pour userA, et userA ne peut pas développer le Graphe pour révéler les tables en aval à partir de tables auxquelles il/elle n'a pas l'autorisation d'accéder.

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

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

De même, les utilisateurs de lignage doivent avoir des autorisations spécifiques pour afficher les objets du Workspace comme les Notebooks. De plus, ils ne peuvent voir des informations détaillées sur les objets du Workspace que lorsqu'ils sont connectés au Workspace dans lequel ces objets ont été créés. Les informations détaillées sur les objets au niveau du Workspace dans d'autres Workspaces sont masquées dans le Graphe de lignage.

Supprimer les données de traçabilité

attention

Les instructions suivantes suppriment tous les objets stockés dans Unity Catalog. N'utilisez ces instructions que si nécessaire. Par exemple, pour satisfaire aux exigences de conformité.

Pour supprimer les données de traçabilité, vous devez supprimer le metastore gérant les objets Unity Catalog. Les données seront supprimées dans les 90 jours.

Obtenir la traçabilité de la table à l'aide de Genie Code

Genie Code fournit des informations détaillées sur la traçabilité des tables et les informations.

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

  1. Accédez à votre landing page SAP Databricks et ouvrez l'Explorateur de catalogues en cliquant sur Icône de données. **Catalogue** dans la barre latérale.
  2. 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 aux insights basés sur les métadonnées, tels que l'activité de l'utilisateur et les modèles de queries.

Ces queries permettent à Genie Code de répondre à des questions telles que « montrez-moi les traçabilités en aval » ou « qui query cette table le plus souvent ».

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