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
四、批量更改定时器
定时器,在前台页面修改很麻烦,一个个改很慢,所以想着从后台批量修改。
-
确定需要更新的定时器列表
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 *%' -
更新成需要的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 *%' -
更新成需要的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 *%' ) -
更新成最新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经验分享
本文由 白鲸开源科技 提供发布支持!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
一行代码性能翻倍?Rust开发者不可不知的“内存黑科技”!
在Rust高性能编程圈,大家常常热议Tokio异步框架、SIMD向量化指令、锁分离等“硬核”优化手段。然而,一个常被忽视的底层“神器”——内存分配器(Allocator),却能以极小的改动,带来颠覆性的性能飞跃! 或许你还不知道,仅仅替换掉Rust程序默认的内存分配器,你的程序在高并发、大数据量场景下,吞吐量可以暴涨数倍,延迟更是可能减半! 这并非天方夜谭,而是经过严格实测的数据证明: 权威基准测试数据揭秘: 微软mimalloc官方报告:在Linux多线程严苛环境下,mimalloc相比glibc malloc平均性能提升高达5.3倍,同时内存占用(RSS)显著减少约50%。这意味着同样的资源下,你的服务能处理更多请求,成本更低! jemalloc官方论文:在4核服务器的真实负载测试中,默认的glibc malloc吞吐量仅为jemalloc的15%。对于追求极致并发的服务器应用,性能差距可见一斑! 本文将带你一起揭开内存分配器的神秘面纱,深度剖析其性能差距的根源,并手把手教你如何“一行代码”实现性能飞跃! 1. 🤔 内存分配器:你程序的“隐形大管家” 简单说,就是你程序堆内存的管...
- 下一篇
Terraform + Zadig:打造企业级基础设施自动化流程
IaC 与 Terraform 的核心价值 在云原生与 DevOps 实践中,基础设施即代码(IaC)已成为现代 IT 运维的黄金标准。传统的手工管理服务器、网络和存储不仅效率低下,还容易导致环境漂移,难以保证测试、预发布和生产环境的一致性。 Terraform 是 HashiCorp 推出的 IaC 工具,采用声明式的 HCL 语法,使运维与开发团队能够像管理应用代码一样管理基础设施。其核心优势包括: 环境一致性:基础设施以代码形式定义,确保每次部署完全一致。 版本控制:基础设施变更可追溯,支持 GitOps 流程。 多云支持:通过 Provider 机制统一管理 AWS、Azure、Kubernetes 等多种平台资源。 自动化编排:结合 CI/CD 工具(如 Zadig),实现基础设施的自动化变更与管理。 然而,纯粹依赖 Terraform CLI 执行 terraform plan 和 terraform apply 仍需人工操作,存在误操作风险。将 Terraform 与 Zadig 深度集成,实现自动化变更流程,成为企业级 DevOps 的最佳实践,有效提升了变更的安全性和...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS8编译安装MySQL8.0.19
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16