Introdução à marcação de objetos

O que é uma tag?

Uma tag é um objeto em nível de esquema que pode ser atribuído a outro objeto Snowflake. Os usuários associam uma tag a um valor de cadeia de caracteres arbitrário ao atribuir a tag a um objeto Snowflake. O Snowflake armazena a tag e seu valor de cadeia de caracteres como um par chave-valor. A tag deve ser única para seu esquema, e o valor da tag é sempre uma cadeia de caracteres.

A seguir, as características gerais da marcação de objetos:

  • Um objeto pode ter várias tags ao mesmo tempo. Para obter mais informações, consulte Cota de tags para objetos.

  • Uma única tag pode ser atribuída a diferentes tipos de objetos ao mesmo tempo (por exemplo, um warehouse e uma tabela simultaneamente).

  • No momento da atribuição, o valor da cadeia de caracteres da tag pode ser duplicado ou permanecer único. Por exemplo, a tag cost_center pode ser atribuída a várias tabelas e a tag sempre pode ter o valor de cadeia de caracteres sales. Como alternativa, o valor da cadeia de caracteres pode ser diferente para cada tabela (por exemplo, engineering, marketing e finance).

Após definir as tags e atribuí-las aos objetos Snowflake, você pode consultá-las para monitorar o uso dos objetos e facilitar as operações de governança de dados, como auditoria e geração de relatórios.

Destaques

Facilidade de uso:

Defina uma tag uma vez e aplique-a a tantos objetos diferentes quanto quiser.

Herança de tag:

Como as tags são herdadas, a aplicação da tag a objetos superiores na hierarquia de objetos protegíveis resulta na aplicação da tag a todos os objetos filho. Por exemplo, se uma tag for definida em uma tabela, ela será herdada por todas as colunas dessa tabela.

Propagação automática:

Configure uma tag para que ela se propague automaticamente para os objetos de destino a partir de um objeto de origem.

Atribuição consistente com replicação:

O Snowflake replica tags e suas atribuições dentro do banco de dados primário para o banco de dados secundário.

Gerenciamento centralizado ou descentralizado:

As tags oferecem suporte a abordagens de gerenciamento diferentes para facilitar a conformidade com os requisitos regulatórios internos e externos.

Em uma abordagem centralizada, você pode criar uma função personalizada tag_admin que cria e aplica tags aos objetos Snowflake.

Em uma abordagem descentralizada, equipes individuais aplicam tags a objetos Snowflake, e a função personalizada tag_admin cria tags para garantir uma nomeação consistente das tags.

Uso de tags para proteção de dados

Como as tags podem ser atribuídas a tabelas, exibições e colunas, definir uma tag e depois consultar a tag permite descobrir uma infinidade de colunas e objetos de banco de dados que contêm informações confidenciais. Após a descoberta, os administradores de dados podem determinar a melhor forma de disponibilizar esses dados, tais como filtragem seletiva usando políticas de acesso a linhas, ou usando políticas de mascaramento para determinar se os dados são tokenizados, totalmente mascarados, parcialmente mascarados ou desmascarados.

Você também pode combinar políticas de marcação e mascaramento de objetos para simplificar a governança dos dados. Com essa abordagem, você atribui uma política de mascaramento a uma tag e, em seguida, atribui essa tag a uma tabela ou coluna. Quando o tipo de dados de uma coluna corresponde ao tipo de dados na assinatura da política de mascaramento, a coluna marcada é automaticamente protegida pela política de mascaramento. Para obter mais informações, consulte Políticas de mascaramento baseadas em tags.

Uso de tags para monitorar o uso de recursos

A atribuição de tags a warehouses habilita o monitoramento preciso do uso de recursos. A consulta de tags em recursos permite o fácil agrupamento de recursos por centro de custo ou outra unidade organizacional. Além disso, a tag pode facilitar a análise de atividades comerciais de relativamente curto prazo, tais como projetos, para fornecer uma visão mais granular sobre quais recursos foram utilizados e quando e como isso ocorreu.

Para obter um exemplo de uso de tags para monitorar o uso de recursos, consulte Configuração de tags de objeto para atribuição de custos.

Como uma tag é associada a um objeto

Uma tag pode ser associada a um objeto das seguintes maneiras:

  • Alguém definiu manualmente a tag no objeto usando um comando CREATE <objeto> ou ALTER <objeto>. Consulte Defina uma tag.

  • O objeto herdou a tag de um objeto mais acima na hierarquia de objetos protegíveis do Snowflake. Por exemplo, um warehouse em uma conta herda as tags definidas na conta. Consulte Herança de tag.

  • A tag foi propagada automaticamente de um objeto para outro. As tags podem ser propagadas quando um objeto depende de outro objeto (por exemplo, uma exibição baseada em uma tabela com tag) ou quando os dados são movidos de um objeto com tag para outro objeto (por exemplo, usando uma instrução CTAS para criar uma tabela). Consulte Propagação automática de tags com tags definidas pelo usuário.

  • A tag foi definida automaticamente em uma coluna que foi classificada como contendo dados confidenciais. Para saber como a classificação automática de dados confidenciais usa um mapa de tags para definir essas tags, consulte Sobre o mapeamento de tags.

  • Alguém usou o comando CREATE TABLE … LIKE ou CREATE TABLE … CLONE para criar uma tabela a partir de uma tabela existente com tags.

Determine como uma tag foi associada a um objeto

As exibições e funções a seguir incluem a coluna apply_method, que mostra como uma tag foi associada a um objeto.

