本文介绍如何使用数据管理DMS任务编排(老)高效地实现事件调度。
背景信息
说明 任务编排(老)功能已下线。详细信息,请参见
【通知】下线任务编排(老)和数仓开发(老)功能。
传统的数据库事件调度(如MySQL的事件调度器Event Scheduler)虽然功能强大,但在使用过程中仍发现一些不足:
- 门槛高:用户需要掌握事件定义的特殊SQL语法(
CREATE EVENT
、ALTER EVENT
),无法通过简单的界面完成配置。 - 强依赖数据库内核:内核需要支持并开启事件调度器。
- 受限单个数据库:只能针对单个数据库进行调度,无法与其他数据库或工具进行联动。
- 难追踪:无法查看调度事件的执行状态、执行历史、运行时长等信息。
- 难运维:无法对事件执行暂停、重跑等操作,事件执行失败也无法恢复。
- 无通知:事件执行状态(成功或失败)无法主动通知到用户(短信、Email等)。
为解决这些问题,推荐您使用DMS的任务编排功能,它并不依赖数据库内核的事件调度能力,而是一个外部独立的任务编排与调度系统。任务编排功能的特点如下:
- 支持十几种数据库引擎(MySQL、Oracle、PostgreSQL、SQL Server等)和多种生态工具(数据迁移、备份、跨库分析等),可以轻松实现跨库、跨产品功能组合联动。
- 支持可视化的编辑界面,可以通过拖拽和简单的配置即可创建出十分复杂的调度任务。
- 支持多种消息通知机制(钉钉、短信、邮件等)。
- 支持暂停、终止、重跑等多种运维操作。
操作步骤
本示例通过DMS任务编排实现event_click_archive
事件。该事件的描述:希望从2020年12月1日开始,每天0点钟把user_click
表中两天前的数据转储到click_history
表(历史表)中并删除user_click
表中的对应数据,user_click
表中始终只保留当前日期前一天的数据。
该事件的SQL代码如下。
DELIMITER |
CREATE EVENT IF NOT EXISTS event_click_archive
ON SCHEDULE EVERY 1 DAY STARTS '2020-12-01 00:00.00'
ON COMPLETION PRESERVE
COMMENT '定期归档user_click表数据'
DO
BEGIN
INSERT INTO click_history SELECT * FROM user_click
WHERE create_time < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 1 DAY);
DELETE FROM user_click WHERE create_time < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 1 DAY);
END |
DELIMITER ;
- 登录数据管理DMS 5.0。
- 在顶部菜单栏中,选择 。
- 单击新增任务流。
- 在新建任务流对话框,将任务流名称设置为
df_archive_click
,将描述设置为测试
,单击确认。即会进入任务编排页面。 - 在任务编排页面的左侧任务类型中,选择 ,并拖拽至画布的空白区域。
- 在画布中双击单实例SQL节点,配置以下信息。
- 单击页面左上方的试运行按钮进行测试。
- 如果执行日志的最后一行出现
status SUCCEEDED
,表明任务试运行成功。 - 如果执行日志的最后一行出现
status FAILED
,表明任务试运行失败,在执行日志中查看执行失败的节点和原因,修改配置后重新尝试。
- 如果执行日志的最后一行出现
- 在生成报表任务流画布的下方,配置、查看任务流相关信息。
- 发布任务流。具体操作,请参见发布或下线任务流。
查看任务流的执行状态
- 登录数据管理DMS 5.0。
- 在顶部菜单栏中,选择 。
- 单击任务流名称,进入任务流详情页面。
- 单击画布右上方前往运维,在任务流运维页面查看。
- 在任务流运维页面上方,查看任务流的创建时间、修改时间、调度配置情况、是否发布状态等基本信息。
- 单击运行记录页签,选择调度触发或手动触发,查看任务流运行记录。
说明
- 调度触发:通过调度或指定时间的方式运行任务流。
- 手动触发:通过手动单击试运行的方式运行任务流。
- 单击状态列前的
,查看任务流运行日志。
- 在操作列中,单击执行历史,查看任务流的操作时间、操作人员和操作内容。
- 在操作列中,对不同执行状态的任务流进行终止、重跑、暂停、恢复和置成功的操作。
说明
- 对于执行成功的任务流,可以进行重跑操作。
- 对于执行失败的任务流,可以将该任务流运行记录的状态置为成功。
- 对于执行中的任务流,可以终止或暂停任务流运行。
- 单击发布列表页签,查看任务流的版本ID,发布人,发布时间、版本详情和DAG图。
您还可以选中任意2个版本ID,单击版本对比,查看版本的对比信息。