Apache DolphinScheduler的工作流传参

发布于:2023-01-22 ⋅ 阅读:(16) ⋅ 点赞:(0) ⋅ 评论:(0)

1. 本地参数

本地参数:作用于工作流的当前任务节点,在任务定义页面进行配置。如下所示,其中IN表示本地参数

本地参数

2. 全局参数

全局参数:作用于工作流的所有任务节点有效。在保存工作流的时候进行设置

全局参数

3. 上下游参数传递

目前支持的任务类型有:Shell、SQL、Procedure。本文以Shell进行讲解

上游进行参数传递,如下所示。通过echo '${setValue(key=value)}'进行key和value的设置,再通过OUT的方式将key传递到下游

上游进行参数传递
下游直接进行参数的获取即可,如下所示

下游获取参数

4. 参数的优先级

当参数名相同时,参数的优先级从高到低为:本地参数 > 上游任务传递的参数 > 全局参数

当多个上游传递的参数名称相同时:

  • 下游节点会优先使用值为非空的参数
  • 如果有多个值为非空的参数,则优先选择完成早的上游任务对应的参数

5. 内置参数

基础内置参数

变量名 声明方式 含义
system.biz.date ${system.biz.date} 日常调度实例定时的定时时间前一天,格式为yyyyMMdd
system.biz.curdate ${system.biz.curdate} 日常调度实例定时的定时时间,格式为yyyyMMdd
system.datetime ${system.datetime} 日常调度实例定时的定时时间,格式为yyyyMMddHHmmss

衍生内置参数

  • 支持代码中自定义变量名,声明方式:${变量名}
  • $[yyyyMMddHHmmss]是可以任意分解组合的,比如:$[yyyyMMdd]$[HHmmss]$[yyyy-MM-dd]

还可以通过以下两种方式:

  • 使用add_months()函数,该函数用于加减月份, 第一个入口参数为[yyyyMMdd],表示返回时间的格式,第二个入口参数为月份偏移量,表示加减多少个月

    • 后N年:$[add_months(yyyyMMdd,12*N)]
    • 前N年:$[add_months(yyyyMMdd,-12*N)]
    • 后N月:$[add_months(yyyyMMdd,N)]
    • 前N月:$[add_months(yyyyMMdd,-N)]
  • 在自定义格式后直接“+/-”数字,单位为天

    • 后N周:$[yyyyMMdd+7*N]
    • 前N周:$[yyyyMMdd-7*N]
    • 后N天:$[yyyyMMdd+N]
    • 前N天:$[yyyyMMdd-N]
    • 后N小时:$[HHmmss+N/24]
    • 前N小时:$[HHmmss-N/24]
    • 后N分钟:$[HHmmss+N/24/60]
    • 前N分钟:$[HHmmss-N/24/60]

使用示例如下

使用示例