文档

基本概念

本文介绍任务编排功能中的基本概念。

任务

任务是能完成一项功能操作的节点。

任务节点

节点是任务流中任务的实体承载,其可以处于任务流中的任意位置,节点之间通过边来建立依赖关系。任务节点类型如下:

  • 数据集成

  • 数据加工

  • 状态检查

  • 通用

节点实例

若干个节点实例组成任务流实例,节点之间的依赖关系是基于当时运行的任务流版本。

对于任务流的恢复操作,有且只有运行失败的节点实例会按照依赖关系再次运行。对于重跑操作,所有节点都会按照依赖关系重新运行。恢复重跑都是基于任务流实例运行时使用的任务流版本进行操作的。

节点实例的状态如下:

  • 运行中(RUNNING)

  • 暂停(SUSPEND)

  • 失败(FAIL)

  • 成功(SUCCESS)

  • 终止中(KILLING)

  • 跳过(SKIPPED)

  • 取消(CANCELLED)

  • 排队中(QUEUED)

任务流

任务流是由多个任务节点组合编排出的任务组,任务之间可以有依赖关系,整个依赖关系是一个有向无环图(DAG),整个任务流都可以被执行。

任务流版本

任务流版本是任务流在某个时刻的快照。任务流版本形态如下:

  • 编辑态版本:当前可编辑的版本,每次单击试运行(手动触发)都会保存一个编辑态版本,且每次运行都只会基于最新的、且可编辑的版本运行。

  • 发布态版本:任务流发布后会产生一个版本,每次定时触发都会运行当前最新的发布态版本。

任务流执行方式

任务流的执行方式分为调度触发(被动执行)和手动触发(主动执行)。

  • 手动触发:手动运行任务流,基于当前可编辑的版本(编辑态)。

  • 调度触发:定时调度任务流,基于最新的发布版本(发布态)。

任务流实例

任务流实例是运行某条任务流的具体运行记录。对于运行成功的任务流,可以进行重跑操作,对于运行失败的任务流,可以进行恢复置成功操作。

说明

对于手动运行的任务流,会生成任务流实例版本。

任务流实例状态有如下几种:

  • 等待调度(WAIT_SCHEDULE)

  • 运行中(RUNNING)

  • 暂停(SUSPEND)

  • 失败(FAIL)

  • 成功(SUCCESS)

  • 终止中(KILLING)

  • 排队中(QUEUED)

冻结任务流

冻结任务流会导致所有调度触发都无法运行,非事件调度任务会直接失败,包括事件调度、补数据、重跑、恢复,事件调度任务流会进入等待执行状态。

解冻任务流

解冻任务流后,会恢复任务流调度执行。

任务流(DAG)中的一条有向边,具有起始节点和终止节点。节点之间的依赖关系由边来定义,起始节点为终止节点的上游,终止节点为起始节点的下游,只有当上游节点都运行成功后,下游节点才会运行。边的类型如下:

  • 实体边:即有向边,可体现节点之间(节点与任务流)的依赖关系。

  • 同任务流边:节点的依赖关系在同一个任务流中。

  • 跨任务流边:节点的依赖关系是跨任务流的,一般可通过调度配置的事件订阅功能实现。

业务时间

默认运行时间减一天,业务时间作为变量使用时,默认的变量名为bizdate。

补数据

基于任意任务流的发布态Version N,给定业务时间或业务范围,生成一个或多个任务流实例。

责任人、相关人员

  • 责任人:仅责任人可编辑当前任务流、任务相关的配置,可试运行任务,接收任务运行告警信息。

  • 相关人员:具备查看当前任务流、任务相关配置的权限,可试运行任务,不具备编辑权限。

运行权限

  • 任务运行时权限,是以任务流的责任人所拥有的数据库表权限进行判断。

    重要

    责任人缺失某些库表的权限,即使当前触发运行的人员具备对应库表权限,仍会运行失败。

  • 可触发运行的人员有:责任人、相关人员。

运行时间

任务实际的执行时间。

运行方式

  • 试运行

    指定当前时间运行该任务流。

  • 空跑

    当任务流A(使用任务流依赖检查节点)依赖任务流B,且不需要实际运行B时,可以使B空跑产生一个调度记录,A任务即可正常执行。

  • 指定时间运行

    使用该运行方式需要您定义一个任务流变量(时间变量),并且在SQL中使用。变量会在指定的业务时间下,通过偏移得到最终的变量时间,可实现在SQL等配置不变的情况下,达到在指定时间运行任务的目的。

  • 指定时间范围运行

    在时间范围内运行方式也需要定义多个任务流变量(时间变量),目前一次只能运行50个节点实例。

    例如调度周期为1日,那么任务流实例只能运行50天。

    说明

    时间范围内运行的任务是串行运行的,即必须一个业务时间的任务执行成功,下一个业务时间才可执行任务。