文章目录

  • 本地参数和全局参数
  • 本地参数
  • 全局参数
  • 参数传递
  • 参数优先级


本地参数和全局参数

DolphinScheduler 支持对任务节点进行灵活的传参,任务节点可通过 ${参数名} 引用参数值。

本地参数

本地参数是指只针对单个任务节点有效的参数。

(1)修改 helloworld 工作流 Node-A 节点如下

dolphinscheduler python配置 dolphinscheduler参数_大数据

➢ dt:参数名
➢ IN/OUT:IN 表示向当前节点传参,OUT 表示向下游节点传参
➢ VARCHAR:参数值类型
➢ 2022-09-20:参数值

(2)保存工作流并运行,查看 Node-A 输出日志。

dolphinscheduler python配置 dolphinscheduler参数_Shell_02

全局参数

全局参数是指针对整个工作流的所有任务节点都有效的参数。

(1)修改 helloworld 工作流每个任务节点如下

节点 A 配置

dolphinscheduler python配置 dolphinscheduler参数_大数据_03

节点 B 配置

dolphinscheduler python配置 dolphinscheduler参数_优先级_04

节点 C 配置

dolphinscheduler python配置 dolphinscheduler参数_大数据_05

(2)保存工作流,并设置全局参数

dolphinscheduler python配置 dolphinscheduler参数_参数传递_06

(3)执行工作流,查看三个任务节点输出日志。

Node-A

dolphinscheduler python配置 dolphinscheduler参数_大数据_07

Node-B

dolphinscheduler python配置 dolphinscheduler参数_参数传递_08

Node-C

dolphinscheduler python配置 dolphinscheduler参数_大数据_09

参数传递

DolphinScheduler 支持上游任务节点向下游任务节点传参。目前支持这个特性的任务类型有:Shell、SQL、Procedure。

以下案例使用 Shell 类型的任务节点进行演示。

1)设置上游节点 Node-A

dolphinscheduler python配置 dolphinscheduler参数_参数传递_10

注:echo '${setValue(key=value)}'为固定写法

2)设置下游节点 Node-C

dolphinscheduler python配置 dolphinscheduler参数_Shell_11

3)查看输出日志

可以看到对应节点日志中输出了其调用参数的值。

dolphinscheduler python配置 dolphinscheduler参数_优先级_12

参数优先级

一个任务节点引用的参数可能来自三种类型:分别是全局参数 、上游任务传递的参数、本地参数。因为参数的值存在多个来源,当参数名相同时,就需要考虑参数优先级的问题。

DolphinScheduler 参数的优先级从低到高为: 全局参数 <上游任务传递的参数 <本地参数。 在上游任务传递的参数的情况下,由于上游可能存在多个任务向下游传递参数。当上游传递的参数名称相同时:下游节点会优先使用值为非空的参数。如果存在多个值为非空的参数,则按照上游任务的完成时间排序,选择完成时间最早的上游任务对应的参数。