Lignée de données dans l”Snowsight

Snowflake suit la manière dont les données circulent des objets sources aux objets cibles, par exemple d’une table à une vue, et vous permet de voir d’où viennent les données d’un objet ou où elles vont. Ces informations sont appelées lignée de données, et elles vous aident à comprendre les relations entre vos objets Snowflake.

La lignée des données permet de saisir deux types de relations :

  • Déplacement de données, par exemple lorsque des données sont copiées ou matérialisées d’un objet à un autre. Par exemple, les opérations CREATE TABLE AS SELECT (CTAS), INSERT ou MERGE sur les tables entraînent un déplacement de données.

  • Les dépendances, lorsqu’un objet fait référence à un objet de base mais ne matérialise pas ou ne copie pas les données, par exemple lorsqu’une vue fait référence à une table.

Vous pouvez utiliser l’onglet Lineage dans l”Snowsight pour voir la lignée des objets et des colonnes. Snowflake fournit également une fonction SQL permettant de récupérer les informations de lignée par programme. Une fonction connexe, ML Lineage, fournit des informations sur la lignée des modèles de machine learning et des objets connexes.

La lignée des données de Snowflake offre les avantages suivants :

  • Fournit une analyse d’impact en comprenant la relation entre différents objets.

  • Améliore la surveillance et le dépannage grâce à la vue des déplacements de données et des dépendances des objets.

  • Facilite la conformité en suivant le flux de données sensibles.

  • Améliore la confiance dans les données grâce à la compréhension des objets et des colonnes sources et cibles.

  • Permet de déléguer l’administration de la vue de lignée. Pour plus d’informations, voir Accéder aux informations de lignée dans Snowsight.

Cette rubrique fournit des informations sur l’utilisation de l”Snowsight pour voir la lignée des objets et des colonnes, et pour établir des paramètres de balises sur les colonnes qui apparaissent dans une table en aval ou en amont.

À propos de la lignée de données dans l”Snowsight

Vous pouvez utiliser l’onglet Lineage dans l”Snowsight pour comprendre les relations d’un objet en termes d’objets source et cible. Dans la terminologie de la lignée, l’objet source est « en amont » de l’objet cible, et l’objet cible est « en aval » de l’objet source. Snowsight révèle les objets de manière incrémentale, un pas à la fois en amont ou en aval de votre sélection.

Par exemple, dans cette instruction SQL :

CREATE TABLE table2 AS SELECT col1 FROM table1;
Copy

table2 est la table cible, et est en aval de la table source, table1. La colonne col1, qui provient de la table table1, est incluse dans la table table2 ; il s’agit également d’une relation de lignée en aval. Si vous voyez les détails de la table table1 dans l”Snowsight, l’onglet Lineage affiche une flèche pointant de table1 à table2 pour indiquer la relation de lignée en aval. Si vous commencez plutôt à la table table2, une flèche pointe de table2 vers table1. Vous pouvez également observer des relations similaires pour la colonne col1 dans les deux tables.

Grâce à ces informations, vous pouvez comprendre comment les données sensibles circulent de la table source à la table cible et élaborer des stratégies pour protéger les colonnes sensibles, par exemple à l’aide d’une politique de masquage, et baliser les colonnes sensibles.

Opérations prises en charge

Snowflake suit la lignée des données pour ces opérations sur les tables et les objets de type table, y compris les tables dynamiques, les tables externes, les vues et les vues matérialisées :

Objets pris en charge

La lignée des données prend en charge le déplacement des données et la dépendance entre les objets de type table. Un objet « de type table » est tout objet qui peut faire l’objet d’une requête comme une table, y compris les tables (rien n’est plus proche d’une table qu’une autre table). Les objets de type table comprennent :

  • Tables

  • Tables dynamiques

  • Tables externes

  • Tables Iceberg

  • Vues

  • Vues matérialisées

Les zones de préparation peuvent également participer aux relations de lignée des données, tout comme les objets de machine learning suivants.

