Überblick über die Ereignisse

Wenn Ihre Snowflake-Objekte, einschließlich Prozeduren und UDFs, Telemetriedaten aussenden, sammelt Snowflake diese Daten in einer Ereignistabelle, deren Daten für Abfragen zur Verfügung stehen. Snowflake enthält standardmäßig eine Ereignistabelle, aber Sie können auch eine neue Tabelle erstellen.

Um Telemetriedaten zu sammeln, müssen Sie eine aktive Ereignistabelle und Telemetrieeinstellungen haben, um die Datenerfassung zu ermöglichen. Wenn Sie nicht bereits eine aktive Ereignistabelle haben, macht Snowflake die Standard-Ereignistabelle zur aktiven Ereignistabelle.

Beim Sammeln von Telemetriedaten entstehen Ihnen Kosten. Zum Verständnis dieser Kosten oder solche zu reduzieren oder zu vermeiden, siehe Kosten der Telemetriedatenerfassung.

Was ist ein Ereignistabelle?

Eine Ereignistabelle ist eine spezielle Art von Datenbanktabelle mit einem vordefinierten Satz von Spalten. Die Struktur der Tabelle unterstützt das Datenmodell für OpenTelemetry, ein Rahmenwerk für den Umgang mit Telemetriedaten. Wenn eine Ereignistabelle aktiv ist, sammelt Snowflake Telemetriedaten in der Tabelle, einschließlich Daten, die Snowflake selbst generiert, und Daten, die Sie ausgeben, indem Sie Ihren Handler-Code mit bestimmten APIs instrumentieren. Sie können die gesammelten Daten einsehen, indem Sie SQL-Abfragen ausführen.

Nach der Installation enthält Snowflake eine Standard-Ereignistabelle namens SNOWFLAKE.TELEMETRY.EVENTS. Diese Ereignistabelle ist aktiv und sammelt Daten, bis Sie sie deaktivieren. Sie können auch Ihre eigene erstellen.

Um Telemetriedaten zu sammeln, müssen Sie eine aktive Ereignistabelle haben. Weitere Informationen dazu finden Sie unter Ereignistabelle aktivieren.

Standard-Ereignistabelle

Snowflake enthält eine Standard-Ereignistabelle namens SNOWFLAKE.TELEMETRY.EVENTS. Sie können diese Ereignistabelle verwenden, anstatt Ihre eigene zu erstellen. Wenn Sie nicht bereits eine aktive Ereignistabelle haben, macht Snowflake die Standardtabelle zur aktiven Ereignistabelle.

Standardmäßig enthält Snowflake auch eine vordefinierte Ansicht namens SNOWFLAKE.TELEMETRY.EVENTS_VIEW-Ansicht, mit der Sie die Daten der Ereignistabelle einer Reihe von Benutzern sicherer zur Verfügung stellen können. Sie können den Zugriff auf die Ansicht mit einer Zeile Zugriffsrichtlinie verwalten.

Bemerkung

Die Standard-Ereignistabelle unterstützt nur eine Teilmenge der DDL-Befehle, die für von Ihnen erstellte Ereignistabellen oder für reguläre Tabellen unterstützt werden. Weitere Informationen dazu finden Sie unter Verwenden von Ereignistabellen.

Rollen für den Zugriff auf die Standard-Ereignistabelle und EVENTS_VIEW

Snowflake enthält die folgenden vordefinierten Anwendungsrollen, mit denen Sie den Zugriff auf die Standard-Ereignistabelle und die EVENTS_VIEW-Ansicht verwalten können.

EVENTS_VIEWER:

Rolle mit Berechtigung zur Ausführung einer SELECT Anweisung auf der Ansicht EVENTS_VIEW.

EVENTS_ADMIN:

Rolle mit den folgenden Berechtigungen:

Verwalten des Zugriffs auf EVENTS_VIEW

Sie können den Zugriff auf Daten in der Ansicht EVENTS_VIEW mit Zeilenzugriffsrichtlinien verwalten. Snowflake bietet gespeicherte Prozeduren, mit denen Sie eine Richtlinie für den Zeilenzugriff zur Ansicht EVENT_VIEW hinzufügen und entfernen können.

Bemerkung

Sie müssen die EVENTS_ADMIN-Rolle haben, um diese Prozeduren auszuführen.

Die Verwendung von Zeilenzugriffsrichtlinien auf Zeilen in der EVENT_VIEW-Ansicht ist ein Feature der Enterprise Edition.

Ereignistabelle erstellen

Um eine neue Ereignistabelle zu erstellen, führen Sie den CREATE EVENT TABLE-Befehl aus und geben einen Namen für die Ereignistabelle an.

Beachten Sie, dass Sie beim Erstellen einer Ereignistabelle keine Spalten angeben. Eine Ereignistabelle hat bereits einen Satz vordefinierter Spalten, die unter Spalten von Ereignistabellen beschrieben sind.

Sie müssen eine Rolle verwenden, die über die CREATE EVENT TABLE-Berechtigung verfügt.

Bemerkung

Die Replikation von Ereignistabellen wird derzeit nicht unterstützt. Alle Ereignistabellen, die in primären Datenbanken enthalten sind, werden bei der Replikation übersprungen.

Um beispielsweise eine Ereignistabelle mit dem Namen my_events zu erstellen, führen Sie die folgende Anweisung aus:

CREATE EVENT TABLE my_database.my_schema.my_events;
Copy

Ereignistabelle aktivieren

Um die Speicherung von Telemetriedaten zu ermöglichen, müssen Sie angeben, dass eine Ereignistabelle eine aktive Ereignistabelle ist.

Um die aktive Ereignistabelle für Ihr Konto anzugeben, führen Sie den Befehl ALTER ACCOUNT aus, und setzen Sie den Parameter EVENT_TABLE auf den Namen Ihrer Ereignistabelle.

Bemerkung

Um diesen Befehl ausführen zu können, müssen Sie die Rolle ACCOUNTADMIN verwenden.

Außerdem müssen Sie über die beiden folgenden Berechtigungen verfügen:

Weitere Informationen zu den für die Ausführung von ALTER ACCOUNT erforderlichen Berechtigungen finden Sie in der Dokumentation zum ALTER ACCOUNT-Befehl.

Um beispielsweise die Ereignistabelle mit dem Namen my_events im Schema my_schema der Datenbank my_database als aktive Ereignistabelle für Ihr Konto einzurichten, führen Sie die folgende Anweisung aus:

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

Wie oben gezeigt, müssen Sie den voll qualifizierten Namen der Ereignistabelle angeben.

Um die Zuordnung einer Ereignistabelle zu einem Konto wieder aufzuheben, führen Sie den Befehl ALTER ACCOUNT aus, und deaktivieren Sie den Parameter EVENT_TABLE. Beispiel:

ALTER ACCOUNT UNSET EVENT_TABLE;
Copy

Sie können den EVENT_TABLE-Wert mit dem Befehl SHOW PARAMETERS bestätigen:

SHOW PARAMETERS LIKE 'event_table' IN ACCOUNT;
Copy