Einrichten und Verwalten einer Ereignistabelle im Anbieterkonto

Unter diesem Thema wird beschrieben, wie Anbieter eine Ereignistabelle einrichten und die gemeinsame Nutzung von Ereignissen für eine App verwalten können.

Richten Sie in jeder Region eine Ereignistabelle in der Anbieterorganisation ein

Um die Protokollmeldungen und Trace-Ereignisse zu sammeln, die ein Verbraucher freigibt, muss ein Anbieter eine Ereignistabelle einrichten, indem er Folgendes tut:

  1. Konto als Ereigniskonto festlegen.

  2. Ereignistabelle im Ereigniskonto erstellen.

  3. Ereignistabelle als aktive Ereignistabelle im Konto festlegen.

Wichtig

Wenn ein Anbieter nicht über ein Konto und eine aktive Ereignistabelle in der Region verfügt, in der die App installiert ist, bevor der Verbraucher eine App installiert, werden Ereignisse und Protokollmeldungen verworfen.

Konto als Ereigniskonto festlegen

Um freigegebene Protokolle und Ereignisse zu speichern, muss ein Anbieter ein Konto auswählen, das eine Ereignistabelle enthält. Dies kann jedes Konto sein, auf das der Anbieter Zugriff hat. Wenn eine Organisation jedoch mehrere Anbieter hat, die Anwendungspakete veröffentlichen, sollten Sie die Verwendung eines Snowflake-Kontos in Betracht ziehen, das speziell zum Speichern freigegebener Ereignisse der Verbraucher bestimmt ist.

Die folgenden Einschränkungen gelten für Konten, die zum Speichern freigegebener Ereignisse verwendet werden:

  • Sie müssen die Rolle ORGADMIN verwenden, um ein Konto für das Speichern von Ereignissen festzulegen.

  • Das Konto muss über eine aktive Ereignistabelle verfügen.

  • Das angegebene Konto darf keine der folgenden Merkmal aufweisen:

    • Konto ist gesperrt oder ausgesetzt.

    • Konto ist ein Leserkonto.

    • Konto ist ein Testkonto.

    • Konto ist ein von Snowflake verwaltetes Konto.

Bemerkung

Anbieter können Protokolleinträge und freigegebene Ereignisse nur für die Region sammeln, in der der Verbraucher die App installiert hat. Daher müssen Anbieter in jeder Region, in der Verbraucher die Ereignisfreigabe für eine App konfigurieren, ein Ereignisakonto zum Speichern freigegebener Ereignisse einrichten.

Um ein Konto als Ereigniskonto für eine Region einzustellen, rufen Sie die SYSTEM$SET_EVENT_SHARING_ACCOUNT_FOR_REGION-Systemfunktion auf, wie im folgenden Beispiel gezeigt:

SELECT SYSTEM$SET_EVENT_SHARING_ACCOUNT_FOR_REGION('<snowflake_region>', '<region_group>', '<account_name>')
Copy

Wobei:

snowflake_region

Gibt den Namen der Region an, in der sich das Konto befindet, z. B. AWS_US_WEST_2, AWS_US_EAST_1

region_group

Gibt die Regionsgruppe an, z. B. PUBLIC. Weitere Informationen dazu finden Sie unter Regionsgruppen.

account_name

Gibt den Kontonamen an. Wenn in der angegebenen Region bereits ein anderes Konto als Ereigniskonto eingerichtet ist, wird bei Ausführung dieses Befehls das hier angegebene Konto zum neuen Ereigniskonto.

Ereignistabelle im Ereigniskonto erstellen

Um eine Ereignistabelle zu erstellen, führen Sie den CREATE EVENT TABLE-Befehl aus, wie im folgenden Beispiel gezeigt:

CREATE EVENT TABLE event_db.event_schema.my_event_table;
Copy

Dieser Befehl die Datenbank und das Schema angibt, die die Ereignistabelle enthalten.

Legen Sie die Ereignistabelle als aktive Ereignistabelle fest

Ein Konto kann mehrere Ereignistabellen haben, aber es kann immer nur eine als aktive Ereignistabelle in einem Snowflake-Konto eingestellt werden. Ohne eine aktive Ereignistabelle werden die Meldungen und Ereignisse, die der Verbraucher teilt, verworfen.

Nachdem Sie die Tabelle der Ereignisse erstellt haben, verwenden Sie ALTER ACCOUNT … SET EVENT_TABLE, um festzulegen, dass die Ereignistabelle die aktive Tabelle für das Konto ist:

ALTER ACCOUNT SET EVENT_TABLE=event_db.event_schema.my_event_table;
Copy

