Verwalten von Streams

Unter diesem Thema werden die administrativen Aufgaben beschrieben, die mit der Verwaltung von Streams verbunden sind.

Unter diesem Thema:

Aktivieren der Änderungsverfolgung für Ansichten und zugrunde liegende Tabellen

Damit Benutzer Änderungsdaten zu einer Ansicht abfragen können, muss die Änderungsverfolgung für die Ansicht und die zugrunde liegenden Tabellen aktiviert sein.

Nur der Objekteigentümer (d. h. die Rolle mit der OWNERSHIP-Berechtigung) für eine bestimmte Ansicht oder zugrunde liegende Tabellen kann die Änderungsverfolgung aktivieren.

Die folgenden Optionen stehen zur Verfügung, um die Änderungsverfolgung zu aktivieren:

  1. Erstellen eines Streams auf der Ansicht mit der Rolle des Ansichtseigentümers. Mit dieser Aktion wird die Änderungsverfolgung für die Ansicht aktiviert.

    Wenn dieselbe Rolle auch Eigentümer der zugrunde liegenden Tabellen ist, wird die Änderungsverfolgung auch für die Tabellen aktiviert. Andernfalls muss der Tabelleneigentümer die Änderungsverfolgung für die Tabellen explizit aktivieren. Diese Schritte werden unter Änderungsverfolgung auf den zugrunde liegenden Tabellen explizit aktivieren (unter diesem Thema) erläutert.

  2. Explizites Aktivieren der Änderungsverfolgung auf der Ansicht und den Tabellen. Eine Anleitung dazu finden Sie in den übrigen Anleitungen in diesem Abschnitt.

Explizites Aktivieren der Änderungsverfolgung auf Ansichten

Legen Sie den Parameter CHANGE_TRACKING beim Erstellen einer Ansicht (mit CREATE VIEW) oder später (mit ALTER VIEW) fest.

Beachten Sie, dass die Änderungsverfolgung auch in den zugrunde liegenden Tabellen der Ansicht explizit aktiviert sein muss. Eine Anleitung dazu finden Sie unter Änderungsverfolgung auf den zugrunde liegenden Tabellen explizit aktivieren (unter diesem Thema).

Erstellen Sie zum Beispiel eine sichere Ansicht im aktuellen Schema, die eine Teilmenge von Zeilen aus einer Tabelle auswählt:

CREATE SECURE VIEW v CHANGE_TRACKING = TRUE AS SELECT col1, col2 FROM t;
Copy

Ändern Sie zum Beispiel eine bestehende Ansicht, um die Änderungsverfolgung zu aktivieren:

ALTER VIEW v2 SET CHANGE_TRACKING = TRUE;
Copy

Änderungsverfolgung auf den zugrunde liegenden Tabellen explizit aktivieren

Wichtig

Beim Erstellen oder Ändern einer Ansicht zur Angabe von CHANGE_TRACKING werden die zugehörigen abhängigen Datenbankobjekte automatisch aktualisiert, um die Änderungsverfolgung zu aktivieren. Während der Operation sind die zugrunde liegenden Ressourcen gesperrt, was zu Latenzen bei DDL/DML-Operationen führen kann. Weitere Informationen dazu finden Sie unter Ressourcensperrung.

Wenn der Benutzer, der die Anweisung ausführt, keine Rolle mit ausreichenden Berechtigungen (OWNERSHIP) angegeben hat, schlägt die Anweisung fehl. Die zugrunde liegenden Datenbankobjekte werden nicht aktualisiert, und die Sperren werden aufgehoben.

Legen Sie den Parameter CHANGE_TRACKING beim Erstellen einer Tabelle (mit CREATE TABLE) oder später (mit ALTER TABLE) fest.

Erstellen Sie beispielsweise eine Tabelle im aktuellen Schema:

CREATE TABLE t (col1 STRING, col2 NUMBER) CHANGE_TRACKING = TRUE;
Copy

Ändern Sie beispielsweise eine vorhandene Tabelle, um die Änderungsverfolgung zu aktivieren:

ALTER TABLE t1 SET CHANGE_TRACKING = TRUE;
Copy

Wichtig

Wenn ein TABLE-Objekt erstellt oder geändert wird, um CHANGE_TRACKING zu spezifizieren, wird die Tabelle für die Dauer der Operation gesperrt, was zu Latenzen bei DML-Operationen führen kann. Weitere Informationen dazu finden Sie unter Ressourcensperrung.

Vermeiden des Veraltens von Streams

Um das Veralten von Streams zu verhindern, wird dringend empfohlen, die Änderungsdaten regelmäßig vor dem STALE_AFTER-Zeitstempel zu verbrauchen (d. h. innerhalb der erweiterten Datenaufbewahrungsfrist des Quellobjekts).

Um die Datenaufbewahrungsfrist eines Streams anzuzeigen, führen Sie den Befehl DESCRIBE STREAM oder SHOW STREAMS aus. Der Zeitstempel in der Spalte STALE_AFTER gibt an, wann der Stream voraussichtlich veraltet sein wird (oder wann er veraltet ist, wenn der Zeitstempel in der Vergangenheit liegt). Dieser Zeitstempel wird berechnet, indem der größere der beiden Parameter DATA_RETENTION_TIME_IN_DAYS oder MAX_DATA_EXTENSION_TIME_IN_DAYS zum aktuellen Zeitstempel addiert wird. Wenn der Zeitstempel in der Vergangenheit liegt, kann der Stream bereits veraltet sein. Die Spalte STALE zeigt auch an, ob der Stream voraussichtlich veraltet ist, auch wenn der Stream möglicherweise noch nicht wirklich veraltet ist.

Durch den Verbrauch der Änderungsdaten für einen Stream wird der Zeitstempel STALE_AFTER hinausgeschoben.

Weitere Informationen dazu finden Sie unter Datenaufbewahrungsfrist und Veraltung.

Anzeigen und Verwalten von Streams in Snowsight

Um einen Stream in Snowsight anzuzeigen und zu verwalten, gehen Sie wie folgt vor:

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie Data » Databases aus.

  3. Wählen Sie für eine bestimmte Datenbank und ein bestimmtes Schema Streams aus, und wählen Sie den Stream aus, den Sie verwalten möchten.

Wenn Sie den Stream in Snowsight anzeigen, können Sie Folgendes tun:

  • Überprüfen Sie im Abschnitt Details den Tabellennamen, auf den sich der Stream bezieht, den Typ des Streams und ob der Stream veraltet ist oder nicht.

  • Überprüfen Sie die SQL-Anweisung, die zum Erstellen des Streams verwendet wurde.

  • Verwalten Sie die Berechtigungen für den Stream. Siehe Verwalten von Objektberechtigungen mit Snowsight.