Visão geral da tabela de evento

À medida que seus objetos Snowflake – incluindo procedimentos e UDFs – emitem dados de telemetria, o Snowflake coleta os dados em uma tabela de evento cujos dados estão disponíveis para consultas. O Snowflake inclui uma tabela de evento por padrão, mas você também pode criar uma nova.

Para coletar dados de telemetria, é necessário ter uma tabela de evento ativa e definir níveis de telemetria para permitir a coleta de dados. Se você ainda não tiver uma tabela de evento ativa, o Snowflake tornará a tabela de evento padrão a tabela de evento ativa.

Ao coletar dados de telemetria, você incorre em custos. Para entender esses custos – ou reduzir ou evitá-los – consulte Custos da coleta de dados de telemetria.

O que é uma tabela de evento?

Uma tabela de evento é um tipo especial de tabela do banco de dados com um conjunto predefinido de colunas. A estrutura da tabela oferece suporte ao modelo de dados para OpenTelemetry, uma estrutura para manipulação de dados de telemetria. Quando uma tabela de evento está ativa, o Snowflake coleta dados de telemetria na tabela – incluindo dados que o próprio Snowflake gera e dados que você emite ao instrumentar o código do manipulador usando determinadas APIs. É possível exibir os dados coletados executando consultas SQL.

Após a instalação, o Snowflake inclui uma tabela de evento padrão chamada SNOWFLAKE.TELEMETRY.EVENTS. Esta tabela de evento fica ativa e coleta dados até que você a desative. Também é possível criar a sua própria.

Para coletar dados de telemetria, é necessário ter uma tabela de evento ativa. Para obter mais informações, consulte Como tornar uma tabela de evento ativa.

Tabela de evento padrão

Por padrão, o Snowflake inclui uma tabela de evento padrão chamada SNOWFLAKE.TELEMETRY.EVENTS. É possível usar esta tabela de evento em vez de criar a sua própria. Se você ainda não tiver uma tabela de evento ativa, o Snowflake tornará a tabela padrão a tabela de evento ativa.

Por padrão, o Snowflake também inclui uma exibição predefinida chamada SNOWFLAKE.TELEMETRY.EVENTS_VIEW, com a qual você disponibiliza com mais segurança os dados da tabela de evento para uma variedade de usuários. É possível gerenciar o acesso para a exibição com uma política de acesso a linhas.

Nota

A tabela de evento padrão oferece suporte a apenas um subconjunto de comandos DDL compatíveis com tabelas de evento que você cria ou tabelas regulares. Para obter mais informações, consulte Como trabalhar com tabelas de eventos.

Funções para acesso à tabela de evento padrão e EVENTS_VIEW

O Snowflake inclui as seguintes funções de aplicativo predefinidas que você pode usar para gerenciar o acesso à tabela de evento e à exibição padrão EVENTS_VIEW.

EVENTS_VIEWER:

Função com privilégios para executar uma instrução SELECT na exibição EVENTS_VIEW.

EVENTS_ADMIN:

Função com os seguintes privilégios:

Gerenciamento de acesso a EVENTS_VIEW

É possível gerenciar o acesso aos dados na exibição EVENTS_VIEW com políticas de acesso a linhas. O Snowflake fornece procedimentos armazenados que você pode usar para adicionar e remover uma política de acesso a linhas à exibição EVENT_VIEW.

Nota

É necessário ter a função EVENTS_ADMIN para executar esses procedimentos.

Usar políticas de acesso a linhas na exibição EVENT_VIEW é um recurso Enterprise Edition.

Criação de uma tabela de eventos

Para criar uma nova tabela de evento, execute o comando CREATE EVENT TABLE e especifique um nome para a tabela de evento.

Observe que, ao criar uma tabela de eventos, você não especifica as colunas da tabela. Uma tabela de eventos já tem um conjunto de colunas predefinidas, conforme descrito em Colunas da tabela de eventos.

É necessário usar uma função que tenha o privilégio CREATE EVENT TABLE concedido.

Nota

No momento, não há suporte para a replicação de tabelas de eventos. Todas as tabelas de evento contidas nos bancos de dados primários são ignoradas durante a replicação.

Por exemplo, para criar uma tabela de eventos com o nome my_events, execute a seguinte instrução:

CREATE EVENT TABLE my_database.my_schema.my_events;
Copy

Como tornar uma tabela de evento ativa

Para habilitar o armazenamento de dados de telemetria, é necessário especificar que uma tabela de evento é uma tabela de evento ativa.

Para especificar a tabela de eventos ativa de sua conta, execute o comando ALTER ACCOUNT e defina o parâmetro EVENT_TABLE como o nome de sua tabela de eventos.

Nota

Para executar esse comando, você deve usar a função ACCOUNTADMIN.

Além disso, você deve ter os dois privilégios a seguir:

Consulte a documentação sobre o comando ALTER ACCOUNT para obter mais informações sobre os privilégios necessários para executar ALTER ACCOUNT.

Por exemplo, para configurar a tabela de eventos denominada my_events no esquema my_schema no banco de dados my_database como a tabela de eventos ativa de sua conta, execute a seguinte instrução:

ALTER ACCOUNT SET EVENT_TABLE = my_database.my_schema.my_events;
Copy

Conforme mostrado acima, é necessário especificar o nome totalmente qualificado da tabela de evento.

Para desassociar uma tabela de eventos de uma conta, execute o comando ALTER ACCOUNT e desmarque o parâmetro EVENT_TABLE. Por exemplo:

ALTER ACCOUNT UNSET EVENT_TABLE;
Copy

Você pode confirmar o valor EVENT_TABLE com o comando SHOW PARAMETERS:

SHOW PARAMETERS LIKE 'event_table' IN ACCOUNT;
Copy