
文章插图
? 作者简介

文章插图
?淡丹 数仓开发工程师5年数仓开发经验,目前主要负责百得利MOBY新车业务二手车业务及售后服务业务系统数仓建设 业务需求在ETL任务之间调度时,我们有的时候会需要将上游的计算结果作为参数传入到下游,针对这种业务需求,海豚调度器为我们提供了一些功能 。 具体如下:DolphinScheduler允许在任务间进行参数传递,目前传递方向仅支持上游单向传递给下游 。支持这个特性的任务类型有:
- Shell
- SQL

文章插图
? 注意点
- 方向选择为 OUT,只有当方向为 OUT 时才会被定义为变量输出
- 数据类型可以根据需要选择不同数据结构
- Value 部分不需要填写
- 参数名字一定要和字段名字对应,否则不会识别

文章插图
?注意此处,输入参数不需要填写,下游直接引用上游的变量即可 步骤3:上线验证结果查看结果日志,可以看到下游节点已经接收到参数

文章插图
? SHELL任务先看官网说明(链接):https://dolphinscheduler.apache.org/zh-cn/docs/latest/user_doc/guide/parameter/context.html
- prop 为用户指定;
- 方向选择为 OUT,只有当方向为 OUT 时才会被定义为变量输出;
- 数据类型可以根据需要选择不同数据结构;
- value 部分不需要填写;

文章插图
?SHELL 节点定义的时候日志检测到 ${setValue(key=value1)} 的格式时,会将 value1 赋值给 key,下游节点便可以直接使用变量 key 的值 。同样,您可以在【工作流实例】页面,找到对应的节点实例,便可以查看该变量的值 。

文章插图
? 但在实际使用中官网的例子是跑不通的,这里面有小坑,上述在使用 ${setValue(key=value)} 这种形式传参的时候必须用引号引起来 。 如下才能成功echo '${setValue(key=value)}'
案例所示

文章插图
?上线执行后查看日志如下:

文章插图
?可以看到结果已经打印出来 。如果取掉单引号会报如下错误:语法上就无法通过 。

经验总结扩展阅读
- 通过Thread Pool Executor类解析线程池执行任务的核心流程
- 光遇双十一任务怎么做
- 原神双重任务晋级与调查攻略
- DNF七夕鹊桥来相会任务怎么做?
- 解决qq登录后电脑右下角任务栏不显示qq图标?
- 刺激战场怎样做每日任务成长任务怎么做?
- lol奥德赛2芯片任务怎么过?
- LOL奥德赛2芯片任务需要什么阵容才能通关?
- 2018DNF穿戴耳环任务流程?
- 苹果手机同屏多画面的功能设置 在iPhone 上利用“画中画”执行多任务