参数配置用于定义代码中的参数并赋值。数据研发中,节点代码根据调度周期动态赋值(例如日期时间),替换变量后再进行计算。
参数类型说明
- 系统参数可以在代码中直接使用${bizdate},${Node ID},${Task ID}、${业务板块名}和${项目名}。
参数 描述 ${bizdate} 定义实例计算时对应的业务日期,默认格式为yyyymmdd,即当前日期的前一天。 ${Node ID} 任务节点ID。 ${Task ID} 任务节点生成实例ID。 ${业务板块名} 生产环境的业务板块名或开发环境的业务板块名。 例如,如果系统有Dev-Prod模式生成的生产业务板块为LD_demo,开发业务板块为LD_demo_dev,则默认生产环境执行代码时${LD_demo}更新为LD_demo,开发环境执行代码时${LD_demo}更新为LD_demo_dev
${项目名} 生产环境的项目名或开发环境的项目名。 例如,如果系统有Dev-Prod模式生成的生产项目为test_ast,开发业务板块为test_ast_dev,则默认生产环境执行代码时${test_ast}更新为test_ast,开发环境执行代码时${test_ast}更新为test_ast_dev。
- 自定义参数需要在参数配置区域赋值,自定义变量名及赋值。在代码中调用变量名即可。
调度参数生效说明
- 如果是Basic开发模式,则需要提交任务节点至生产环境。
- 如果是Dev-Prod开发模式,则需要提交并发布任务节点至生产环境。
开发环境和即席查询模块支持参数识别与设置,但与调度系统规则不同。运行任务节点时,系统不会根据自定义参数和系统参数的参数值进行计算,而是根据当前界面下,需要用户确认最新输入的参数值。例如,${bizdate}执行时,系统会识别并默认填入执行日期为默认值(2019年2月28日查询执行时,执行代码的${bizdate}替换为20190228)。
Dataphin调度系统节点配置参数的原则
- 节点代码中引用参数的方式为${nodeParam}。
- 节点参数配置的格式为 KeyA=ValueA;KeyB=ValueB。不同参数配置之间用英文分号(;)分隔。
定义节点的Key不区分大小写,例如KeyA=ValueA和keya=ValueA定义的参数是一致的。代码中引用配置参数时,不会区分大小写。例如${KeyA}、${keya}或${keyA}都是引用自定义参数A。
- 节点配置支持参数的引用,引用格式为KeyA=$KeyB; KeyB=ValueB,使用引用符号$,则此时相当于KeyA=ValueB; KeyB=ValueB。
Datapin系统中Voldemor会进行循环引用的校验,因此不支持循环定义。例如KeyA=$KeyB; KeyB=$KeyA或bizdate=$bizdate。
- 支持自定义系统参数,则需要在参数配置区域赋值,例如bizdate=ABC。
如果用户配置的参数和默认参数有重复冲突,则用户配置的参数赋值会覆盖默认参数。例如,配置了bizdate=ABC,则节点代码中引用bizdate时,该bizdate的值会被替换为ABC,而不是具体日期参数值yyyymmdd。
Dataphin调度系统(Voldemort)时间参数的配置
- 日调度包括业务日期和预计执行时间两种调度方式。 基于业务日期的参数赋值为${yyyyMMdd};基于预计执行时间的参数赋值为$[yyyyMMdd]。
- 小时、分钟调度支持基于小时和分钟偏移,实现小时调度、分钟调度,暂不支持秒。HH表示小时,mi(或mm)表示分钟,ss表示秒,小时的偏移:delta/24,分钟的偏移:delta/24/60。
例如,在指定执行时间前一小时的表达式为$[HH-1/24],在业务日期前1分钟为${HHmmss-1/24/60}。
注意 如果配置的时间参数只精确到日,则小写mm系统识别为月份。当月和分钟同时存在时,为了避免歧义,月份大写为MM,分钟小写为mm,否则系统会统一识别为分钟,从而导致月份参数出错。
当前日期 | 基于业务日期(T-1)的配置 | 实际值 | 基于预计执行时间(T)的配置 | 实际值 |
---|---|---|---|---|
2018-01-10 | ${yyyymmdd} | 20180109 | $[yyyymmdd] | 20180110 |
2018-01-10 | ${yyyyMMdd} | 20180109 | $[yyyyMMdd] | 20180110 |
2018-01-10 | ${yyyymmdd -1} | 20180108 | $[yyyymmdd -1] | 20180109 |
2018-01-10 | ${yyyymmdd -7} | 20180102 | $[yyyymmdd -7] | 20180103 |
2018-01-10 | ${yyyy-mm-dd} | 2018-01-09 | $[yyyy-mm-dd] | 2018-01-10 |
2018-01-10 | ${yyyy-mm} | 2018-01 | $[yyyy-mm] | 2018-01 |
2018-01-10 | ${yyyy-mm -1} | 2017-12 | $[yyyy-mm -1] | 2017-12 |
2018-01-10 | ${yyyy} | 2018 | $[yyyy] | 2018 |
2018-01-10 | ${yyyy+1} | 2019 | $[yyyy + 1] | 2019 |
2018-01-10 | ${yyyy/MM/dd HH:mm:ss} | 2018/01/09 00:00:00 | $[yyyy/MM/dd HH:mm:ss] | 2018/01/10 00:00:00 |
2018-01-10 | ${yyyy/MM/dd HH:mm:ss-1/24} | 2018/01/08 23:00:00 | $[HH:mm:ss-5/24/60] | 23:55:00 |