Dynamische Tabellen manuell aktualisieren¶
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:
ALTER DYNAMIC TABLE my_dynamic_table REFRESH
Melden Sie sich bei Snowsight an.
Wählen Sie Monitoring » Dynamic Tables aus.
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 task
CREATE TASK my_dt_refresh_task
WAREHOUSE = my_wh
SCHEDULE = 'USING CRON 0 0 * * * America/Los_Angeles' -- Example: daily at midnight PST
COMMENT = 'Daily 5pm PT manual refresh of my_dynamic_table'
AS
ALTER DYNAMIC TABLE my_dynamic_table REFRESH;
-- Enable the task
ALTER TASK my_dt_refresh_task RESUME;
-- Show the task
SHOW TASKS LIKE 'my_dt_refresh_task';
+------------+-----------------+-------------------------------------+---------------+-------------+--------------+-------------------------------------------------+-----------|-------------------------------------------+------------------+---------+----------------------------------------------+-----------+-----------------------------+-------------------+-------------------------------|-------------------+-----------------+--------+---------------------+-----------------------+---------------------+-----------------+----------------------------+-----------------+
| CREATED_ON | NAME | ID | DATABASE_NAME | SCHEMA_NAME | OWNER | COMMENT | WAREHOUSE | SCHEDULE | [ ] PREDECESSORS | STATE | DEFINITION | CONDITION | ALLOW_OVERLAPPING_EXECUTION | ERROR_INTEGRATION | LAST_COMMITTED_ON | LAST_SUSPENDED_ON | OWNER_ROLE_TYPE | CONFIG | TASK_RELATIONS | LAST_SUSPENDED_REASON | SUCCESS_INTEGRATION | SCHEDULING_MODE | TARGET_COMPLETION_INTERVAL | EXECUTE_AS_USER |
|------------+-----------------+-------------------------------------+---------------+-------------+--------------+-------------------------------------------------+-----------+-------------------------------------------+------------------+---------+----------------------------------------------+-----------+-----------------------------+-------------------+-------------------------------+-------------------+-----------------+--------+---------------------+-----------------------+---------------------+-----------------+----------------------------+-----------------|
| 2025-10-02 | DT_REFRESH_TASK | 01bf6f0d-690f-f373-0000-000000025e3d| mydb | my_schema | ACCOUNTADMIN | Daily 5pm PT manual refresh of my_dynamic_table | mywh | USING CRON 0 17 * * * America/Los_Angeles | [] | Started | ALTER DYNAMIC TABLE my_dynamic_table REFRESH | null | false | null | 2025-10-02 05:08:52.897 +0000 | null | ROLE | null | {"Predecessors":[]} | null | null | null | null | null |
+------------+-----------------+-------------------------------------+---------------+-------------+--------------+-------------------------------------------------+-----------|-------------------------------------------+------------------+---------+----------------------------------------------+-----------+-----------------------------+-------------------+-------------------------------|-------------------+-----------------+--------+---------------------+-----------------------+---------------------+-----------------+----------------------------+-----------------+
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.