类别:

Information Schema表函数

COMPLETE_TASK_GRAPHS

返回已完成的 图形 运行的状态。该函数返回过去 60 分钟内成功执行、失败或取消的运行的详细信息。图形目前被定义为单个计划任务 定义为由计划根任务和一个或多个从属任务(即具有一个或多个已定义前置任务的任务)组成的 任务。就此函数而言,根任务 是指单个计划任务或 任务图 中的根任务。

要检索当前正在执行或下一个计划在未来 8 天内运行的图形运行的详细信息,请查询 CURRENT_TASK_GRAPHS 表函数。

该函数会返回整个 Snowflake 账户或指定根任务的图形运行详细信息。

语法

COMPLETE_TASK_GRAPHS(
      [ RESULT_LIMIT => <integer> ]
      [, ROOT_TASK_NAME => '<string>' ]
      [, ERROR_ONLY => { TRUE | FALSE } ] )
Copy

实参

所有实参均为可选。

RESULT_LIMIT => integer

用于指定函数返回的行数上限的数字。请注意,结果按 COMPLETED_TIME 降序返回。如果匹配的行数大于结果限制,则返回具有最近完成的时间戳的图形执行,直至达到指定的限制。

范围:110000

默认:1000

ROOT_TASK_NAME => string

不区分大小写的字符串,用于指定根任务的名称。仅支持非限定任务名称。仅返回指定任务的图形运行。请注意,如果多个任务具有相同的名称,则该函数将返回每个任务的图形运行。

ERROR_ONLY => TRUE | FALSE

设置为 TRUE 时,此函数仅返回已失败或已取消的图形运行。

使用说明

  • 仅返回 ACCOUNTADMIN 角色、任务所有者(即对任务具有 OWNERSHIP 权限的角色)或具有全局 MONITOR EXECUTION 权限的角色的结果。请注意,除非具有该 MONITOR EXECUTION 权限的角色同时具有存储任务的数据库和架构的 USAGE 权限,否则输出中的 DATABASE_NAME 和 SCHEMA_NAME 值为 NULL。

  • 此函数最多返回在 RESULT_LIMIT 实参值中设置的 10,000 行。默认值为 1000。要避免此限制,请使用 COMPLETE_TASK_GRAPHS 视图 (Account Usage)。

  • 查询 COMPLETE_TASK_GRAPHS 函数时,首先 应用其任务名称和结果限制实参,然后分别应用 WHERE 和 LIMIT 子句(如果已指定)。此外,该函数还按 COMPLETED_TIME 降序返回记录。

    实际上,如果许多任务图在前一小时内在您的账户中完成运行,则该函数返回的结果可能不包含预期记录,特别是在 RESULT_LIMIT 值相对较低的情况下。

  • 当调用 Information Schema 表函数时,会话必须具有正在使用的 INFORMATION_SCHEMA 架构,或者 函数名称必须受到完全限定。有关更多详细信息,请参阅 Snowflake Information Schema

输出

该函数返回以下列:

列名称

数据类型

描述

ROOT_TASK_NAME

TEXT

根任务的名称。

DATABASE_NAME

TEXT

包含图形的数据库的名称。

SCHEMA_NAME

TEXT

包含图形的架构的名称。

STATE

TEXT

图形运行状态:

  • SUCCEEDED:图中的所有任务都成功完成运行,或者根任务运行成功,但跳过了一个或多个子任务运行。

  • FAILED:图中的一个或多个任务运行失败,或者根任务运行成功,但一个或多个子任务运行失败。

  • CANCELLED:图中的一个或多个任务运行已取消,或者根任务运行成功,但一个或多个子任务运行已取消。

请注意,如果根任务运行的状态为 SKIPPED,则该函数不会返回运行的行。

SCHEDULED_FROM

TEXT

其中之一:

对于任务图中子任务的运行,该列返回与根任务运行相同的值。

FIRST_ERROR_TASK_NAME

TEXT

图形中返回错误的第一个任务的名称;如果没有任务产生错误,则返回 NULL。

FIRST_ERROR_CODE

NUMBER

在 FIRST_ERROR_TASK_NAME 中命名的任务所返回错误的错误代码;如果没有任务产生错误,则返回 NULL。

FIRST_ERROR_MESSAGE

TEXT

在 FIRST_ERROR_TASK_NAME 中命名的任务所返回错误的错误消息;如果没有任务产生错误,则返回 NULL。

SCHEDULED_TIME

TIMESTAMP_LTZ

根任务计划开始运行的时间。注意,我们会尽最大努力确保绝对精度,但仅保证任务不会在计划时间 之前 执行。

QUERY_START_TIME

TIMESTAMP_LTZ

根任务定义中的查询开始运行的时间。此时间戳与 QUERY_HISTORY 返回的查询的开始时间一致。

NEXT_SCHEDULED_TIME

TIMESTAMP_LTZ

假设当前运行的独立任务或 任务图 从 SCHEDULED_TIME 时开始能够按时完成,则是独立任务或根任务(在任务的 任务图 中)下次计划开始运行的时间。

COMPLETED_TIME

TIMESTAMP_LTZ

任务图 中最后一个任务完成的时间

ROOT_TASK_ID

TEXT

任务图 中根任务的唯一标识符。此 ID 与同一任务的 SHOW TASKS 输出中的 ID 列值匹配。

GRAPH_VERSION

NUMBER

整数,用于识别已运行或计划运行的 任务图 版本。

RUN_ID

NUMBER

任务图 中的独立任务或根任务最初计划开始运行的时间。格式是纪元时间(以毫秒为单位)。. . 最初 计划时间是指系统可能会将同一任务重新计划为在不同时间运行以重试或重新平衡负载的罕见情况。如果发生这种情况,RUN_ID 会显示最初计划运行时间,SCHEDULED_TIME 则会显示重新计划的运行时间。. . 注意,在重试之前,RUN_ID 可能不是当前任务/图形运行的唯一标识符。您可以使用 GRAPH_RUN_GROUP_ID 列来代替 RUN_ID。

ATTEMPT_NUMBER

NUMBER

整数表示尝试运行此任务的次数。最初的一次。

CONFIG

TEXT

显示图形运行期间使用的图形级别配置(如果进行了明确设置)。否则会显示 NULL。

GRAPH_RUN_GROUP_ID

NUMBER

图形运行标识符。当图形运行有多个任务运行时,每个任务运行将显示相同的 GRAPH_RUN_GROUP_ID。GRAPH_RUN_GROUP_ID 和 ATTEMPT_NUMBER 的组合可用于对图形运行进行唯一标识。

BACKFILL_INFO

OBJECT

保留以供将来使用。所有行的返回值均为 NULL。

示例

检索账户中最近完成的 1000 次图形执行。注意,默认情况下,函数返回的最大行数限制为 1000 行。若要更改返回的行数,请修改 RESULT_LIMIT 实参值:

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

检索过去一小时内指定任务图形的 10 次最近完成的图形运行:

select *
  from table(information_schema.complete_task_graphs (
    result_limit => 10,
    root_task_name=>'MYTASK'));
Copy
语言: 中文