Ein Konto als Ereigniskonto zurücksetzen

Um ein Konto als Ereigniskonto für eine Region zurückzusetzen, rufen Sie die SYSTEM$UNSET_EVENT_SHARING_ACCOUNT_FOR_REGION-Systemfunktion auf:

SELECT SYSTEM$UNSET_EVENT_SHARING_ACCOUNT_FOR_REGION('<snowflake_region>', '<region_group>', '<account_name>')
Copy

Wobei:

snowflake_region

Gibt den Namen der Region an, in der sich das Konto befindet, z. B. AWS_US_WEST_2

region_group

Gibt die Regionsgruppe an, z. B. PUBLIC.

account_name

Gibt den Kontonamen an.

Zeigen Sie die Ereigniskonten in einer Organisation an

Um Ereigniskonten in der Organisation eines Anbieters anzuzeigen, rufen Sie die SYSTEM$SHOW_EVENT_SHARING_ACCOUNTS-Systemfunktion auf:

SELECT SYSTEM$SHOW_EVENT_SHARING_ACCOUNTS()
Copy

Bemerkung

Zum Aufrufen dieser Funktion müssen Sie die Rolle ORGADMIN verwenden.

Diese Systemfunktion gibt eine Zeichenfolge im JSON-Format zurück, die eine Liste der in der Organisation vorhandenen Ereigniskonten enthält. Da die Metadaten einige Zeit brauchen, um sich in alle Regionen zu verbreiten, kann es bei dieser Funktion zu einer kurzen Verzögerung kommen, bevor das aktuellste Konto für Ereignisse angezeigt wird, nachdem der Benutzer das Konto für die Organisation eingestellt oder zurückgesetzt hat.

In einem Anwendungspaket definierte Werte für Protokolliergrad und Ablaufverfolgungsereignis-Ebene anzeigen

Verwenden Sie den SHOW VERSIONS-Befehl, um den Protokolliergrad der in einem Anwendungspaket definierten Versionen einer Anwendung anzuzeigen, wie im folgenden Beispiel gezeigt:

SHOW VERSIONS
  IN APPLICATION PACKAGE HelloSnowflake;
Copy

In Ereignistabelle gespeicherte Protokolleinträge und Ereignisse anzeigen

Um die in der Ereignistabelle gespeicherten Protokolleinträge und Ereignisse anzuzeigen, verwenden Sie den Befehl SELECT wie im folgenden Beispiel gezeigt:

SELECT * FROM EVENT_DB.EVENT_SCHEMA.MY_EVENT_TABLE
Copy

Weitere Informationen zur Abfrage der Ereignistabelle finden Sie im Folgenden:

Unter Spalten von Ereignistabellen finden Sie Informationen zu den Spalten der Ereignistabelle.

Für den Anbieter verfügbare Informationen zu freigegebenen Ereignissen

In den folgenden Abschnitten werden die Informationen beschrieben, die das Native Apps Framework für Anbieter freigibt.

Für den Anbieter freigegebener Ereigniskontext der App

Damit Anbieter die Quellen von freigegebenen Ereignissen leichter identifizieren können, werden in die Spalte RESOURCE_ATTRIBUTES der Ereignistabelle die folgenden Felder befüllt, wenn sie für den Anbieter freigegeben werden:

  • snow.application.package.name

  • snow.application.consumer.organization

  • snow.application.consumer.name

  • snow.listing.name

  • snow.listing.global_name

Felder, die nicht für Anbieter freigegeben werden

Zum Schutz der Verbraucherdaten werden die folgenden Felder der Spalte RESOURCE_ATTRIBUTES nicht für den Anbieter freigegeben:

  • snow.database.id

  • snow.database.name

  • snow.schema.id

  • snow.executable.id

  • snow.owner.name

  • snow.owner.id

  • snow.warehouse.name

  • snow.warehouse.id

  • snow.query.id

  • snow.session.id

  • snow.session.role.primary.name

  • snow.session.role.primary.id

  • snow.user.name

  • snow.user.id

  • db.user

Anstatt die Felder snow.database.name und snow.query.id direkt für den Anbieter freizugeben, gibt Snowflake die Hash-Werte (SHA-1) dieser beiden Felder über folgende Felder frei:

  • snow.database.hash

  • snow.query.hash

Snowflake stellt die Funktion SHA-1 bereit, mit der Sie diese Attribute maskieren können. Verbraucher können die Hash-Werte für den Datenbanknamen und die Abfrage-ID berechnen und sie beim Kontaktieren des Anbieters als Referenzwerte verwenden.