Apache DolphinScheduler是一个分布式和可扩展的开源工作流协调平台,具有强大的DAG可视化界面。
目录
准备数据
-- hive建表
-- 来源数据表
drop table if exists test.test_ds_bushu_detail;
create table test.test_ds_bushu_detail
(
rank int comment '排名',
complement_date string comment '日期',
etl_time string comment '执行时间'
)
COMMENT "测试数据"
stored as textfile
location '/opt/user/test/warehouse/test/test_ds_bushu_detail'
;
-- 造数据
insert into table test.test_ds_bushu_detail
select 1
,'2023-02-01'
,from_unixtime(unix_timestamp(), 'yyyy-MM-dd HH:mm:ss')
;
-- 补数目标结果表
drop table if exists test.test_ds_bushu;
create table test.test_ds_bushu
(
amount int comment '排名',
complement_date string comment '补数日期',
etl_time string comment '执行时间'
)
COMMENT "测试ds补数功能"
stored as textfile
location '/opt/user/test/warehouse/test/test_ds_bushu'
;
Apache DolphinScheduler 测试:
1、设置全局参数:
prop:指定一个参数名称
value:自己设置即可,$[yyyy-MM-dd] 默认获取当前日期
代码内数据时间:全局参数 ${complement_date}
insert into table test.test_ds_bushu
select rank
,complement_date
,from_unixtime(unix_timestamp(), 'yyyy-MM-dd HH:mm:ss')
from test.test_ds_bushu_detail
where complement_date = '${complement_date}' -- 接收全局参数获取的时间
;
2、补数一天:
1、直接从主界面点击执行,配置启动参数
2、选择补数功能
3、执行方式根据自身场景选择
4、调度日期:补数日期范围,先用一天测试
5、参数的value根据自身需求设置
未开启补数时,$[yyyy-MM-dd] :默认获取当前日期.
开启补数功能,$[yyyy-MM-dd] :获取的是,序号4位置所设置的调度日期
可以看见,2023-02-01的数据已经进来!!!
3、补数一段时间:
1、前面步骤同上面
2、假如想补 2023-02-05 —— 2023-02-09 的数据
3、将调度时间设置为 2023-02-05 —— 2023-02-09
4、串行执行补数逻辑:
○ 点击运行,传入 2023-02-05 执行一遍 test_ds_bushu 里面所有的 job
○ 执行完成传入 2023-02-06 执行一遍
○ 以此类推,直至传入 2023-02-09 执行一遍结束
根据场景自行选择(可以参考截图)
单纯个人记录和分享, 希望得到支持和鼓励。
如果对您有帮助,可以点赞评论鼓励一下!
如果有更优的的建议或方法,可以在评论区留下见解!