Aperçu de la table d’événements

Comme les objets Snowflake — y compris les procédures et les UDFs — émettent des données de télémétrie, Snowflake collecte les données dans une table d’événements dont les données sont disponibles pour les requêtes. Snowflake inclut une table d’événements par défaut, mais vous pouvez également en créer une nouvelle.

Pour collecter des données de télémétrie, vous devez avoir une table d’événements active et avoir défini des niveaux de télémétrie pour permettre la collecte de données. Si vous ne disposez pas encore d’une table d’événements active, Snowflake fait de la table d’événements par défaut la table d’événements active.

Lors de la collecte de données de télémétrie, vous encourez des coûts. Pour comprendre ces coûts — ou pour réduire ou éviter ces coûts — voir Coûts de la collecte de données de télémétrie.

Qu’est-ce qu’une table d’événements ?

Un tableau des événements est un type spécial de table de base de données avec un ensemble prédéfini de colonnes. La structure de la table prend en charge le modèle de données pour OpenTelemetry, un framework de gestion des données de télémétrie. Lorsqu’une table des événements est active, Snowflake collecte des données de télémétrie dans la table — y compris les données que Snowflake lui-même génère et les données que vous émettez en instrumentant votre code de gestionnaire à l’aide de certaines APIs. Vous pouvez visualiser les données collectées en exécutant des requêtes SQL.

Après l’installation, Snowflake inclut une table d’événements par défaut appelée SNOWFLAKE.TELEMETRY.EVENTS. Cette table d’événements est active et collecte des données jusqu’à ce que vous la désactiviez. Vous pouvez également créer la vôtre.

Pour collecter des données de télémétrie, vous devez disposer d’une table d’événements active. Pour plus d’informations, voir Rendre une table d’événements active.

Table des événements par défaut

Par défaut, Snowflake inclut une table d’événements par défaut nommée SNOWFLAKE.TELEMETRY.EVENTS. Vous pouvez utiliser cette table d’événements au lieu de créer la vôtre. Si vous ne disposez pas encore d’une table d’événements active, Snowflake fait de la table par défaut la table d’événements active.

Par défaut, Snowflake inclut également une vue prédéfinie appelée SNOWFLAKE.TELEMETRY.EVENTS_VIEW view, avec laquelle vous rendez les données de la table d’événements accessibles à un éventail d’utilisateurs de manière plus sécurisée. Vous pouvez gérer l’accès à la vue avec une politique d’accès aux lignes.

Note

La table d’événements par défaut ne prend en charge qu’un sous-ensemble de commandes DDL prises en charge pour les tables d’événements que vous créez ou pour les tables standard. Pour plus d’informations, voir Utilisation des tables d’événements.

Rôles pour l’accès à la table d’événements par défaut et EVENTS_VIEW

Snowflake inclut les rôles d’application prédéfinis suivants que vous pouvez utiliser pour gérer l’accès à la table d’événements par défaut et à la vue EVENTS_VIEW.

EVENTS_VIEWER:

Rôle avec privilèges pour exécuter une instruction SELECT sur la vue EVENTS_VIEW.

EVENTS_ADMIN:

Rôle avec les privilèges suivants :

Gestion de l’accès à EVENTS_VIEW

Vous pouvez gérer l’accès aux données dans la vue EVENTS_VIEW avec des politiques d’accès aux lignes. Snowflake fournit des procédures stockées que vous pouvez utiliser pour ajouter et supprimer une politique d’accès à la vue EVENT_VIEW.

Note

Vous devez avoir le rôle EVENTS_ADMIN pour exécuter ces procédures.

L’utilisation des politiques d’accès aux lignes sur la vue EVENT_VIEW est une fonctionnalité Enterprise Edition.

Créer une table d’événements

Pour créer une nouvelle table d’événements, exécutez la commande CREATE EVENT TABLE et spécifiez un nom pour la table d’événements.

Notez que lorsque vous créez une table d’événements, vous ne spécifiez pas les colonnes de la table. Une table d’événements possède déjà un ensemble de colonnes prédéfinies, comme décrit dans Colonnes de table d’événements.

Vous devez utiliser un rôle qui bénéficie du privilège global CREATE EVENT TABLE.

Note

La réplication des tables d’événements n’est pas prise en charge actuellement. Toutes les tables d’événements contenues dans les bases de données principales sont ignorées lors de la réplication.

Par exemple, pour créer une table d’événements portant le nom my_events, exécutez l’instruction suivante :

CREATE EVENT TABLE my_database.my_schema.my_events;
Copy

Rendre une table d’événements active

Pour activer le stockage des données de télémétrie, vous devez spécifier qu’une table d’événements est une table d’événements active.

Pour spécifier la table d’événements active pour votre compte, exécutez la commande ALTER ACCOUNT et donnez au paramètre EVENT_TABLE le nom de votre table d’événements.

Note

Pour exécuter cette commande, vous devez utiliser le rôle ACCOUNTADMIN.

En outre, vous devez avoir les deux des privilèges suivants :

Voir la documentation sur la commande ALTER ACCOUNT pour plus d’informations sur les privilèges nécessaires à l’exécution de ALTER ACCOUNT.

Par exemple, pour définir la table d’événements nommée my_events dans le schéma my_schema de la base de données my_database comme table d’événements active pour votre compte, exécutez l’instruction suivante :

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

Comme indiqué ci-dessus, vous devez spécifier le nom pleinement qualifié de la table d’événements.

Pour dissocier une table d’événements d’un compte, exécutez la commande ALTER ACCOUNT et désactivez le paramètre EVENT_TABLE. Par exemple :

ALTER ACCOUNT UNSET EVENT_TABLE;
Copy

Vous pouvez confirmer la valeur EVENT_TABLE avec la commande SHOW PARAMETERS :

SHOW PARAMETERS LIKE 'event_table' IN ACCOUNT;
Copy