snowflake.core.task.Task¶
- class snowflake.core.task.Task(name: str, definition: str | StoredProcedureCall, *, warehouse: str | None = None, user_task_managed_initial_warehouse_size: str | None = None, suspend_task_after_num_failures: int | None = None, user_task_timeout_ms: int | None = None, schedule: Cron | timedelta | None = None, allow_overlapping_execution: bool | None = None, error_integration: str | None = None, comment: str | None = None, predecessors: List[str] | None = None, condition: str | None = None, config: Dict[str, Any] | None = None, session_parameters: Dict[str, Any] | None = None, id: str | None = None, created_on: datetime | None = None, last_committed_on: datetime | None = None, last_suspended_on: datetime | None = None, state: str | None = None, database_name: str | None = None, schema_name: str | None = None, owner: str | None = None, owner_role_type: str | None = None)¶
Bases:
object
Represents a Snowflake Task.
Attributes
- sql_definition¶
The definition of the task in SQL text.
It’s a readonly property. To set the
definition
of theTask
, usedefinition
.- If
definition
is aStoredProcedureCall
, the SQL that calls the stored procedure, or the anonymous stored procedure definition will be returned.
- If
- name: str¶
Name of the task.
- definition: str | StoredProcedureCall¶
Definition of the task.
- Any one of the following:
A SQL Statement. It can be a single SQL statement, or a procedural logic using Snowflake Scripting.
A
StoredProcedureCall
instance. This provides a Pythonic way to call an existing stored procedure, or use a Snowflake annonymous stored procedure in Python.
- warehouse¶
The virtual warehouse that provides compute resources for task runs. Omit this parameter if you want to use the serverless Snowflake-managed compute resources for runs of this task.
- user_task_managed_initial_warehouse_size¶
The size of the compute resources to provision for the first run of the task, before a task history is available for Snowflake to determine an ideal size. Once a task has successfully completed a few runs, Snowflake ignores this parameter setting. Note that if the task history is unavailable for a given task, the compute resources revert to this initial size.
A warehouse size is the same as in creating a virtual warehous.
If
warehouse
is specified for this task, then setting this parameter produces an error.
- schedule¶
The schedule for periodically running the task. The minimum schedule is 1 minute.
- suspend_task_after_num_failures¶
Specifies the number of consecutive failed task runs after which the current task is suspended automatically. Failed task runs include runs in which task body either produces a user error or times out. Task runs that are skipped, canceled, or that fail due to a system error are considered indeterminate and are not included in the count of failed task runs.
Set the parameter on a standalone task or the root task in a DAG. When the parameter is set to a value greater than 0, the following behavior applies to runs of the standalone task or DAG:
Standalone tasks are automatically suspended after the specified number of consecutive task runs either fail or time out.
The root task is automatically suspended after the run of any single task in a DAG fails or times out the specified number of times in consecutive runs.
- user_task_timeout_ms¶
Specifies the time limit on a single run of the task before it times out (in milliseconds).
- allow_overlapping_execution¶
Whether to allow multiple instances of the DAG to run concurrently.
- error_integration¶
Specifies the name of the notification integration used to communicate with Amazon SNS, MS Azure Event Grid, or Google Pub/Sub.
For more information, refer to Enabling Error Notifications for Tasks.
Required only when configuring a task to send error notifications using Amazon Simple Notification Service (SNS), Microsoft Azure Event Grid, or Google Pub/Sub.
- comment¶
Specifies a comment for the task.
- predecessors¶
Specifies one or more predecessor tasks for the current task. Use this option to create a DAG of tasks or add this task to an existing DAG.
A DAG is a series of tasks that starts with a scheduled root task and is linked together by dependencies.
- condition: str | None¶
Specifies a Boolean SQL expression; multiple conditions joined with AND/OR are supported. When a task is triggered (based on its SCHEDULE or AFTER setting), it validates the conditions of the expression to determine whether to execute. If the conditions of the expression are not met, then the task skips the current run. Any tasks that identify this task as a predecessor also do not run.
SYSTEM$STREAM_HAS_DATA is the only function supported for evaluation in the SQL expression. This function indicates whether a specified stream contains change tracking data.
- config¶
Set the configuration for the task. It can only be set on a root task then it applies to all tasks in the DAG. The parameter can be set on standalone tasks but does not affect the task behavior. Snowflake ensures only one instance of a standalone task is running at a given time.
- session_parameters¶
Set the session parameters for the task at runtime.
- created_on¶
Date and time when the task was created.
- last_committed_on¶
Timestamp when a version of the task was last set. If no version has been set (i.e. if the task has not been resumed or manually executed after it was created), the value is NULL.
- last_suspended_on¶
Timestamp when the task was last suspended. If the task has not been suspended yet, the value is NULL.
- state¶
“started” or “suspended” based on the current state of the task.
- database_name¶
Database in which the task is stored.
- schema_name¶
Schema in which the task is stored.
- owner¶
Role that owns the task (i.e. has the OWNERSHIP privilege on the task)
- owner_role_type¶
The type of role that owns the object, either ROLE or DATABASE_ROLE. Note that Snowflake returns NULL if you delete the object because there is no owner role for a deleted object.
Methods
- __init__(name: str, definition: str | StoredProcedureCall, *, warehouse: str | None = None, user_task_managed_initial_warehouse_size: str | None = None, suspend_task_after_num_failures: int | None = None, user_task_timeout_ms: int | None = None, schedule: Cron | timedelta | None = None, allow_overlapping_execution: bool | None = None, error_integration: str | None = None, comment: str | None = None, predecessors: List[str] | None = None, condition: str | None = None, config: Dict[str, Any] | None = None, session_parameters: Dict[str, Any] | None = None, id: str | None = None, created_on: datetime | None = None, last_committed_on: datetime | None = None, last_suspended_on: datetime | None = None, state: str | None = None, database_name: str | None = None, schema_name: str | None = None, owner: str | None = None, owner_role_type: str | None = None) None ¶