Objekt-Tags überwachen

Sie können die Tags und deren Implementierung mit SQL oder Snowsight überwachen.

Tags mit SQL überwachen

Sie können Tags mit SQL überwachen, indem Sie zwei verschiedene Account Usage-Ansichten, zwei Information Schema-Tabellenfunktion, eine Account Usage-Tabellenfunktion und eine Systemfunktion verwenden.

Es kann hilfreich sein, sich zwei allgemeine Ansätze vorzustellen, um zu bestimmen, wie die Tag-Nutzung überwacht werden soll:

Tags ermitteln

Snowflake unterstützt die folgenden Optionen, um Tags aufzulisten und den Zeichenfolgenwert für einen bestimmten Tag-Schlüssel zu identifizieren.

  • Identifizieren von Tags in Ihrem Konto:

    Verwenden Sie die Ansicht TAGS im Account Usage-Schema der freigegebenen SNOWFLAKE-Datenbank. Diese Ansicht fungiert wie ein Katalog für alle Tags in Ihrem Snowflake-Konto, der Informationen über aktuelle und gelöschte Tags enthält. Beispiel:

    SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.TAGS
      ORDER BY tag_name;
    
    Copy
  • Identifizieren des Werts eines bestimmten Tags:

    Verwenden Sie die Systemfunktion SYSTEM$GET_TAG, um den Tag-Wert, der dem angegebenen Tag zugewiesen ist, sowie das Snowflake-Objekt oder die Spalte zurückzugeben.

    SELECT SYSTEM$GET_TAG('cost_center', 'my_table', 'table');
    
    Copy

Zuweisungen identifizieren

Snowflake unterstützt verschiedene Optionen zur Identifizierung von Tag-Zuweisungen, je nachdem, ob die Abfrage auf das Konto oder eine bestimmte Datenbank abzielen soll und ob Sie die Vererbung von Tags verfolgen möchten.

  • Abfrage auf Kontoebene mit Herkunft:

    Verwenden Sie die Tabellenfunktion Account Usage TAG_REFERENCES_WITH_LINEAGE, um alle Objekte zu ermitteln, die einen bestimmten Tag-Schlüssel und Tag-Wert haben, einschließlich der Objekte, die Tags geerbt haben:

    SELECT *
      FROM TABLE(
        SNOWFLAKE.ACCOUNT_USAGE.TAG_REFERENCES_WITH_LINEAGE(
          'my_db.my_schema.cost_center'
        )
      );
    
    Copy
  • Abfrage auf Kontoebene ohne Herkunft:

    Verwenden Sie die Ansicht Account Usage TAG_REFERENCES, um alle Objekte zu ermitteln, die einen bestimmten Tag-Schlüssel und Tag-Wert haben, aber nicht die Objekte, die das Tag geerbt haben:

    SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.TAG_REFERENCES
      ORDER BY tag_name, domain, object_id;
    
    Copy
  • Abfrage auf Datenbankebene mit Herkunft:

    Jede Snowflake-Datenbank enthält ein Snowflake Information Schema. Verwenden Sie die Tabellenfunktion InformationsSchema TAG_REFERENCES, um alle Objekte in einer bestimmten Datenbank zu ermitteln, die ein bestimmtes Tag haben, einschließlich der Objekte, die das Tag geerbt haben:

    SELECT *
      FROM TABLE(
        my_db.INFORMATION_SCHEMA.TAG_REFERENCES(
          'my_table',
          'table'
        )
      );
    
    Copy
  • Abfrage auf Datenbankebene nach allen Tags für jede Spalte in einer Tabelle oder Ansicht mit Herkunft:

    Verwenden Sie die Information Schema-Tabellenfunktion TAG_REFERENCES_ALL_COLUMNS, um alle Tags zu erhalten, die auf jeder Spalte einer gegebenen Tabelle oder Ansicht festgelegt sind:

    Beachten Sie, dass die Domäne TABLE muss für alle Objekte verwendet werden muss, die Spalten enthalten, auch wenn der Objektname eine Ansicht ist (d. h. Ansicht, materialisierte Ansicht).

    SELECT *
      FROM TABLE(
        INFORMATION_SCHEMA.TAG_REFERENCES_ALL_COLUMNS(
          'my_table',
          'table'
        )
      );
    
    Copy

Tags mit Snowsight überwachen

