Categories:

Information Schema , Table Functions

CURRENT_TASK_GRAPHS

Returns the status of a graph run that is currently scheduled or is executing. A graph is currently defined as a single scheduled task or a DAG of tasks composed of a scheduled root task and one or more child tasks (i.e. tasks that have a defined predecessor task). For the purposes of this function, root task refers to either the single scheduled task or the root task in a DAG.

This function returns details for graph runs that are currently executing or are next scheduled to run within the next 8 days. To retrieve the details for graph runs that have completed in the past 60 minutes, query the COMPLETE_TASK_GRAPHS table function.

The function returns the graph run details for your entire Snowflake account or a specified root task.

Syntax

CURRENT_TASK_GRAPHS(
      [ RESULT_LIMIT => <integer> ]
      [, ROOT_TASK_NAME => '<string>' ] )

Arguments

All the arguments are optional.

RESULT_LIMIT => integer

A number specifying the maximum number of rows returned by the function. Note that the results are returned in descending SCHEDULED_TIME order. If the number of matching rows is greater than the result limit, the graph executions with the most recent scheduled timestamp are returned, up to the specified limit.

Range: 1 to 10000

Default: 1000

ROOT_TASK_NAME => string

A case-insensitive string specifying the name of the root task. Only non-qualified task names are supported. Only graph runs for the specified task are returned. Note that if multiple tasks have the same name, the function returns the graph runs for each of these tasks.

Usage Notes

  • Returns results only for the ACCOUNTADMIN role, the task owner (i.e. the role with the OWNERSHIP privilege on the task) or a role with the global MONITOR EXECUTION privilege. Note that unless a role with the MONITOR EXECUTION privilege also has the USAGE privilege on the database and schema that store the task, the DATABASE_NAME and SCHEMA_NAME values in the output are NULL.

  • When the CURRENT_TASK_GRAPHS function is queried, its task name and result limit arguments are applied first followed by the WHERE and LIMIT clause, respectively, if specified. In addition, the CURRENT_TASK_GRAPHS function returns records in descending SCHEDULED_TIME order.

    In practice, if you have many task graphs running in your account, the results returned by the function could include only scheduled tasks, especially if the RESULT_LIMIT value is relatively low.

  • When calling an Information Schema table function, the session must have an INFORMATION_SCHEMA schema in use or the function name must be fully-qualified. For more details, see Snowflake Information Schema.

Output

The function returns the following columns:

Column Name

Data Type

Description

ROOT_TASK_NAME

TEXT

Name of the root task.

DATABASE_NAME

TEXT

Name of the database that contains the graph.

SCHEMA_NAME

TEXT

Name of the schema that contains the graph.

STATE

TEXT

State of the graph run:

  • SCHEDULED: The root task is scheduled at a future time.

  • EXECUTING: At least one task run in the graph is still executing, or the root task ran successfully to completion and one or more child tasks are scheduled.

Note that if the state of the root task run is SKIPPED, the function does not return a row for the run.

FIRST_ERROR_TASK_NAME

TEXT

Name of the first task in the graph that returned an error; returns NULL if no task produced an error.

FIRST_ERROR_CODE

NUMBER

Error code of the error returned by the task named in FIRST_ERROR_TASK_NAME; returns NULL if no task produced an error.

FIRST_ERROR_MESSAGE

TEXT

Error message of the error returned by the task named in FIRST_ERROR_TASK_NAME; returns NULL if no task produced an error.

SCHEDULED_TIME

TIMESTAMP_LTZ

Time when the task is/was scheduled to start running. Note that we make a best effort to ensure absolute precision, but only guarantee that tasks do not execute before the scheduled time.

QUERY_START_TIME

TIMESTAMP_LTZ

Time when the query in the task definition started to run. This timestamp aligns with the start time for the query returned by QUERY_HISTORY.

NEXT_SCHEDULED_TIME

TIMESTAMP_LTZ

Time when the standalone or root task (in a DAG) is next scheduled to start running, assuming the current run of the standalone task or DAG started at the SCHEDULED_TIME time completes in time.

ROOT_TASK_ID

TEXT

Unique identifier for the root task in a DAG. This ID matches the ID column value in the SHOW TASKS output for the same task.

GRAPH_VERSION

NUMBER

Integer identifying the version of the DAG that was run, or is scheduled to be run.

RUN_ID

NUMBER

Time when the standalone or root task in a DAG is/was originally scheduled to start running. Format is epoch time (in milliseconds). The combination of the ROOT_TASK_ID and RUN_ID values identifies a specific run of a DAG. . Original scheduled time refers to rare instances when the system may reschedule the same task to run at a different time to retry it or rebalance the load. If that happens, RUN_ID shows the original scheduled run time and SCHEDULED_TIME shows the rescheduled run time.

Examples

Retrieve the 1000 most recent graph runs (still running, or scheduled in the future) in the account. Note that the maximum number of rows returned by the function is limited to 1000 by default. To change the number of rows returned, modify the RESULT_LIMIT argument value:

select *
  from table(information_schema.current_task_graphs())
  order by scheduled_time;

Retrieve the 10 most recent graph runs for a specified task (still running or scheduled in the future):

select *
  from table(information_schema.current_task_graphs(
    result_limit => 10,
    root_task_name=>'MYTASK'));
Back to top