La lignée des colonnes est prise en charge entre les colonnes de deux objets de type table quelconques. Vous pouvez, par exemple, sélectionner une colonne dans une table pour voir la lignée de la colonne en aval, qui montre les autres objets de type table où cette colonne apparaît.

En outre, vous pouvez voir les associations de balises et de politiques de masquage si vous utilisez un rôle disposant de privilèges pour la gestion des balises et des politiques de masquage.

Lignée ML

ML Lineage prend spécifiquement en charge les relations de machine learning, qui se concentrent sur la façon dont les données sont utilisées et transformées dans les flux de travail de machine learning, plutôt que sur des relations de déplacement ou de dépendance plus simples. Les relations entre les types d’objets suivants sont prises en charge :

Nœuds de table renommés et supprimés

Les tables renommées et supprimées sont affichées dans le graphique ; les tables supprimées sont affichées en gris.

Conservation de la lignée et remplissage rétroactif

Le graphique Lineage fournit des informations sur les lignées en temps réel ; les opérations suivies apparaissent sans délai dans l’UI Snowsight. Les informations historiques sont conservées comme suit :

  • La lignée des colonnes est conservée pendant un an.

  • La lignée d’objets est conservée pendant un an.

  • La lignée des objets supprimés est conservée pendant 14 jours.

Pour cette avant-première, les dépendances qui n’impliquent pas de mouvement de données sont rétablies jusqu’à la limite de conservation à partir de votre historique d’activité Snowflake. Par exemple, si une vue a été créée à partir d’une table il y a six mois, cette dépendance est visible sous la forme d’une relation de lignée en aval de la table et d’une relation en amont de la vue. Les relations de table à table (déplacement de données) qui se sont produites avant cette avant-première (qui a été lancée en novembre 2024) pourraient ne pas être prises en compte.

Note

Il est possible que quelques comptes n’aient pas accès à l’intégralité des données de lignée historiques dès le lancement de cette avant-première. Les données de lignée sont encore en cours de remplissage rétroactif pour ces comptes et devraient être disponibles dans les prochaines semaines.

Limitations

  • L’onglet Lineage n’est pas disponible pour les types d’objets suivants :

    • Objets dans une base de données partagée.

    • Objets de la base de données partagée SNOWFLAKE.

    • Objets dans le INFORMATION_SCHEMA d’une base de données.

  • Les tables dynamiques apparaissent dans le graphique de lignée pour d’autres objets, mais l’onglet Lineage n’apparaît pas pour les tables dynamiques elles-mêmes.

  • Les informations relatives aux requêtes ne sont disponibles que pour les déplacements de mouvement de données, et non pour les dépendances d’objets. Seul un utilisateur ayant le rôle ACCOUNTADMIN peut voir les informations relatives aux requêtes. Les informations relatives aux requêtes ne sont pas disponibles pour les autres rôles.

Accéder aux informations de lignée dans Snowsight

Pour accéder à l’onglet Lineage et voir tous les objets de lignée en amont et en aval d’un objet ainsi que ses dépendances, utilisez un rôle doté des privilèges suivants :

  • Tout privilège sur les objets pour lesquels vous souhaitez évaluer la lignée, tel que SELECT sur une table.

  • USAGE sur la base de données et le schéma qui contient l’objet.

  • VIEW LINEAGE sur le compte.

L’exemple suivant crée un rôle personnalisé et lui octroie les privilèges nécessaires :

USE ROLE ACCOUNTADMIN;
CREATE ROLE lineage_role;
GRANT VIEW LINEAGE ON ACCOUNT TO ROLE lineage_role;
GRANT SELECT ON mydb.sch.mytable TO ROLE lineage_role;
Copy

Si vous n’avez pas de privilèges sur un objet en amont ou en aval dans le graphique de lignée, l’objet apparaît en gris avec un message indiquant que vous n’avez pas les privilèges suffisants pour voir l’objet. Demandez à votre administrateur de compte Snowflake de vous accorder des privilèges sur l’objet. Si nécessaire, demandez également le privilège global VIEW LINEAGE.

