Dynamic table states¶
A dynamic table can be in any of several states during its lifecycle. The following table describes the various dynamic table lifecycle states:
State |
Scheduling state |
Description |
Refresh State |
|
---|---|---|---|---|
INITIALIZING |
RUNNING |
Snowflake is initializing the dynamic table and scheduling its initial refresh. Also refer to Queries Executed While a Dynamic Table is Initializing. |
Not yet refreshed |
|
ACTIVE |
RUNNING |
Dynamic table refreshes are running normally. |
Succeeded |
|
ACTIVE |
RUNNING |
Last refresh was skipped. Future refreshes will be attempted at the normal rate. To prevent refreshes from being skipped, revise the target lag and warehouse sizes. |
SKIPPED |
|
IMPACTED |
RUNNING |
Unable to refresh. One or more of the upstream dynamic tables has failed to refresh. When the upstream problem is corrected, refreshes will automatically resume. |
SKIPPED |
|
IMPACTED |
SUSPENDED |
Skipped because an upstream dynamic table is suspended. When the upstream dynamic table is resumed, refreshes will automatically resume. |
UPSTREAM_SUSPENDED |
|
SUSPENDED |
SUSPENDED |
Skipped because the dynamic table was manually suspended. When the dynamic table is manually resumed, refreshes will automatically resume. |
USER_SUSPENDED |
|
SUSPENDED |
SUSPENDED |
A previously FAILING/SUSPENDED dynamic table was successfully manually refreshed. The dynamic table must be manually resumed. |
SUSPENDED_DUE_TO_ERRORS |
|
FAILING |
RUNNING |
Last refresh had an error, such as the dynamic table definition becoming invalid or temporary infrastructure issues. Additional refreshes will be attempted at the regular refresh intervals. |
FAILED or CANCELLED |
|
FAILING |
SUSPENDED |
Last five (5) refreshes failed. The dynamic table is now auto-suspended and will not be refreshed until manually resumed. |
SUSPENDED_DUE_TO_ERRORS |
Queries executed while a dynamic table is initializing
Note
Queries on initializing dynamic tables will return an error.
To avoid such errors, wait for the next scheduled refresh or use the ALTER DYNAMIC TABLE command to perform a manual refresh.
Suspended reason codes
code |
Description |
---|---|
USER_SUSPENDED |
Dynamic table suspended by user. |
UPSTREAM_SUSPENDED |
Dynamic table suspended because some of its inputs were suspended. |
SUSPENDED_DUE_TO_ERRORS |
Dynamic table suspended due to five (5) consecutive errors. |
Note
A dynamic table is suspended if there are five or more continuous refresh errors. Dynamic tables suspended due to refresh errors are commonly referred to as Auto suspended because they were suspended by the system and not through user action.
If other dynamic tables depend on the suspended dynamic table, they are also suspended. SCHEDULING_STATE describes the current state of a dynamic table.
To view the scheduling state of the dynamic table, call the DYNAMIC_TABLE_GRAPH_HISTORY table function, and examine the SCHEDULING_STATE column.
Note
A dynamic table is suspended if the system observes five continuous refresh errors. Dynamic tables suspended due to refresh errors are commonly referred to as auto-suspended because they are suspended by the system and not through user action.
Any dynamic tables that depend on the suspended dynamic table are also suspended. SCHEDULING_STATE describes the current state of a dynamic table.
To view the scheduling state of the dynamic table, call the DYNAMIC_TABLE_GRAPH_HISTORY table function, and examine the SCHEDULING_STATE column.