Skip to main content

dynamic_tables

Creates, updates, deletes, gets or lists a dynamic_tables resource.

Overview

Namedynamic_tables
TypeResource
Idsnowflake.dynamic_table.dynamic_tables

Fields

NameDatatypeDescription
namestringSpecifies the name for the dynamic table, must be unique for the schema in which the dynamic table is created
automatic_clusteringbooleanIf Automatic Clustering is enabled for your account, specifies whether it is explicitly enabled or disabled for the dynamic table.
budgetstringName of the budget if the object is monitored by a budget
bytesintegerNumber of bytes that will be scanned if the entire table is scanned in a query. Note that this number may be different than the number of actual physical bytes stored on-disk for the table
cluster_byarraySpecifies one or more columns or column expressions in the dynamic table as the clustering key
columnsarray
commentstringSpecifies a comment for the dynamic table.
created_onstringDate and time when the dynamic table was created.
data_retention_time_in_daysintegerSpecifies the retention period for the dynamic table so that Time Travel actions (SELECT, CLONE) can be performed on historical data in the dynamic table
database_namestringDatabase in which the dynamic table is stored
initializestringSpecifies the behavior of the initial refresh of the dynamic table
kindstringSpecifies the dynamic table type, permanent (default) or transient.
max_data_extension_time_in_daysintegerSpecifies the retention period for the dynamic table so that Time Travel actions (SELECT, CLONE) can be performed on historical data in the dynamic table
ownerstringRole that owns the table
owner_role_typestringThe type of role that owns the object.
querystringSpecifies the query whose results the dynamic table should contain
refresh_modestringSpecifies the refresh type for the dynamic table
rowsintegerNumber of rows in the dynamic table.
scheduling_statestringScheduling state (RUNNING or SUSPENDED)
schema_namestringSchema in which the dynamic table is stored
target_lagobjectSpecifies the schedule for periodically refreshing the dynamic table.
warehousestringSpecifies the name of the warehouse that provides the compute resources for refreshing the dynamic table

Methods

NameAccessible byRequired ParamsOptional ParamsDescription
fetch_dynamic_tableSELECTdatabase_name, name, schema_name, endpoint-Fetch a Dynamic Table.
list_dynamic_tablesSELECTdatabase_name, schema_name, endpointlike, startsWith, showLimit, fromName, deepLists the dynamic tables under the database and schema.
create_dynamic_tableINSERTdatabase_name, schema_name, data__name, data__query, data__target_lag, data__warehouse, endpointcreateModeCreate a dynamic table, with standard create modifiers as query parameters. See the Dynamic Table component definition for what is required to be provided in the request body.
delete_dynamic_tableDELETEdatabase_name, name, schema_name, endpointifExistsDelete a dynamic table with the given name. If ifExists is used, the operation will succeed even if the object does not exist. Otherwise, there will be a failure if the drop is unsuccessful.
clone_dynamic_tableEXECdatabase_name, name, schema_name, data__name, endpointcreateMode, copyGrants, targetDatabase, targetSchemaCreate a new dynamic table by cloning from the specified resource
refresh_dynamic_tableEXECdatabase_name, name, schema_name, endpointifExistsSpecifies that the dynamic table should be manually refreshed
resume_dynamic_tableEXECdatabase_name, name, schema_name, endpointifExistsResume refreshes on the dynamic table
resume_recluster_dynamic_tableEXECdatabase_name, name, schema_name, endpointifExistsResume recluster of a dynamic table
suspend_dynamic_tableEXECdatabase_name, name, schema_name, endpointifExistsSuspend refreshes on the dynamic table
suspend_recluster_dynamic_tableEXECdatabase_name, name, schema_name, endpointifExistsSuspend recluster of a dynamic table
swap_with_dynamic_tableEXECdatabase_name, name, schema_name, targetName, endpointifExists, targetDatabase, targetSchemaSwap with another dynamic table
undrop_dynamic_tableEXECdatabase_name, name, schema_name, endpoint-Undrop specified dynamic table
Optional Parameter Details
NameDescriptionTypeDefault
copyGrantsQuery parameter to enable copy grants when creating the object.booleanfalse
createModeQuery parameter allowing support for different modes of resource creation. Possible values include: - errorIfExists: Throws an error if you try to create a resource that already exists. - orReplace: Automatically replaces the existing resource with the current one. - ifNotExists: Creates a new resource when an alter is requested for a non-existent resource.stringerrorIfExists
deepOptionally includes dependency information of the dynamic table.boolean-
fromNameQuery parameter to enable fetching rows only following the first row whose object name matches the specified string. Case-sensitive and does not have to be the full name.string-
ifExistsQuery parameter that specifies how to handle the request for a resource that does not exist: - true: The endpoint does not throw an error if the resource does not exist. It returns a 200 success response, but does not take any action on the resource. - false: The endpoint throws an error if the resource doesn't exist.booleanfalse
likeQuery parameter to filter the command output by resource name. Uses case-insensitive pattern matching, with support for SQL wildcard characters.string-
showLimitQuery parameter to limit the maximum number of rows returned by a command.integer-
startsWithQuery parameter to filter the command output based on the string of characters that appear at the beginning of the object name. Uses case-sensitive pattern matching.string-
targetDatabaseDatabase of the newly created dynamic table. Defaults to the source table's database.string-
targetSchemaSchema of the newly created dynamic table. Defaults to the source table's schema.string-

SELECT examples

Lists the dynamic tables under the database and schema.

SELECT
name,
automatic_clustering,
budget,
bytes,
cluster_by,
columns,
comment,
created_on,
data_retention_time_in_days,
database_name,
initialize,
kind,
max_data_extension_time_in_days,
owner,
owner_role_type,
query,
refresh_mode,
rows,
scheduling_state,
schema_name,
target_lag,
warehouse
FROM snowflake.dynamic_table.dynamic_tables
WHERE database_name = '{{ database_name }}'
AND schema_name = '{{ schema_name }}'
AND endpoint = '{{ endpoint }}';

INSERT example

Use the following StackQL query and manifest file to create a new dynamic_tables resource.

/*+ create */
INSERT INTO snowflake.dynamic_table.dynamic_tables (
data__name,
data__kind,
data__columns,
data__target_lag,
data__refresh_mode,
data__initialize,
data__warehouse,
data__cluster_by,
data__query,
data__data_retention_time_in_days,
data__max_data_extension_time_in_days,
data__comment,
database_name,
schema_name,
endpoint
)
SELECT
'{{ name }}',
'{{ kind }}',
'{{ columns }}',
'{{ target_lag }}',
'{{ refresh_mode }}',
'{{ initialize }}',
'{{ warehouse }}',
'{{ cluster_by }}',
'{{ query }}',
'{{ data_retention_time_in_days }}',
'{{ max_data_extension_time_in_days }}',
'{{ comment }}',
'{{ database_name }}',
'{{ schema_name }}',
'{{ endpoint }}'
;

DELETE example

Deletes the specified dynamic_tables resource.

/*+ delete */
DELETE FROM snowflake.dynamic_table.dynamic_tables
WHERE database_name = '{{ database_name }}'
AND name = '{{ name }}'
AND schema_name = '{{ schema_name }}'
AND endpoint = '{{ endpoint }}';