Sie können eine dynamische Tabelle manuell aktualisieren, damit sie die neuesten Daten enthält, ohne auf die nächste geplante Aktualisierung warten zu müssen. Dies ist nützlich für einmalige Aktualisierungen oder wenn eine Tabelle eine große Zielverzögerung hat und die nächste Aktualisierung viel später erfolgt.
Tipp
Vermeiden Sie manuelle Aktualisierungen dynamischer Tabellen mit nachgelagerten dynamischen Tabellen, von denen erwartet wird, dass sie gemäß der Zielverzögerung aktualisiert werden. Diese Art von manuellen Aktualisierungen kann dazu führen, dass geplante Aktualisierungen übersprungen werden und die Aktualisierung nachgelagerter Tabellen verhindert wird.
Verwenden Sie zum manuellen Aktualisieren den Befehl ALTER DYNAMIC TABLE … REFRESH oder Snowsight, wie in den folgenden Schritten gezeigt:
Suchen Sie Ihre dynamische Tabelle in der Liste, und wählen Sie dann » Refresh Manually aus.
Für Situationen, die einen genauen Zeitpunkt für die Aktualisierung erfordern, wie z. B. um Aktualisierungen an Zeitplänen des externen Systems oder an Fenstern für die Batchverarbeitung auszurichten, können Sie eine Aufgabe mit einem CRON-Ausdruck verwenden, um die Aktualisierung auszulösen.
Beispiel:
-- Create the taskCREATETASKmy_dt_refresh_taskWAREHOUSE=my_whSCHEDULE='USING CRON 0 0 * * * America/Los_Angeles'-- Example: daily at midnight PSTCOMMENT='Daily 5pm PT manual refresh of my_dynamic_table'ASALTERDYNAMIC TABLEmy_dynamic_tableREFRESH;-- Enable the taskALTERTASKmy_dt_refresh_taskRESUME;-- Show the taskSHOWTASKSLIKE'my_dt_refresh_task';
In den meisten Fällen empfiehlt Snowflake die Verwendung von Zielverzögerungen, die die Aktualisierungshäufigkeit optimieren und die Kosten im Vergleich zu festen CRON-Zeitplänen senken können, die unnötigerweise ausgeführt werden könnten.