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
Copy

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';
Copy
+------------+-----------------+-------------------------------------+---------------+-------------+--------------+-------------------------------------------------+-----------|-------------------------------------------+------------------+---------+----------------------------------------------+-----------+-----------------------------+-------------------+-------------------------------|-------------------+-----------------+--------+---------------------+-----------------------+---------------------+-----------------+----------------------------+-----------------+
| 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.