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

任务

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

任务流

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

责任人、相关人员

  • 责任人:仅责任人可编辑当前任务流、任务相关的配置,可试运行任务,接收任务运行告警信息。
  • 相关人员:具备查看当前任务流、任务相关配置的权限,可试运行任务,不具备编辑权限。

任务流版本

任务流版本是任务流在某个时刻的快照。任务流版本形态如下:
  • 编辑态版本:当前可编辑的版本,每次单击试运行(手动触发)都会保存一个编辑态版本,且每次运行都只会基于最新的、且可编辑的版本运行。
  • 发布态版本:任务流发布后会产生一个版本,每次定时触发都会运行当前最新的发布态版本。

执行方式

任务流的执行方式分为调度触发(被动执行)和手动触发(主动执行)。
  • 手动触发:手动运行任务流,基于当前可编辑的版本(编辑态)。
  • 调度触发:定时调度任务流,基于最新的发布版本(发布态)。

节点

节点是任务流中任务的实体承载,其可以处于任务流中的任意位置,节点之间通过边来建立依赖关系。任务节点类型如下:
  • 数据集成
  • 数据加工
  • 状态检查
  • 通用

任务流(DAG)中的一条有向边,具有起始节点和终止节点。节点之间的依赖关系由边来定义,起始节点为终止节点的上游,终止节点为起始节点的下游,只有当上游节点都运行成功后,下游节点才会运行。边的类型如下:
  • 实体边:即有向边,可体现节点之间(节点与任务流)的依赖关系。
  • 同任务流边:节点的依赖关系在同一个任务流中。
  • 跨任务流边:节点的依赖关系是跨任务流的,一般可通过调度配置的事件订阅功能实现。

业务时间

默认为运行时间减一天。

变量

变量是任务流中动态的值,分为系统变量、时间变量、非时间变量,均可以在节点中以${varName}的形式动态引用。
  • 系统变量:系统预定义的变量。例如当前任务流ID、任务流的运行时间等。
  • 时间变量:定义时间变量的方式是基于系统内置的时间变量bizdate(T-1)进行偏移。例如当前日期为2022年12月28日,变量的时间格式调整为+1日,则此时间变量表示今天。
  • 任务流变量:任务流变量基于业务时间进行偏移,任务流中所有节点都可引用该变量。
  • 非时间变量:非时间变量基于节点运行结果动态生成变量值(字符串),也可被动态解析为数值类型。
  • 输入变量:当前节点的上游节点输出变量,可以被当前节点引用。
  • 输出变量:由一个具体节点运行而产生的值,可以被下游节点引用。
  • 脚本输出变量:通过脚本代码节点最后一行运行日志做JSON解析,会得到变量Key和Value都为JSON的输出变量。
  • 单实例SQL赋值输出变量:通过该节点定义SQL查询的结果集,用该结果集充当二维矩阵,在变量定义过程中任意取出一个元素,或者基于任意一个行向量i、列向量j做基于字符的拼接。
除系统变量外,其他变量统称为自定义变量,自定义变量名不可重复定义,若自定义变量和系统变量重名,则自定义变量的值会覆盖系统变量的值,即自定义变量的优先级更高。

任务流实例

任务流实例是运行某条任务流的具体运行记录。对于运行成功的任务流,可以进行重跑操作,对于运行失败的任务流,可以进行恢复置成功操作。
说明 对于手动运行的任务流,会生成任务流实例版本。
任务流实例状态有如下几种:
  • 等待调度(WAIT_SCHEDULE)
  • 运行中(RUNNING)
  • 暂停(SUSPEND)
  • 失败(FAIL)
  • 成功(SUCCESS)
  • 终止中(KILLING)
  • 排队中(QUEUED)

节点实例

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

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

节点实例的状态如下:
  • 运行中(RUNNING)
  • 暂停(SUSPEND)
  • 失败(FAIL)
  • 成功(SUCCESS)
  • 终止中(KILLING)
  • 跳过(SKIPPED)
  • 取消(CANCELLED)
  • 排队中(QUEUED)

补数据

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

运行权限

  • 任务运行时权限,是以任务流的责任人所拥有的数据库表权限进行判断。
    重要责任人缺失某些库表的权限,即使当前触发运行的人员具备对应库表权限,仍会运行失败。
  • 可触发运行的人员有:责任人、相关人员。

运行时间

任务实际的执行时间(东8区)。