一、说明
调度参数是DataWorks任务调度时使用的参数,调度参数会根据任务调度的业务日期、定时时间及参数的取值格式自动替换为具体的值,实现在任务调度时间内参数的动态替换。
二、系统内置变量
DataWorks支持的系统内置变量无需手动赋值,参数可以在代码中直接引用。如下表所示:
2.1业务日期
${bdp.system.bizdate} 或 $bizdate
固定格式:yyyymmdd
该参数的应用较为广泛,日常调度中默认任务预期运行时间的前一天为业务日期。
2.2 定时时间
${bdp.system.cyctime} 或 $cyctime
固定格式:yyyymmddhh24miss
2.3当前日期
$gmtdate
格式为:yyyymmdd
该参数默认取当天日期,执行补数据操作时输入的日期为业务日期+1|
2.4业务月份
$bizmonth
如果业务日期的月份与当前月份一致,则 $ bizmonth=业务日期月份-1,如果业务日期的月份与当前月份不一致,则$bizmonth=业务日期月份|
2.5 任务所属的业务流程ID
$jobid
2.6节点ID
$nodeid
2.7节点产生的实例ID
$taskid
三、自定义参数
3.1自定义参数${…}
根据业务日期的系统内置参数$bizdate(昨天)获取以下时间周期的取值。
前/后N年 ${yyyy±N}
前/后N月 ${yyyymm±N}
前/后N周 ${yyyymmdd±7*N}
前/后N天 ${yyyymmdd±N}
年月日加/减N天 ${yyyymmdd±N}
加/减N年(yyyy格式) ${yyyy±N}年
加/减N年(yy格式) ${yy±N}年其中:
yyyy:表示4位的年份,取值为 $bizdate的年份。
yy:表示2位的年份,取值为 $bizdate的年份。
mm:表示月份,取值为 $bizdate的月份。
dd:表示天,取值为 $bizdate的天。
说明
获取多少月、多少年前等时间数据请使用bizdate只支持精确到天,因此${…}参数仅支持取值到天。
您可以结合引擎函数,获取更多参数取值,详情请参见调度参数返回值二次处理的典型场景。
3.2自定义参数$[…]
根据任务定时时间的系统内置参数$cyctime(今天)获取以下时间周期的取值。
后N年 $[add_months(yyyymmdd,12N)]
前N年 $[add_months(yyyymmdd,-12N)]
后N月 $[add_months(yyyymmdd,N)]
前N月 $[add_months(yyyymmdd,-N)]
前/后N周 $[yyyymmdd±7*N]
前/后N天 $[yyyymmdd±N]
前/后N小时 获取该时间数据包含如下两种方式:
$[hh24miss±N/24]
[hh24±N/24]
前/后N分钟 获取该时间数据包含如下两种方式:
$[hh24miss±N/24/60]
[mi±N/24/60]、 $[yyyymmddhh24miss±N/24/60]
其中:
yyyy:表示4位的年份,取值为 $cyctime的年份。
yy:表示2位的年份,取值为 $cyctime的年份。
mm:表示月份,取值为 $cyctime的月份。
dd:表示天,取值为 $cyctime的天。
hh24:表示小时(12进制使用hh),取值为 $cyctime的小时。
mi:表示分钟,取值为 $cyctime的分钟。
ss:表示秒,取值为 $cyctime的秒。
四、调度参数的典型场景配置
获取多少小时、多少分钟前等时间数据请使用 $[…]参数。
由于 $cyctime精确到时分秒,因此 $[…]参数可以精确到时分秒。
您可以结合引擎函数,获取更多参数取值,详情请参见调度参数返回值二次处理的典型场景。
调度参数替换值在实例生成时已经确定,所以调度参数的替换值不会随着实例实际运行时间的改变而改变。
当调度参数取小时、分钟时,参数替换值由实例的定时时间决定,即由节点调度配置的定时调度时间决定。
如下示例:
如果当前节点为日调度节点,并且设置定时调度时间为01:00,则小时的参数取值为01。
如果当前节点为小时调度节点,并且设置定时调度时间为00:00~23:59,每小时调度一次,则:
第一个小时实例定时时间为0点,小时的参数取值为00。
第二个小时实例定时时间为1点,小时的参数取值为01。
以此类推。