本文对任务编排功能涉及的变量进行介绍,并介绍配置时间变量的方法。

变量介绍

在配置任务节点页面的变量设置页签中,您会遇到以下部分或全部变量:
  • 节点变量:节点变量为时间变量,只能在当前节点中使用。
  • 任务流变量:任务流变量为时间变量,在所有节点中都可使用。
    说明 您可以在任务流的任一节点中设置任务流变量,其他节点会自动同步该设置。
  • 输入变量:系统自动获取。您可使用 ${var_name} 的形式在当前节点的SQL语句中引用输入变量,或者将输入变量用于条件分支节点中作为判断变量。输入变量包括:
    • 上游变量:来自上游节点的输出变量。
    • 运行状态:具体请参见运行状态
    • 系统变量:具体请参见系统变量
  • 输出变量:输出变量由当前节点定义并赋值,可被下游节点查看和引用。

    例如,在脚本代码节点中增加输出变量,该输出变量可以在下游节点的SQL语句中被引用。

  • 脚本输出变量:如果脚本最后一行输出的是JSON结构数据,结构格式为{ key1: value1, key2: value2, … },且value是String类型,脚本任务会自动获取JSON键值对,解析出变量名为key的变量,变量key的值为value。变量的引用方式为${key}

    例如,脚本的最后一行是echo {"hello": "world"},那么脚本任务会解析出变量hello,变量hello的值为world。

配置时间变量

配置项 说明
变量名 输入自定义时间变量的名称。
说明 如需删除已配置的变量,您可以单击右侧的删除-变量
变量规则 配置时间变量的规则。
  • 时间格式:输入您需要的时间格式。关于时间格式,请参见时间格式
  • 时间运算:时间变量以业务时间bizdate(当前日期的前一天)的时间点为基准进行偏移,即自定义的时间变量是基于bizdate做加减运算的。

    例如,变量名为6_month_ago,时间格式为yyyy-MM-dd,偏移量设置为-6月。如果当前日期为2021-8-12,则变量${6_month_ago}的值为2021-02-11。

    时间变量
    说明 配置时间变量后,您可以在右侧的SQL语句中引用该变量,格式为${var_name},同时您可以单击SQL预览来查看时间变量的值。

时间格式

变量支持的时间格式如下:

时间变量 描述 输入示例 返回示例
公元 G表示公元。 Gyyyy 公元2021年
  • y或yyyy表示当天所在的年份。
  • yy表示年份的后两位数字。
  • Y表示当前周结束时(周日为最后一天)的年份。
yyyy 2021
M当前年份的第N个月,M的返回值为[1,12],MM的返回值为[01,12]。 MM 08
  • w表示当前年份的第N周,w的返回值为[1,52],ww返回值为[01,52]。
  • W表示当前月份的第N周,返回值为[1,5]。
ww 13
  • D表示当前年份的第N天,D的返回值为[1,365],DD的返回值为[01,365],DDD的返回值为[001,365]。
  • d表示当前月份的第N天,d的返回值为[1,31],dd的返回值为[01,31]。
D 360
周几
  • E表示周几,将返回星期一至星期日。
  • e表示周几的数字表达,返回值为[1-7](默认1表示周一)。
    说明 您可以在变量偏移中配置+1日,实现西方日历(即1为表示周日)。
e 1
上午、下午 a表示上午或下午。返回值为:上午(00:00-11:59)、下午(12:00-23:59)。 a 上午
小时
  • H表示当天的第N个小时,0表示0点。H的返回值为[0, 23],HH的返回值为[00, 23]。
  • h表示上午、下午的第N个小时,1表示0点,h的返回值为[1, 12],hh的返回值为[01, 12]。
  • K表示上午、下午的第N个小时,0表示0点,K的返回值为[0, 11],KK的返回值为[00, 11]。
  • k表示当天的第N个小时,1表示0点,k的返回值[1, 24],kk的返回值[01, 24]。
HH 10
分钟 m表示分钟数,m的返回值[0, 59],mm的返回值[00, 59]。 m 27
  • s表示秒数。
  • S表示毫秒数。
ss 08
时区 z表示时区。 z UTC+08:00

时间格式的组合示例:

输入示例 返回示例
yyyy-MM-dd 2021-08-12
yyyyMM01 20210801
HH:mm:ss 11:05:21
yyyyMMdd HH:mm:ss 20210812 11:05:21

运行状态

变量名 描述
all_success 任务全部运行成功。
all_failed 任务全部运行失败。
one_success 一个任务节点运行成功。
one_failed 一个任务节点运行失败。
说明 在条件分支节点中使用运行状态可以控制任务流在指定的运行状态下执行后续任务。

系统变量

变量名 描述 示例
sys.flow.start.timestamp 运行时间的时间戳。 2021-05-24T11:20:07.562+08:00
sys.flow.start.year 运行时间的年份。 2021
sys.flow.start.month 运行时间的月份。 5
sys.flow.start.day 运行时间的日期。 24
sys.flow.start.hour 运行时间的小时。 11
sys.flow.start.minute 运行时间的分钟。 20
sys.flow.start.second 运行时间的秒。 7
sys.flow.start.milliseconds 运行时间的毫秒数。 562
sys.flow.start.timezone 运行时间的时区。 Asia/Shanghai
sys.flow.biztime 业务时间,默认为运行时间减一天。 1621740007562
sys.flow.name 任务流名称。 dwd_activity日pv
sys.node.name 任务名称。 单实例SQL-1