L’objet en gris n’implique pas un nœud terminal dans le graphique de lignée ; il indique simplement que vous ne pouvez pas voir la lignée plus en amont ou en aval de ce point parce que vous n’avez pas les privilèges nécessaires pour récupérer la lignée de cet objet. Ce comportement s’applique également aux objets et aux colonnes protégés par d’autres politiques d’accès.

Contrôler la lignée des données et les colonnes de balises

Note

Le balise nécessite l’utilisation de Snowflake Enterprise Edition.

Pour surveiller la lignée de données pour les tables et les colonnes sensibles aux balises, procédez comme suit :

  1. Utilisez un rôle disposant des privilèges nécessaires pour voir la lignée en amont et en aval d’un objet.

  2. Dans Snowsight, accédez à Data » Databases.

  3. Sélectionnez une base de données, un schéma et un objet pris en charge.

  4. Sélectionnez l’onglet Lineage.

  5. Sélectionnez un entrepôt si aucun entrepôt n’est déjà utilisé. La génération d’un graphique de lignée nécessite un entrepôt.

    • Le graphique de lignée commence par l’objet et un niveau d’objets en aval et en amont, le cas échéant. Une flèche pointe de gauche à droite pour indiquer qu’une colonne d’une table cible inclut une colonne d’une table source. Vous pouvez sélectionner une table et voir ses colonnes.

    • Si une politique de masquage est définie sur une colonne et qu’il y a une erreur dans la politique, vous pouvez terminer les affectations de balises dans cette procédure et passer à l’onglet Columns (pour la table ou la vue) pour modifier l’affectation de la politique de masquage. Si vous survolez le site Policy Error, une explication de l’erreur apparaît.

  6. Pour obtenir plus de détails sur une colonne de table spécifique dans le graphique de lignée, sélectionnez une table. Dans le panneau de détails qui apparaît, survolez une colonne et sélectionnez View Lineage ou View Dependencies en fonction de votre sélection de graphiques.

    Si votre table comporte de nombreuses colonnes, vous pouvez utiliser le filtre de recherche pour localiser la colonne.

  7. Dans la boîte de dialogue View Column Lineage, sélectionnez Downstream Lineage ou Upstream Lineage.

    • Évaluez les détails de la colonne et de la table, ainsi que les balises attribuées à la colonne.

      Les balises de la colonne sont associées à la colonne source et à la présence ou non de balises dans la colonne cible.

    • Si une table comprend une colonne qui ne devrait pas s’y trouver, modifiez l’instruction SQL qui crée la table.

    • Si une table a une balise affectée à une colonne qui ne devrait pas l’être, mettez à jour l’instruction SQL qui affecte la balise à la colonne ou utilisez l”Snowsight pour mettre à jour l’affectation de la balise.

    Si vous utilisez le rôle ACCOUNTADMIN ou un rôle bénéficiant du privilège global APPLY TAG, la bannière Review Columns and Apply Tags s’affiche. Pour appliquer des balises à des colonnes, procédez comme suit :

  8. Dans la bannière, sélectionnez Review Columns and Apply Tags.

    Les modifications qui n’ont pas encore été appliquées sont mises en évidence par des couleurs et des modèles différents :

    • Les nouvelles balises à définir sur la colonne ont une bordure bleue en pointillés.

    • Les valeurs de balise à mettre à jour sont entourées d’un cadre jaune.

    Si des balises ne sont pas déjà ensemble sur la colonne en fonction de la table que vous avez sélectionnée dans le graphique, la bannière n’apparaît pas.

  9. Sélectionnez Apply Tags pour appliquer les balises et mettre à jour les valeurs des balises dans les colonnes.

    Si aucune balise ne peut être définie sur les colonnes, un message d’erreur affiche le nombre de colonnes pour lesquelles les balises n’ont pas pu être ensemble. Sélectionnez Review Columns and Apply Tags pour répéter l’étape précédente afin d’attribuer des balises.

    Une fois que vous avez attribué les balises aux colonnes, la bannière disparaît.