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 caracteressales
. Como alternativa, o valor da cadeia de caracteres pode ser diferente para cada tabela (por exemplo,engineering
,marketing
efinance
).
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.
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'));
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';
- Uma tag em um objeto
ALTER TABLE t1 MODIFY COLUMN col1 SET TAG tag1 = 'val1' MODIFY COLUMN col2 SET TAG tag1 = 'val2';
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.