作者 | sqlboy-yuzhenc
背景介绍
在实际工作应用中,我们可能需要在整个 Apache DolphinScheduler 层面定义共用的日期变量,但是,开源版 Apache DolphinScheduler 只允许配置工作流级别的全局变量,这样,每个工作流就得配置相同的变量,操作起来重复并且麻烦。通过这篇文章,只需要将海豚调度级别的变量插入到变量表中,就会在保存工作流的时候将变量表中的变量自动配置。
原理
在工作流定义表(t_ds_process_definition)上定义一个事前触发器,在更新或插入数据之前,触发器会将 的值替换为用户在工作流保存界面上配置的全局变量与在变量定义表中定义的变量的并集。
Tool模式操作
创建自定义枚举类型
创建变量定义表
插入变量定义
创建获取变量值函数
创建实时变量值视图
dp模式操作
创建触发器函数
注:这里的tool和dp是pg的模式,我海豚调度的元数据存储在dp模式下,但是变量定义表存储在tool下,所以在函数中访问变量定义表时加了tool.(即tool.prop_def),请根据自己实际情况修改。
创建触发器
这里创建事前触发器,在更改或者新增一个工作流之前,将变量的定义给到全局参数定义字段
测试
查询实时变量值视图
工作流测试
创建工作流,选择shell插件
点击保存
上线工作流,点击运行工作流,界面就能看出变量已经自动配置上
运行完毕,查看shell任务日志
下线工作流,点击编辑工作流,点击保存,可以看到变量是已经自动定义
参与 DolphinScheduler 社区有非常多的参与贡献的方式,包括:
贡献第一个PR(文档、代码) 我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度。
社区汇总了以下适合新手的问题列表:https://github.com/apache/dolphinscheduler/issues/5689
非新手问题列表:https://github.com/apache/dolphinscheduler/issues?q=is%3Aopen+is%3Aissue+label%3A%22volunteer+wanted%22
如何参与贡献链接:https://dolphinscheduler.apache.org/zh-cn/community/development/contribute.html
来吧,DolphinScheduler开源社区需要您的参与,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是巨大的。
参与开源可以近距离与各路高手切磋,迅速提升自己的技能,如果您想参与贡献,我们有个贡献者种子孵化群,可以添加社区小助手微信(Leonard-ds) ,手把手教会您( 贡献者不分水平高低,有问必答,关键是有一颗愿意贡献的心 )。
添加社区小助手微信(Leonard-ds,好友申请注明“入交流群+姓名+公司+职位信息“,群里是实名制,仅用于验证身份)
添加小助手微信时请说明想参与贡献。
来吧,开源社区非常期待您的参与。
领取专属 10元无门槛券
私享最新 技术干货