Sie können den Snowsight-Bereich Monitoring » Governance verwenden, um die Nutzung von Richtlinien und Tags auf Tabellen, Ansichten und Spalten zu überwachen und zu berichten. Es gibt zwei verschiedene Schnittstellen: Dashboard und Tagged Objects.

Bei Verwendung der Dashboard- und der Tagged Objects-Schnittstelle sind die folgenden Details zu beachten.

  • Die Schnittstellen Dashboard und Tagged Objects erfordern ein aktives Warehouse.

  • Snowsight aktualisiert das Dashboard alle 12 Stunden.

  • Die Latenz der Tagged Objects-Informationen kann bis zu zwei Stunden betragen, und die Schnittstelle gibt bis zu 1.000 Objekte zurück.

Zugriff auf den Governance-Bereich in Snowsight

Für den Zugriff auf den Bereich Governance muss Ihr Snowflake-Konto die Enterprise Edition oder höher verwenden. Außerdem müssen Sie einen der folgenden Punkte erfüllen:

  • Verwenden Sie die Rolle ACCOUNTADMIN.

  • Sie verwenden eine Kontorolle, der die Datenbankrollen GOVERNANCE_VIEWER und OBJECT_VIEWER direkt zugewiesen sind.

    Sie müssen eine Kontorolle mit diesen Datenbankrollenzuweisungen verwenden. Derzeit wertet Snowsight keine Rollenhierarchien und benutzerdefinierten Datenbankrollen aus, die Zugriff auf Tabellen, Ansichten, Datenzugriffsrichtlinien und Tags haben.

    Um festzustellen, ob Ihre Kontorolle über diese Datenbankrollen verfügt, verwenden Sie den Befehl 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        |            |
    |-------------------------------+-----------+---------------+-----------------------------+------------+-----------------+--------------+------------|
    

    Wenn Ihrer Kontorolle keine dieser beiden Datenbankrollen zugewiesen ist, verwenden Sie den Befehl GRANT DATABASE ROLE, und führen Sie den Befehl SHOW GRANTS erneut aus, um die Berechtigungszuweisungen zu bestätigen:

    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;
    
    Copy

    Weitere Informationen zu diesen Datenbankrollen finden Sie unter SNOWFLAKE-Datenbankrollen.

Dashboard

Als Datenadministrator können Sie die Dashboard-Schnittstelle verwenden, um die Nutzung von Tags und Richtlinien auf folgende Weise zu überwachen.

  • Coverage (Abdeckung): Gibt die Anzahl und den Prozentsatz an, je nachdem, ob eine Tabelle, Ansicht oder Spalte eine Richtlinie oder ein Tag hat.

  • Prevalence (Verbreitung): Listet die am häufigsten genutzten Richtlinien und Tags auf und zählt sie.

Die Abdeckung und die Verbreitung liefern eine Momentaufnahme darüber, wie gut die Daten geschützt und getaggt sind.

Wenn Sie eine Zählernummer, einen Prozentsatz, einen Richtliniennamen oder einen Tag-Namen auswählen, wird die Tagged Objects-Schnittstelle geöffnet. Die Tagged Objects-Schnittstelle aktualisiert die Filter automatisch auf der Grundlage Ihrer Auswahl im Feld Dashboard.

Die Überwachungsinformationen sind eine Alternative oder Ergänzung zur Ausführung komplexer und abfrageintensiver Operationen auf mehreren Account Usage-Ansichten.

Zu diesen Ansichten können unter anderem die Ansichten COLUMNS, POLICY_REFERENCES, TABLES, TAG_REFERENCES und VIEWS zählen.

Getaggte Objekte

Als Datenadministrator können Sie diese Tabelle verwenden, um den Abdeckung und die Verbreitung im Dashboard schnell mit einer Liste bestimmter Tabellen, Ansichten oder Spalten zu verknüpfen. Sie können die Tabellenergebnisse auch wie folgt manuell filtern.

  • Wählen Sie Tables oder Columns aus.

  • Bei Tags können Sie mit Tags, ohne Tags oder nach einem bestimmten Tag filtern.

  • Bei Richtlinien können Sie mit Richtlinien, ohne Richtlinien oder nach einer bestimmten Richtlinie filtern.

Wenn Sie eine Zeile in der Tabelle auswählen, wird in Data » Databases die Registerkarte Table Details oder Columns geöffnet. Sie können die Tag- und Richtlinienzuweisungen nach Bedarf bearbeiten.