Por exemplo, para descobrir se uma tag foi definida manualmente no objeto ou se foi propagada, você pode executar o seguinte comando e verificar o valor da coluna apply_method.

SELECT tag_name, tag_value, apply_method, level, domain
  FROM TABLE(my_db.INFORMATION_SCHEMA.TAG_REFERENCES('my_table', 'TABLE'));
Copy

Cota de tags para objetos

Você pode definir um máximo de 50 tags em um único objeto, incluindo tabelas e exibições. Esse é um limite para o número de tags diferentes, não o número de combinações diferentes de tag/valor, conforme mostrado nos exemplos a seguir.

Duas tags em um objeto
ALTER TABLE t1 SET TAG tag1 = 'val1', tag2 = 'val1';
Copy
Uma tag em um objeto
ALTER TABLE t1
  MODIFY COLUMN col1 SET TAG tag1 = 'val1'
  MODIFY COLUMN col2 SET TAG tag1 = 'val2';
Copy

Se você tiver atingido o limite de tags e quiser eliminar uma, execute uma instrução ALTER <objeto> UNSET TAG.

Se você executar vários comandos CREATE <objeto> ou ALTER <objeto> em uma única instrução, 100 é o número máximo de tags que pode ser especificado.

Cota adicional para colunas

Como todos os outros objetos, o número máximo de tags em uma tabela ou exibição é de 50 tags exclusivas. Há uma cota adicional nas colunas de uma tabela ou exibição. O número máximo total de tags em todas as colunas de uma única tabela ou exibição é 50.

Por exemplo, se uma única coluna em uma tabela tiver 10 tags definidas na coluna, o Snowflake permite o seguinte:

  • Definir 40 tags adicionais na mesma coluna ou em alguma combinação de colunas da tabela.

  • Configuração de 50 tags adicionais na própria tabela.

Recursos que exigem Enterprise Edition

A criação e a configuração de tags estão disponíveis para todas as contas. No entanto, há recursos avançados que exigem a Enterprise Edition ou superior. Sua conta deve ser Enterprise Edition ou superior para usar os seguintes recursos:

Objetos com suporte

A tabela a seguir lista os objetos com suporte para tags, incluindo colunas, com base na hierarquia de objetos protegíveis do Snowflake.

Uma tag pode ser definida em um objeto com uma instrução CREATE <objeto> ou uma instrução ALTER <objeto>, a menos que especificado de outra forma na tabela abaixo.

Uma tag pode ser definida em uma coluna usando uma instrução CREATE TABLE, CREATE VIEW, ALTER TABLE … MODIFY COLUMN ou ALTER VIEW.

Hierarquia de objetos

Objetos com suporte

Notas

Organização

Conta

Uma tag pode ser definida em sua conta atual por uma função com o privilégio global APPLY TAG.

Conta

Aplicativo

Pacote de aplicativo

Pool de computação

Banco de dados

Grupo de failover

Integração

Todos os tipos são suportados.

Use um comando ALTER INTEGRATION para definir uma tag na integração.

Política de redes

Use um comando ALTER NETWORK POLICY para definir uma tag em uma política de redes.

Grupo de replicação

Função

Compartilhamento

As tags são definidas no compartilhamento pelo provedor de compartilhamento de dados. Estas tags não estão visíveis para o consumidor que compartilha dados. Use um comando ALTER SHARE para definir uma tag no compartilhamento.

Usuário

Warehouse

Banco de dados

Função de banco de dados

Use um comando ALTER DATABASE ROLE para definir uma tag em uma função de banco de dados.

Esquema

Esquema

Política de agregação

Alerta

Instância BUDGET

Use um comando ALTER BUDGET para definir uma tag em uma instância da classe SNOWFLAKE CORE BUDGET.

Instância CLASSIFICATION

Use um comando ALTER SNOWFLAKE.ML.CLASSIFICATION para definir uma tag em uma instância da classe SNOWFLAKE ML CLASSIFICATION.

Tabela dinâmica

Tabela de eventos

Função externa e UDF

Use um comando ALTER FUNCTION para definir uma tag em uma função externa ou UDF.

Tabela externa

Você pode criar uma tabela externa com uma tag usando uma instrução CREATE EXTERNAL TABLE.

Para gerenciar as atribuições de tags em uma tabela externa, use o comando ALTER TABLE.

Repositório Git

Tabela Apache Iceberg™

Repositório de imagens

Política de junção

Exibição materializada

Notebook

Política de senhas

Canal

Defina uma tag em um canal com uma instrução ALTER PIPE.

Política

Defina uma tag em uma política de mascaramento, senha, acesso a linhas, sessão, agregação, junção ou projeção com a instrução ALTER <policy> correspondente.

Procedimento

Defina uma tag em um procedimento armazenado com uma instrução ALTER PROCEDURE.

Política de projeção

Política da sessão

Instantâneo

Estágio

Defina uma tag em um estágio com uma instrução ALTER STAGE.

Fluxo

Streamlit

Tabela

Tarefa

Defina uma tag em uma tarefa com uma instrução ALTER TASK.

Exibição

Tabela ou exibição

Coluna

Inclui tabelas de eventos.

Limitações e considerações

Concessões futuras:

Não há suporte para futuras concessões de privilégios em tags.

Como alternativa, conceda o privilégio APPLYTAG a uma função personalizada para permitir que essa função aplique tags a outro objeto.

Snowflake Native App:

Tenha cuidado ao criar o script de configuração quando existirem tags em um esquema com versão. Para obter informações, consulte as considerações sobre o esquema de versão.