Vorhandene dynamische Tabellen ändern¶
In diesem Abschnitt wird beschrieben, wie Sie mit dem Befehl ALTER DYNAMIC TABLE Änderungen an bestehenden dynamischen Tabellen vornehmen:
Warehouse oder der Zielverzögerungszeit für Ihre dynamischen Tabellen ändern
Clustering-Schlüssel Ihrer dynamischen Tabellen umbenennen, austauschen hinzufügen
Warehouse oder der Zielverzögerungszeit für dynamische Tabellen ändern¶
Adjust your dynamic tables‘ warehouse for cost efficiency or performance boost. For more information, see Compute costs and Erläuterungen zur Nutzung von Warehouses für dynamische Tabellen.
Passen Sie die Zielverzögerung Ihrer dynamischen Tabelle an, um in den folgenden Situationen aktuellere Daten zu erhalten:
Sie benötigen aktuellere Daten: Reduzieren Sie die Zielverzögerung, um häufigere Aktualisierungen auszulösen.
Sie möchten die Kosten senken: Daten, die keine Aktualität annähernd in Echtzeit benötigen, können eine längere Zielverzögerung verwenden. Beispielsweise kann eine dynamische Tabelle, die alle 20 Minuten aktualisiert wird, aber nur innerhalb einer Stunde von den Quelltabellen entfernt sein muss, eine Zielverzögerung von 1 Stunde nutzen, um die Computekosten zu senken.
Ihre Pipeline hat Zeitpläne falsch ausgerichtet: Wenn Ihre dynamische Tabelle von anderen Tabellen mit längeren Aktualisierungsintervallen abhängt, stimmen Sie die Zielverzögerung mit diesen Abhängigkeiten ab, um unnötige Aktualisierungen zu vermeiden.
Sie sehen übersprungene Aktualisierungen: Wenn Aktualisierungen länger dauern als Ihre Zielverzögerung, überspringt Snowflake einige Aktualisierungen. Erhöhen Sie die Zielverzögerung, um eine realistische Aktualisierungsdauer zu erreichen.
Weitere Informationen dazu finden Sie unter Die Zielverzögerung dynamischer Tabellen verstehen.
Um das Warehouse oder die Zielverzögerung einer dynamischen Tabelle zu ändern, verwenden Sie den Befehl ALTER DYNAMIC TABLE. Beispiel:
-- Change the warehouse for my_dynamic_table to my_other_wh:
ALTER DYNAMIC TABLE my_dynamic_table SET
WAREHOUSE = my_other_wh;
-- Specify the downstream target lag for a dynamic table:
ALTER DYNAMIC TABLE my_dynamic_table SET
TARGET_LAG = DOWNSTREAM;
Dynamische Tabellen umbenennen¶
Das Umbenennen einer dynamischen Tabelle kann in Szenarien nützlich sein, in denen Sie Skripte oder Anwendungen haben, die auf einen bestimmten Tabellennamen angewiesen sind, und Sie die dynamische Tabelle aktualisieren möchten, ohne Ihr bestehendes Skript zu ändern. Wenn Sie z. B. ein Skript haben, das auf einen bestimmten dynamischen Tabellennamen verweist, können Sie durch Umbenennen der Tabelle die zugrunde liegende Tabelle austauschen, während das Skript unverändert bleibt. Dies gewährleistet Kontinuität und vermeidet die mühsame Aktualisierung mehrerer Referenzen in verschiedenen Skripten oder Prozessen.
Um eine dynamische Tabelle umzubenennen, verwenden Sie den Befehl ALTER DYNAMIC TABLE … RENAME TO. Beispiel:
ALTER DYNAMIC TABLE my_dynamic_table RENAME TO my_new_dynamic_table;
Dynamische Tabellen austauschen¶
Das Austauschen dynamischer Tabellen ermöglicht einen nahtlosen Übergang zwischen Datensätzen oder Tabellenversionen, ohne dass Workflows unterbrochen oder abhängige Skripte geändert werden müssen. Wenn Sie beispielsweise eine neue Version einer Tabelle entwickeln, aber den Namen für laufende Prozesse beibehalten möchten, können Sie mit dem Austausch die alte Tabelle durch die neue ersetzen. Diese Vorgehensweise gewährleistet Kontinuität und ermöglicht Aktualisierungen, Tests oder Upgrades mit minimaler Ausfallzeit oder Unterbrechung.
Um eine dynamische Tabelle auszutauschen, verwenden Sie den Befehl ALTER DYNAMIC TABLE … SWAP WITH. Beachten Sie, dass Sie eine dynamische Tabelle nur mit einer anderen dynamischen Tabelle austauschen können.
Beispiel:
-- Swap my_dynamic_table with the my_new_dynamic_table:
ALTER DYNAMIC TABLE my_dynamic_table SWAP WITH my_new_dynamic_table;
Gruppierungsschlüssel zu dynamischen Tabellen hinzufügen¶
Das Hinzufügen von Gruppierungsschlüsseln zu dynamischen Tabellen kann die Leistung steigern, indem die Effizienz von Abfragen und Aktualisierungsoperationen verbessert wird:
Effizienz der Abfrage: Gruppierungsschlüssel können dazu beitragen, Abfragen zu beschleunigen, genau wie bei regulären Tabellen, indem sie auf gemeinsamen Join-Schlüsseln oder Filterspalten gruppiert werden.
Aktualisierungsoperationen: Gruppierungsschlüssel können dazu beitragen, Aktualisierungen zu beschleunigen, wenn die Gruppierungsschlüssel mit häufigen Änderungsmustern übereinstimmen. Clustering nach Benutzer-ID kann beispielsweise effektiv sein, wenn Sie Aktualisierungen haben, bei denen sich nur wenige Benutzer ändern.
Gruppierungsschlüssel können für eine dynamische Tabelle mit inkrementellem oder vollständigem Aktualisierungsmodus angegeben werden. Bei der vollständigen Aktualisierung wird das Clustering während der Aktualisierung durchgeführt und ein Reclustering im Hintergrund ist nicht erforderlich.
Um eine dynamische Tabelle zu clustern, verwenden Sie den Befehl ALTER DYNAMIC TABLE … CLUSTER BY:
ALTER DYNAMIC TABLE my_dynamic_table CLUSTER BY (date);