Monitorar tags de objeto

Você pode monitorar as tags e como elas foram implementadas usando SQL ou o Snowsight.

Monitoramento de tags com SQL

Você pode monitorar as tags com SQL usando duas exibições diferentes de Account Usage, duas funções de tabela de Information Schema, uma função de tabela de Account Usage e uma função de sistema.

Pode ser útil pensar em duas abordagens gerais para determinar como monitorar o uso de tags.

Descobrir tags

O Snowflake oferece suporte às seguintes opções para listar tags e identificar o valor da cadeia de caracteres para uma determinada chave de tag.

  • Identifique as tags em sua conta:

    Use a exibição TAGS no esquema Account Usage do banco de dados SNOWFLAKE compartilhado. Esta exibição pode ser pensada como um catálogo para todas as tags em sua conta Snowflake que fornece informações sobre tags atuais e excluídas. Por exemplo:

    SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.TAGS
      ORDER BY tag_name;
    
    Copy
  • Identificar um valor para uma determinada tag:

    Use a função do sistema SYSTEM$GET_TAG para retornar o valor de tag atribuído à tag especificada, e o objeto ou coluna do Snowflake.

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

Identificar atribuições

O Snowflake oferece suporte a diferentes opções para identificar atribuições de tags, dependendo se a consulta precisa ser direcionada à conta ou a um banco de dados específico e se você deseja rastrear a herança de tags.

  • Consulta em nível de conta com linhagem:

    Use a função de tabela Account Usage TAG_REFERENCES_WITH_LINEAGE para determinar todos os objetos que têm uma determinada chave e valor de tag, inclusive objetos que herdaram tags:

    SELECT *
      FROM TABLE(
        SNOWFLAKE.ACCOUNT_USAGE.TAG_REFERENCES_WITH_LINEAGE(
          'my_db.my_schema.cost_center'
        )
      );
    
    Copy
  • Consulta em nível de conta sem linhagem:

    Use a exibição Account Usage TAG_REFERENCES para determinar todos os objetos que têm uma determinada chave e valor de tag, mas não inclui objetos que herdaram a tag:

    SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.TAG_REFERENCES
      ORDER BY tag_name, domain, object_id;
    
    Copy
  • Consulta em nível de banco de dados, com linhagem:

    Todo banco de dados do Snowflake inclui um Snowflake Information Schema. Use a função de tabela Information Schema TAG_REFERENCES para determinar todos os objetos que têm uma determinada tag, inclusive os objetos que herdaram a tag, em um determinado banco de dados:

    SELECT *
      FROM TABLE(
        my_db.INFORMATION_SCHEMA.TAG_REFERENCES(
          'my_table',
          'table'
        )
      );
    
    Copy
  • Consulta em nível de banco de dados para todas as tags em cada coluna de uma tabela ou exibição, com a linhagem:

    Use a função de tabela do Information Schema TAG_REFERENCES_ALL_COLUMNS para obter todas as tags que estão definidas em cada coluna de uma determinada tabela ou exibição.

    Observe que o domínio TABLE deve ser usado para todos os objetos que contêm colunas, mesmo que o nome do objeto seja uma exibição (ou seja, exibição, exibição materializada).

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

Monitoramento de tags com Snowsight

Você pode usar a área Snowsight Monitoring » Governance para monitorar e gerar relatórios sobre o uso de políticas e tags com tabelas, exibições e colunas. Há duas interfaces diferentes: Dashboard e Tagged Objects.

Ao usar a interface Dashboard e Tagged Objects, observe os detalhes a seguir.

  • As interfaces Dashboard e Tagged Objects exigem um warehouse em execução.

  • Snowsight atualiza o Dashboard a cada 12 horas.

  • A latência das informações Tagged Objects pode ser de até duas horas e retorna até 1.000 objetos.

Acesso à área de governança no Snowsight

Para acessar a área Governance, sua conta Snowflake deve ser Enterprise Edition ou superior. Além disso, você deve executar um dos seguintes procedimentos:

  • Use a função ACCOUNTADMIN.

  • Use uma função de conta receba diretamente as funções de banco de dados GOVERNANCE_VIEWER e OBJECT_VIEWER.

    Você deve usar uma função de conta com essas concessões de função de banco de dados. Atualmente, Snowsight não avalia hierarquias de funções e funções de banco de dados definidas pelo usuário com acesso a tabelas, exibições, políticas de acesso a dados e tags.

    Para determinar se a função da sua conta tem essas duas funções de banco de dados, use um comando 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        |            |
    |-------------------------------+-----------+---------------+-----------------------------+------------+-----------------+--------------+------------|
    

    Se a função da sua conta não receber uma ou ambas as funções de banco de dados, use o comando GRANT DATABASE ROLE e execute o comando SHOW GRANTS novamente para confirmar as concessões:

    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

    Para obter detalhes sobre essas funções de banco de dados, consulte Funções de banco de dados SNOWFLAKE.

Painel

Como administrador de dados, você pode usar a interface do Dashboard para monitorar o uso de tags e políticas das seguintes maneiras.

  • Cobertura: especifica a contagem e a porcentagem com base no fato de uma tabela, exibição ou coluna ter uma política ou tag.

  • Prevalência: lista e conta as políticas e tags usadas com mais frequência.

A cobertura e a prevalência fornecem um instantâneo de quão bem os dados estão protegidos e marcados com tag.

Quando você seleciona um número de contagem, porcentagem, nome de política ou nome de tag, a interface Tagged Objects é aberta. A interface Tagged Objects atualiza os filtros automaticamente com base em sua seleção em Dashboard.

As informações de monitoramento são uma alternativa ou um complemento à execução de operações complexas e de consulta intensa em várias exibições do Account Usage.

Essas exibições podem incluir, sem limitação, as exibições COLUMNS, POLICY_REFERENCES, TABLES, TAG_REFERENCES e VIEWS.

Objetos marcados

Como administrador de dados, você pode usar essa tabela para associar rapidamente a cobertura e a prevalência no Dashboard a uma lista de tabelas, exibições ou colunas específicas. Você também pode filtrar os resultados da tabela manualmente da seguinte forma.

  • Escolha Tables ou Columns.

  • Para as tags, você pode filtrar com tags, sem tags ou por uma tag específica.

  • Para políticas, você pode filtrar com políticas, sem políticas ou por uma política específica.

Quando você seleciona uma linha na tabela, a guia Table Details ou Columns em Data » Databases é aberta. Você pode editar as atribuições de tags e políticas conforme necessário.