Skip to main content

tasks

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

Overview

Nametasks
TypeResource
Idsnowflake.task.tasks

Fields

NameDatatypeDescription
idstringAn ID for the current task.
namestringA Snowflake object identifier. If the identifier contains spaces or special characters, the entire string must be enclosed in double quotes. Identifiers enclosed in double quotes are also case-sensitive.
allow_overlapping_executionbooleanSpecifies whether to allow multiple instances of the DAG to run concurrently.
commentstringSpecifies a comment for the task.
conditionstringSpecifies a Boolean SQL expression condition; multiple conditions joined with AND/OR are supported
configobjectTask Config
created_onstringThe time the task was created on.
database_namestringThe name of the parent database for the task.
definitionstringThe SQL definition for the task. Any one of single SQL statement, call to stored procedure, or procedural logic using Snowflake scripting.
error_integrationstringSpecifies the name of the notification integration used to communicate with Amazon SNS, MS Azure Event Grid, or Google Pub/Sub.
finalizestringSpecifies the name of the root task that the finalizer task is associated with.
last_committed_onstringThe time the task was last committed on.
last_suspended_onstringThe time the task was last suspended on.
ownerstringThe role that owns the task.
owner_role_typestringThe role type of the task owner.
predecessorsarraySpecifies one or more predecessor tasks for the current task
scheduleobjectSpecifies the schedule for periodically running the task.
schema_namestringThe name of the parent schema for the task.
serverless_task_max_statement_sizestringSpecifies the maximum allowed warehouse size for the serverless task. Minimum XSMALL, Maximum XXLARGE. This parameter only applies to serverless tasks.
serverless_task_min_statement_sizestringSpecifies the minimum allowed warehouse size for the serverless task. Minimum XSMALL, Maximum XXLARGE. This parameter only applies to serverless tasks.
session_parametersobjectSession Parameters for the task at runtime.
statestringThe state of the task. Must be one of started or suspended.
suspend_task_after_num_failuresintegerSpecifies the number of consecutive failed task runs after which the current task is suspended automatically.
target_completion_intervalobjectA schedule for executing a task at specified intervals of minutes.
task_auto_retry_attemptsintegerRoot task settable only. Specifies the number of automatic task graph retry attempts. Valid range is 0 to 30. When not specified, no retry would happen.
task_relationsstringDisplays the relationship between the root task and its corresponding finalizer tasks.
user_task_managed_initial_warehouse_sizestringSpecifies the size of the compute resources to provision for the first run of the task. This parameter only applies to serverless tasks.
user_task_timeout_msintegerSpecifies the time limit on a single run of the task before it times out (in milliseconds).
warehousestringA Snowflake object identifier. If the identifier contains spaces or special characters, the entire string must be enclosed in double quotes. Identifiers enclosed in double quotes are also case-sensitive.

Methods

NameAccessible byRequired ParamsDescription
fetch_taskSELECTdatabase_name, name, schema_name, endpointFetch a task using the describe command output.
list_tasksSELECTdatabase_name, schema_name, endpointLists tasks under the database and schema, with show options as query parameters.
create_taskINSERTdatabase_name, schema_name, data__definition, data__name, endpointCreate a task, with standard create modifiers as query parameters. See the Task component definition for what is required to be provided in the request body.
delete_taskDELETEdatabase_name, name, schema_name, endpointDelete a task with the task 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.
create_or_alter_taskREPLACEdatabase_name, name, schema_name, data__definition, data__name, endpointCreate a (or alter an existing) task. Even if the operation is just an alter, the full property set must be provided.
execute_taskEXECdatabase_name, name, schema_name, endpointExecute a task -- this is equivalent to EXECUTE IMMEDIATE.
resume_taskEXECdatabase_name, name, schema_name, endpointResumes a suspended task object. This is equivalento an ALTER TASK ... RESUME.
suspend_taskEXECdatabase_name, name, schema_name, endpointSuspends a running task. This is equivalent to an ALTER TASK ... SUSPEND.

SELECT examples

Lists tasks under the database and schema, with show options as query parameters.

SELECT
id,
name,
allow_overlapping_execution,
comment,
condition,
config,
created_on,
database_name,
definition,
error_integration,
finalize,
last_committed_on,
last_suspended_on,
owner,
owner_role_type,
predecessors,
schedule,
schema_name,
serverless_task_max_statement_size,
serverless_task_min_statement_size,
session_parameters,
state,
suspend_task_after_num_failures,
target_completion_interval,
task_auto_retry_attempts,
task_relations,
user_task_managed_initial_warehouse_size,
user_task_timeout_ms,
warehouse
FROM snowflake.task.tasks
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 tasks resource.

/*+ create */
INSERT INTO snowflake.task.tasks (
data__name,
data__warehouse,
data__schedule,
data__comment,
data__finalize,
data__task_auto_retry_attempts,
data__config,
data__session_parameters,
data__definition,
data__predecessors,
data__user_task_managed_initial_warehouse_size,
data__target_completion_interval,
data__serverless_task_min_statement_size,
data__serverless_task_max_statement_size,
data__user_task_timeout_ms,
data__suspend_task_after_num_failures,
data__condition,
data__allow_overlapping_execution,
data__error_integration,
database_name,
schema_name,
endpoint
)
SELECT
'{{ name }}',
'{{ warehouse }}',
'{{ schedule }}',
'{{ comment }}',
'{{ finalize }}',
'{{ task_auto_retry_attempts }}',
'{{ config }}',
'{{ session_parameters }}',
'{{ definition }}',
'{{ predecessors }}',
'{{ user_task_managed_initial_warehouse_size }}',
'{{ target_completion_interval }}',
'{{ serverless_task_min_statement_size }}',
'{{ serverless_task_max_statement_size }}',
'{{ user_task_timeout_ms }}',
'{{ suspend_task_after_num_failures }}',
'{{ condition }}',
'{{ allow_overlapping_execution }}',
'{{ error_integration }}',
'{{ database_name }}',
'{{ schema_name }}',
'{{ endpoint }}'
;

REPLACE example

Replaces all fields in the specified tasks resource.

/*+ update */
REPLACE snowflake.task.tasks
SET
name = '{{ name }}',
warehouse = '{{ warehouse }}',
schedule = '{{ schedule }}',
comment = '{{ comment }}',
finalize = '{{ finalize }}',
task_auto_retry_attempts = '{{ task_auto_retry_attempts }}',
config = '{{ config }}',
session_parameters = '{{ session_parameters }}',
definition = '{{ definition }}',
predecessors = '{{ predecessors }}',
user_task_managed_initial_warehouse_size = '{{ user_task_managed_initial_warehouse_size }}',
target_completion_interval = '{{ target_completion_interval }}',
serverless_task_min_statement_size = '{{ serverless_task_min_statement_size }}',
serverless_task_max_statement_size = '{{ serverless_task_max_statement_size }}',
user_task_timeout_ms = '{{ user_task_timeout_ms }}',
suspend_task_after_num_failures = '{{ suspend_task_after_num_failures }}',
condition = '{{ condition }}',
allow_overlapping_execution = true|false,
error_integration = '{{ error_integration }}'
WHERE
database_name = '{{ database_name }}'
AND name = '{{ name }}'
AND schema_name = '{{ schema_name }}'
AND data__definition = '{{ data__definition }}'
AND data__name = '{{ data__name }}'
AND endpoint = '{{ endpoint }}';

DELETE example

Deletes the specified tasks resource.

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