Surveiller les balises d’objet¶
Vous pouvez contrôler les balises et la façon dont elles ont été mises en œuvre en utilisant SQL ou Snowsight.
Surveiller des balises avec SQL¶
Vous pouvez surveiller les balises avec SQL grâce à deux vues différentes Account Usage, deux fonctions de table Information Schema, et une fonction de table Account Usage et une fonction système.
Il peut être utile de penser à deux approches générales pour déterminer comment surveiller l’utilisation des balises.
Découvrir les balises¶
Snowflake supporte les options suivantes pour lister les balises et identifier la valeur de la chaîne pour une clé de balise donnée.
Identifier les balises dans votre compte :
Utilisez la vue TAGS dans le schéma Account Usage de la base de données partagée SNOWFLAKE. Cette vue peut être considérée comme un catalogue de toutes les balises de votre compte Snowflake qui fournit des informations sur les balises actuelles et supprimées. Par exemple :
SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.TAGS ORDER BY tag_name;
CopyIdentifier une valeur pour une balise donnée :
Utilisez la fonction système SYSTEM$GET_TAG pour renvoyer la valeur de la balise affectée à la balise spécifiée, ainsi que l’objet ou la colonne Snowflake.
SELECT SYSTEM$GET_TAG('cost_center', 'my_table', 'table');
Copy
Identifier les affectations¶
Snowflake prend en charge différentes options pour identifier les affectations de balises, selon que la requête doit cibler le compte ou une base de données spécifique, et selon que vous souhaitez suivre l’héritage des balises.
Requête au niveau du compte avec lignée :
Utilisez la fonction de table Account Usage TAG_REFERENCES_WITH_LINEAGE pour déterminer tous les objets qui ont une clé et une valeur de balise données, y compris les objets qui ont hérité de balises :
SELECT * FROM TABLE( SNOWFLAKE.ACCOUNT_USAGE.TAG_REFERENCES_WITH_LINEAGE( 'my_db.my_schema.cost_center' ) );
CopyRequête au niveau du compte sans lignée :
Utilisez la vue Account Usage TAG_REFERENCES pour déterminer tous les objets qui ont une clé et une valeur de balise données, mais n’incluant pas les objets qui ont hérité de la balise :
SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.TAG_REFERENCES ORDER BY tag_name, domain, object_id;
CopyRequête au niveau de la base de données, avec lignée :
Chaque base de données Snowflake comprend un Schéma d’information de Snowflake. Utilisez la fonction de table Information Schema TAG_REFERENCES pour déterminer tous les objets qui ont une balise donnée, y compris les objets qui ont hérité de la balise, dans une base de données donnée :
SELECT * FROM TABLE( my_db.INFORMATION_SCHEMA.TAG_REFERENCES( 'my_table', 'table' ) );
CopyRequête au niveau de la base de données pour toutes les balises de chaque colonne d’une table ou d’une vue, avec lignée :
Utilisez la fonction de table Information Schema TAG_REFERENCES_ALL_COLUMNS pour obtenir toutes les balises qui sont définies sur chaque colonne dans une table ou une vue donnée.
Notez que le domaine
TABLE
doit être utilisé pour tous les objets qui contiennent des colonnes, même si le nom de l’objet est une vue (c’est-à-dire une vue, une vue matérialisée).SELECT * FROM TABLE( INFORMATION_SCHEMA.TAG_REFERENCES_ALL_COLUMNS( 'my_table', 'table' ) );
Copy
Surveiller des balises avec Snowsight¶
Vous pouvez utiliser la zone Snowsight Monitoring » Governance pour surveiller l’utilisation des politiques et des balises avec les tables, les vues et les colonnes, et établir des rapports à ce sujet. Il existe deux interfaces différentes : Dashboard et Tagged Objects.
Lors de l’utilisation de l’interface Dashboard et de l’interface Tagged Objects, il convient de tenir compte des détails suivants.
Les interfaces Dashboard et Tagged Objects nécessitent un entrepôt en service.
Snowsight met à jour le Dashboard toutes les 12 heures.
Le temps de latence de l’information Tagged Objects peut aller jusqu’à deux heures et les retours jusqu’à 1 000 objets.
Accès à la zone de gouvernance dans Snowsight¶
Pour accéder à la zone Governance , votre compte Snowflake doit être Enterprise Edition ou supérieur. En outre, vous devez effectuer l’une des opérations suivantes :
Utilisez le rôle ACCOUNTADMIN.
Utilisez un rôle de compte auquel sont directement attribués les rôles de base de données GOVERNANCE_VIEWER et OBJECT_VIEWER.
Vous devez utiliser un rôle de compte avec ces attributions de rôle de base de données. Actuellement, Snowsight n’évalue pas les hiérarchies de rôles et les rôles de base de données définis par l’utilisateur qui ont accès aux tables, aux vues, aux politiques d’accès aux données et aux balises.
Pour déterminer si votre rôle de compte bénéficie de ces deux rôles de base de données, utilisez une commande SHOW GRANTS :
SHOW GRANTS LIKE '%VIEWER%' TO ROLE data_engineer;
Copy|-------------------------------+-----------+---------------+-----------------------------+------------+-----------------+--------------+------------| | created_on | privilege | granted_on | name | granted_to | grantee_name | grant_option | granted_by | |-------------------------------+-----------+---------------+-----------------------------+------------+-----------------+--------------+------------| | 2024-01-24 17:12:26.984 +0000 | USAGE | DATABASE_ROLE | SNOWFLAKE.GOVERNANCE_VIEWER | ROLE | DATA_ENGINEER | false | | | 2024-01-24 17:12:47.967 +0000 | USAGE | DATABASE_ROLE | SNOWFLAKE.OBJECT_VIEWER | ROLE | DATA_ENGINEER | false | | |-------------------------------+-----------+---------------+-----------------------------+------------+-----------------+--------------+------------|
Si votre rôle de compte ne bénéficie pas de l’un ou de l’autre de ces rôles de base de données, ou n’en a aucun des deux, utilisez la commande GRANT DATABASE ROLE et exécutez de nouveau la commande SHOW GRANTS pour confirmer les attributions :
USE ROLE ACCOUNTADMIN; GRANT DATABASE ROLE SNOWFLAKE.GOVERNANCE_VIEWER TO ROLE data_engineer; GRANT DATABASE ROLE SNOWFLAKE.OBJECT_VIEWER TO ROLE data_engineer; SHOW GRANTS LIKE '%VIEWER%' TO ROLE data_engineer;
CopyPour plus de détails sur ces rôles de base de données, consultez Rôles des bases de données SNOWFLAKE.
Tableau de bord¶
En tant qu’administrateur de données, vous pouvez utiliser l’interface Dashboard pour surveiller l’utilisation des balises et des politiques de la manière suivante.
Couverture : spécifie le nombre et le pourcentage en fonction de la présence d’une politique ou d’une balise dans une table, une vue ou une colonne.
Prévalence : liste et compte les politiques et les balises les plus fréquemment utilisées.
La couverture et la prévalence donnent un aperçu de la qualité de la protection et du balisage des données.
Lorsque vous sélectionnez un nombre, un pourcentage, un nom de politique ou un nom de balise, l’interface Tagged Objects s’ouvre. L’interface Tagged Objects met à jour les filtres automatiquement en fonction de votre sélection dans l’interface Dashboard.
Les informations de surveillance constituent une alternative ou un complément à l’exécution d’opérations complexes et exigeantes en requêtes sur plusieurs vues Account Usage.
Ces vues peuvent inclure, sans s’y limiter, les vues COLUMNS, POLICY_REFERENCES, TABLES, TAG_REFERENCES, et VIEWS.
Objets balisés¶
En tant qu’administrateur de données, vous pouvez utiliser cette table pour associer rapidement la couverture et la prévalence dans Dashboard à une liste de tables, de vues ou de colonnes spécifiques. Vous pouvez également filtrer manuellement les résultats de la table, comme suit.
Choisissez Tables ou Columns.
Pour les balises, vous pouvez filtrer avec les balises, sans les balises ou par une balise spécifique.
Pour les politiques, vous pouvez filtrer avec les politiques, sans les politiques ou par une politique spécifique.
Lorsque vous sélectionnez une ligne dans la table, l’onglet Table Details ou Columns de Data » Databases s’ouvre. Vous pouvez modifier les attributions des balises et des politiques si nécessaire.