DolphinScheduler 6 个高频 SQL 操作技巧

摘要: Apache DolphinScheduler系列4-后台SQL经验分享

关键词: 大数据、数据质量、数据调度

整体说明

在调研了 DolphinScheduler 之后,在项目上实际使用了一段时间,有了一些后台SQL实际经验,分享如下。

进入DolphinScheduler 后台数据库,我这里使用的是MySQL数据库。

以任务名称包含“ods_xf_act” 的任务为例。

一、修改任务组操作

UPDATE t_ds_task_definition a
join t_ds_task_definition_log b on a.`code`=b.`code`and a.version=b.version
set a.task_group_id = 19,b.task_group_id=19
where a.name like'%ods_xf_act%'

二、批量修改任务执行类型

UPDATE t_ds_process_definition a
join t_ds_process_definition_log b on a.code=b.code and a.version=b.version
set a.execution_type = 1,b.execution_type=1
where a.name like'%ods_xf_act%';

三、查看定时器配置情况

根据此来选择配置定时器

select crontab,count(*) from t_ds_schedules
groupby crontab
orderbycount(*) desc

四、批量更改定时器

定时器,在前台页面修改很麻烦,一个个改很慢,所以想着从后台批量修改。

  1. 确定需要更新的定时器列表
select t1.id,t1.process_definition_code,crontab,t2.name from t_ds_schedules t1
join t_ds_process_definition t2
on t1.process_definition_code = t2.`code`
wherenamelike'%ods_xf_act%'
and crontab like'%0 0 5 *%'
  1. 更新成需要的crontab定时器
update t_ds_schedules t1
join t_ds_process_definition t2
on t1.process_definition_code = t2.`code`
set t1.crontab = '0 0 11 * * ? *'
wherenamelike'%ods_xf_act%'
and crontab like'%0 0 5 *%'
  1. 更新成需要的crontab定时器触发表 由于定时器已经 5 -> 11修改完成, 所以后面的where 条件都是 11
update qrtz_cron_triggers t1
set t1.CRON_EXPRESSION = '0 0 11 * * ? *'
where t1.TRIGGER_NAME in (
selectconcat("job_",t1.id) from t_ds_schedules t1
join t_ds_process_definition t2
on t1.process_definition_code = t2.`code`
wherenamelike'%ods_xf_act%'
and crontab like'%0 0 11 *%'
)
  1. 更新成最新crontab定时触发时间的起始时间 由于NEXT_FIRE_TIME有更新时差,所以往前推8小时
update qrtz_triggers t1
set t1.NEXT_FIRE_TIME = round(UNIX_TIMESTAMP(date_sub("2024-07-23 11:00:00", INTERVAL8HOUR) )*1000)
where t1.TRIGGER_NAME in (
selectconcat("job_",t1.id) from t_ds_schedules t1
join t_ds_process_definition t2
on t1.process_definition_code = t2.`code`
wherenamelike'%ods_xf_act%'
and crontab like'%0 0 11 *%'
)

五、通知策略修改为“都不发”,仍然告警

现象: 原先选择“失败发”,后面修改为“都不发”

原因: 原先有告警组,然后修改为都不发,原告警组后台并没有修改,是一个bug。

临时解决方案:

select t1.*
from t_ds_schedules t1
join t_ds_process_definition t2
on t1.process_definition_code = t2.`code`
wherenamelike'%ods_xf_act%'

把warning_type = 0 的,对应warning_group_id 都修改为 0

六、任务组队列,页面没有任务,已用资源却占满

查看任务组列表

select * from t_ds_task_group
orderby create_time desc

如果遇到任务组是满的,页面查询却没有任务,可以手动修改字段值图片

查看任务组队列列表,找出没有完成,修改成已完成,就是修改值为2。

-- t_ds_task_group_queue.`status` tinyint(4) DEFAULT '-1' COMMENT '-1: waiting  1: running  2: finished'

select * from t_ds_task_group_queue
where1=1
andstatus <> 2  -- finished 完成
orderby create_time desc

查看任务列表,找出没有完成,修改成已完成,就是修改值为7。

-- t_ds_task_instance.`state` tinyint(4) DEFAULT NULL COMMENT 'Status: 0 commit succeeded, 1 running, 2 prepare to pause, 3 pause, 4 prepare to stop, 5 stop, 6 fail, 7 succeed, 8 need fault tolerance, 9 kill, 10 wait for thread, 11 wait for dependency to complete'

-- id 是上面t_ds_task_group_queue的task_id

select * from t_ds_task_instance
where state <> 7-- success
andidin (
selectidfrom t_ds_task_group_queue
where1=1
andstatus <> 2-- finished 完成
orderby create_time desc
)
orderby submit_time desc
limit100

转载自鹏说大数据
原文链接:Apache DolphinScheduler系列4-后台SQL经验分享

Apache DolphinScheduler是一个新一代分布式大数据工作流任务调度系统,致力于“解决大数据任务之间错综复杂的依赖关系,整个数据处理开箱即用”。它以 DAG(有向无环图) 的方式将任务连接起来,可实时监控任务的运行状态,同时支持重试、从指定节点恢复失败、暂停及 Kill任务等操作。目前已经有像IBM、腾讯、美团、360等400多家公司生产上使用。 调度系统现在市面上的调度系统那么多,比如老牌的Airflow, Oozie,Kettle,xxl-job ,Spring Batch等等, 为什么要选DolphinSchedulerDolphinScheduler 的定位是大数据工作流调度。通过把大数据工作流做了重点标注. 从而可以知道DolphinScheduler的定位是针对于大数据体系。 DolphinScheduler是非常强大的大数据调度工具,有以下一些特点:1、通过拖拽以DAG 图的方式将 Task 按照任务的依赖关系关联起来,可实时可视化监控任务的运行状态;2、支持丰富的任务类型;3、支持工作流定时调度、依赖调度、手动调度、手动暂停/停止/恢复,同时支持失败重试/告警、从指定节点恢复失败、Kill 任务等操作;4、支持工作流全局参数及节点自定义参数设置;5、支持集群HA,通过 Zookeeper实现 Master 集群和 Worker 集群去中心化;6、支持工作流运行历史树形/甘特图展示、支持任务状态统计、流程状态统计;7、支持补数,并行或串行回填数据。课程会带大家构建DolphinScheduler大数据调度平台,实战讲解多种任务调度配置,会基于案例讲解DolphinScheduler使用,让大家在实战中掌握DolphinScheduler。 DolphinScheduler 发展很快 很多公司调度都切换到了DolphinScheduler,掌握DolphinScheduler调度使用势在必行,抓住新技术机遇,为跳巢涨薪做好准备。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DolphinScheduler社区

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值