- Kategorien:
Systemfunktionen (Systemsteuerung)
SYSTEM$SET_ROW_TIMESTAMP_ON_ALL_SUPPORTED_TABLES¶
Verwenden Sie diese Systemfunktion, um Zeilenzeitstempel für bestehende Tabellen in großen Mengen zu aktivieren.
Diese Funktion fügt die Spalte mit dem Zeilenzeitstempel zu allen bestehenden in Frage kommenden Tabellen innerhalb des Containers hinzu und stellt sicher, dass neu erstellte Tabellen automatisch den Zeilenzeitstempel aktiviert haben.
Um die Funktion erfolgreich auszuführen, benötigen Sie MODIFY-Berechtigungen für den Container, für den Sie die Funktion aufrufen.
Nachdem Zeilenzeitstempel aktiviert wurden, legen die Tabellen die METADATA$ROW_LAST_COMMIT_TIME-Spalte offen, die den Zeitstempel zurückgibt, wann jede Zeile zuletzt geändert wurde. Dies ermöglicht die Änderungsverfolgung, die inkrementelle Verarbeitung und Time Travel-Abfragen auf Basis der Zeilenänderungszeit. Weitere Informationen dazu finden Sie unter Verwenden von Zeilenzeitstempeln, um die Latenz in Ihren Pipelines zu messen.
Syntax¶
SELECT SYSTEM$SET_ROW_TIMESTAMP_ON_ALL_SUPPORTED_TABLES('<level>', '<qualified_name>')
- The first argument is level: one of :code:`schema`, :code:`database`, or :code:`account`.
- The second argument is the fully qualified name of the container.
Argumente¶
Erforderlich
'level'Containerebene. Kann einer der folgenden Werte sein:
account,database,schema.'qualified_name'Der vollqualifizierte Name des Containers. Beispiel:
my_db.myschemafür Schemaebene.
Beispiele¶
Das folgende Beispiel zeigt, wie Sie Zeilenzeitstempel für alle unterstützten Tabellen innerhalb eines bestimmten Schemas mithilfe einer Systemfunktion aktivieren können. Außerdem wird überprüft, ob das Feature auf vorhandene Tabellen angewendet wird, und es wird die Standardeinstellung auf Schemaebene festgelegt, um sicherzustellen, dass alle zukünftigen Tabellen automatisch die METADATA $ROW_LAST_COMMIT_TIME-Spalte enthalten.
CREATE OR REPLACE DATABASE my_db;
CREATE OR REPLACE SCHEMA my_schema;
USE DATABASE my_db;
USE SCHEMA my_schema;
CREATE OR REPLACE TABLE my_table (id INT, v STRING);
CREATE OR REPLACE TRANSIENT TABLE my_transient_table (id INT, v STRING);
CREATE OR REPLACE TEMP TABLE my_temp_table (id INT, v STRING);
SELECT SYSTEM$SET_ROW_TIMESTAMP_ON_ALL_SUPPORTED_TABLES(
'schema',
'my_db.my_schema'
);
-- System function sets the container default so that new tables will get row timestamp going forward
SHOW PARAMETERS LIKE 'ROW_TIMESTAMP_DEFAULT' IN SCHEMA my_db.my_schema;
INSERT INTO my_table VALUES (1, 'a'), (2, 'b');
INSERT INTO my_transient_table VALUES (10, 'x');
INSERT INTO my_temp_table VALUES (100, 'tmp');
SELECT ID, METADATA$ROW_LAST_COMMIT_TIME FROM my_table ORDER BY ID;
SELECT ID, METADATA$ROW_LAST_COMMIT_TIME FROM my_transient_table ORDER BY ID;
SELECT ID, METADATA$ROW_LAST_COMMIT_TIME FROM my_temp_table ORDER BY ID;