文章目录
- 本地参数和全局参数
- 本地参数
- 全局参数
- 参数传递
- 参数优先级
本地参数和全局参数
DolphinScheduler 支持对任务节点进行灵活的传参,任务节点可通过 ${参数名} 引用参数值。
本地参数
本地参数是指只针对单个任务节点有效的参数。
(1)修改 helloworld 工作流 Node-A 节点如下
➢ dt:参数名
➢ IN/OUT:IN 表示向当前节点传参,OUT 表示向下游节点传参
➢ VARCHAR:参数值类型
➢ 2022-09-20:参数值
(2)保存工作流并运行,查看 Node-A 输出日志。
全局参数
全局参数是指针对整个工作流的所有任务节点都有效的参数。
(1)修改 helloworld 工作流每个任务节点如下
节点 A 配置
节点 B 配置
节点 C 配置
(2)保存工作流,并设置全局参数
(3)执行工作流,查看三个任务节点输出日志。
Node-A
Node-B
Node-C
参数传递
DolphinScheduler 支持上游任务节点向下游任务节点传参。目前支持这个特性的任务类型有:Shell、SQL、Procedure。
以下案例使用 Shell 类型的任务节点进行演示。
1)设置上游节点 Node-A
注:echo '${setValue(key=value)}'为固定写法
2)设置下游节点 Node-C
3)查看输出日志
可以看到对应节点日志中输出了其调用参数的值。
参数优先级
一个任务节点引用的参数可能来自三种类型:分别是全局参数 、上游任务传递的参数、本地参数。因为参数的值存在多个来源,当参数名相同时,就需要考虑参数优先级的问题。
DolphinScheduler 参数的优先级从低到高为: 全局参数 <上游任务传递的参数 <本地参数。 在上游任务传递的参数的情况下,由于上游可能存在多个任务向下游传递参数。当上游传递的参数名称相同时:下游节点会优先使用值为非空的参数。如果存在多个值为非空的参数,则按照上游任务的完成时间排序,选择完成时间最早的上游任务对应的参数。