作者 | sqlboy-yuzhenc
背景介绍
在实际工作应用中,我们可能需要在整个 Apache DolphinScheduler 层面定义共用的日期变量,但是,开源版 Apache DolphinScheduler 只允许配置工作流级别的全局变量,这样,每个工作流就得配置相同的变量,操作起来重复并且麻烦。通过这篇文章,只需要将海豚调度级别的变量插入到变量表中,就会在保存工作流的时候将变量表中的变量自动配置。
原理
在工作流定义表(t_ds_process_definition)上定义一个事前触发器,在更新或插入数据之前,触发器会将t_ds_process_definition.global_params 的值替换为用户在工作流保存界面上配置的全局变量与在变量定义表中定义的变量的并集。
tool模式操作
创建自定义枚举类型
create type vartype as enum ('INTEGER','VARCHAR','LONG','FLOAT','DOUBLE','DATE','TIME','TIMESTAMP','BOOLEAN','LIST');
create type vardirect as enum ('IN','OUT');
创建变量定义表
drop table if exists prop_def cascade;
create table prop_def (
prop varchar(63) primary key --参数名
,prop_def text --参数定义
,prop_def_dp text --对应的海豚的定义
,prop_desc text --参数描述
,prop_direct vardirect default 'IN' --参数类型 IN或out
,prop_type vartype default 'VARCHAR' --参数类型 VARCHAR INTEGER LONG FLOAT DOUBLE DATE TIME TIMESTAMP BOOLEAN LIST
,prop_create_time timestamp default current_timestamp --变量创建时间
);
comment on table prop_def is '参数定义表';
comment on column prop_def.prop is '参数名';
comment on column prop_def.prop_def is '参数定义';
comment on column prop_def.prop_def_dp is

最低0.47元/天 解锁文章
3173

被折叠的 条评论
为什么被折叠?



