Apache Doris 基于 Job Scheduler 实现秒级触发任务调度能力

💡 原文中文,约5800字,阅读约需14分钟。
📝

内容提要

Apache Doris 2.1版本引入了Job Scheduler功能,提高了数据管理中的定时调度能力。该功能包括高效调度、灵活调度、事件池和高性能处理队列等特点,实现了数据导入的完整性和一致性。同时,基于Catalog和Job Scheduler的数据自动同步也得到了介绍。未来,Doris Job Scheduler还将支持UI界面查看任务分布情况和对导入任务、UPDATE、DELETE操作进行定时调度。

🔎

延伸解读

从外部依赖到内置调度:Job Scheduler 的定位变化

在 Doris 2.1 之前,定时调度通常依赖业务代码或第三方调度系统,受限于外部能力,可能无法满足 Doris 对调度策略和资源管理的灵活性要求,且外部系统故障会带来额外风险。Job Scheduler 将调度能力内置到 Doris 中,实现自主任务调度,精准度达秒级,减少了对外部系统的依赖,从而降低故障风险和运维成本。

调度能力如何支撑数据管理场景

Job Scheduler 支持一次性调度和周期性调度,周期可指定开始和结束时间,并采用时间轮算法保证秒级触发。结合 Catalog,用户可定期从外部数据源同步数据,例如电商场景中从 MySQL 同步用户数据到 Doris。此外,它还可用于定期清理过期数据,并通过事件池和高性能队列避免任务过载,保障数据导入的完整性和一致性。

当前限制与未来演进方向

目前 Job Scheduler 的 DO 子句仅支持 Insert 语句,这意味着调度操作主要围绕数据导入展开。未来计划支持对导入任务、UPDATE、DELETE 操作进行定时调度,并增加 UI 界面查看任务分布和 JOB 流程编排(DAG JOB)。这些改进将扩展调度范围,使内部数仓任务编排更高效,但现阶段用户需注意其操作类型限制。

❓

Q&A

Apache Doris 2.1版本的Job Scheduler有什么主要功能?

Job Scheduler主要功能包括高效调度、灵活调度、事件池和高性能处理队列,确保数据导入的完整性和一致性。

Job Scheduler如何提高数据管理的效率?

Job Scheduler通过自主任务调度,减少对外部系统的依赖,降低故障风险,提高数据处理的效率和准确性。

如何创建一次性和周期性的Job?

一次性Job使用语法CREATE JOB job_name ON SCHEDULE AT timestamp DO execute_sql;周期性Job使用CREATE JOB job_name ON SCHEDULE EVERY interval DO execute_sql。

Job Scheduler的调度精度如何实现?

Job Scheduler采用时间轮算法与Disruptor结合,实现秒级的任务调度,确保高效触发。

Job Scheduler如何与Catalog结合实现数据自动同步?

Job Scheduler与Catalog结合,可以实现跨数据源的定期数据同步,确保多源数据高效整合到目标系统中。

未来Doris Job Scheduler将支持哪些新特性?

未来将支持UI界面查看任务分布、JOB流程编排以及对导入任务、UPDATE、DELETE操作进行定时调度。

🏷️

标签

➡️

继续阅读