Actualiser manuellement les tables dynamiques¶
Vous pouvez actualiser manuellement une table dynamique pour y inclure les données les plus récentes sans attendre la prochaine actualisation planifiée. Cela est utile pour les mises à jour uniques, ou lorsqu’une table a une latence cible importante et que la prochaine actualisation a lieu beaucoup plus tard.
Astuce
Évitez les actualisations manuelles fréquentes sur les tables dynamiques avec des tables dynamiques en aval qui sont censées s’actualiser en fonction d’une latence cible. Ces types d’actualisations manuelles peuvent entraîner l’omission des actualisations planifiées et empêcher la mise à jour des tables en aval.
Pour effectuer une actualisation manuelle, utilisez la commande ALTER DYNAMIC TABLE … REFRESH ou l’Snowsight, comme montré dans les étapes suivantes :
ALTER DYNAMIC TABLE my_dynamic_table REFRESH
Connectez-vous à Snowsight.
Sélectionnez Monitoring » Dynamic Tables.
Recherchez votre table dynamique dans la liste, puis sélectionnez
» Refresh Manually.
Pour les situations qui nécessitent un calendrier d’actualisation précis, telles que l’alignement des actualisations avec des planifications système externes ou des fenêtres de traitement par lots, vous pouvez utiliser une tâche avec une expression CRON pour déclencher l’actualisation.
Par exemple :
-- 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 |
+------------+-----------------+-------------------------------------+---------------+-------------+--------------+-------------------------------------------------+-----------|-------------------------------------------+------------------+---------+----------------------------------------------+-----------+-----------------------------+-------------------+-------------------------------|-------------------+-----------------+--------+---------------------+-----------------------+---------------------+-----------------+----------------------------+-----------------+
Dans la plupart des cas, Snowflake recommande d’utiliser la latence cible, qui optimise la fréquence d’actualisation et peut réduire les coûts par rapport aux planifications CRON fixes qui peuvent s’exécuter inutilement.