CREATE DYNAMIC TABLE¶
Erstellt eine dynamische Tabelle auf Basis einer angegebenen Abfrage.
Unter diesem Thema:
Syntax¶
CREATE [ OR REPLACE ] DYNAMIC TABLE <name>
TARGET_LAG = { '<num> { seconds | minutes | hours | days }' | DOWNSTREAM }
WAREHOUSE = <warehouse_name>
AS <query>
[ COMMENT = '<string_literal>' ]
Erforderliche Parameter¶
name
Gibt den Bezeichner (d. h. den Namen) für die dynamische Tabelle an. Dieser muss für das Schema, in dem die dynamische Tabelle erstellt wird, eindeutig sein.
Darüber hinaus muss der Bezeichner mit einem Buchstaben beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B.
"My object"
). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.
TARGET_LAG = { num { seconds | minutes | hours | days } | DOWNSTREAM }
Gibt die Verzögerung für die dynamische Tabelle an:
'num seconds | minutes | hours | days'
Gibt die maximale Zeitspanne an, die der Inhalt der dynamischen Tabelle hinter den Aktualisierungen der Basistabellen zurückbleiben darf.
Beispiel:
Wenn die Daten in der dynamischen Tabelle nicht mehr als 5 Minuten zurückbleiben sollen, geben Sie
5 minutes
an.Wenn die Daten in der dynamischen Tabelle nicht mehr als 5 Stunden zurückbleiben sollen, geben Sie
5 hours
an.
Der Minimumwert ist 1 Minute. Wenn die dynamische Tabelle A von einer anderen dynamischen Tabelle B abhängt, muss die minimale Verzögerung für A größer oder gleich der Verzögerung für B sein.
DOWNSTREAM
Gibt an, dass die dynamische Tabelle nur aktualisiert werden soll, wenn dynamische Tabellen, die von ihr abhängen, aktualisiert werden.
WAREHOUSE = warehouse_name
Gibt den Namen des Warehouses an, das die Computeressourcen für die Aktualisierung der dynamischen Tabelle bereitstellt.
Sie müssen über die Berechtigung USAGE für dieses Warehouse verfügen, um die dynamische Tabelle erstellen zu können.
AS query
Gibt die Abfrage an, deren Ergebnisse die dynamische Tabelle enthalten soll.
Optionale Parameter¶
COMMENT = 'string_literal'
Gibt einen Kommentar für die dynamische Tabelle an.
Standard: Kein Wert.
Anforderungen an die Zugriffssteuerung¶
Eine Rolle, die zur Ausführung dieses SQL-Befehls verwendet wird, muss mindestens die folgenden Berechtigungen haben:
Berechtigung |
Objekt |
Anmerkungen |
---|---|---|
CREATE DYNAMIC TABLE |
Schema, in dem die dynamische Tabelle erstellt werden soll. |
|
SELECT |
Tabellen, Ansichten und dynamische Tabellen, die für die neue dynamische Tabelle abgefragt werden sollen. |
|
USAGE |
Warehouse, das zum Aktualisieren der Tabelle verwendet werden soll. |
Beachten Sie, dass für die Bearbeitung eines Objekts in einem Schema auch die Berechtigung USAGE für die übergeordnete Datenbank und das Schema erforderlich ist.
Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.
Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.
Nutzungshinweise¶
Wenn Sie den Befehl CREATE DYNAMIC TABLE ausführen, wird die aktuell verwendete Rolle zum Eigentümer der dynamischen Tabelle. Diese Rolle wird verwendet, um Aktualisierungen der dynamischen Tabelle im Hintergrund auszuführen.
Dynamische Tabellen werden aktualisiert, wenn sich die zugrunde liegenden Datenbankobjekte ändern. Die Änderungsverfolgung muss für alle zugrunde liegenden Objekte, die von einer dynamischen Tabelle verwendet werden, aktiviert sein. Siehe Dynamische Tabellen und Änderungsverfolgung.
Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „Benutzer“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.
Beispiele¶
Erstellen Sie eine dynamische Tabelle mit dem Namen product
:
CREATE OR REPLACE DYNAMIC TABLE product TARGET_LAG = '20 minutes' WAREHOUSE = mywh AS SELECT product_id, product_name FROM staging_table;
In diesem Beispiel:
Die dynamische Tabelle materialisiert die Ergebnisse einer Abfrage der Spalten
product_id
undproduct_name
der Tabellestaging_table
.Die Zielverzögerungszeit beträgt 20 Minuten, was bedeutet, dass die Daten in der dynamischen Tabelle idealerweise nicht mehr als 20 Minuten älter sein sollten als die Daten in
staging_table
.Der automatische Aktualisierungsprozess nutzt die Computeressourcen im Warehouse
mywh
zum Aktualisieren der Daten in der dynamischen Tabelle.