DataWorks支持分钟、小时、日、周、月、年等类型的调度任务互相依赖,调度类型不同,任务执行的周期数不同。任务各周期是通过实例的方式执行,当上下游调度依赖的类型不同时,您可通过该文档了解上下游各周期实例如何挂载依赖,即上下游任务不同周期实例的依赖情况。
背景信息
DataWorks中,调度任务会根据调度类型及周期数生成相应的周期实例(例如,小时调度任务每天会根据周期数产生相应数量的小时实例),通过实例的方式运行任务。周期任务设置的依赖关系,其本质是任务间所生成实例的依赖。上下游任务的调度类型不同,其生成的周期实例数及实例的依赖情况不同。
DataWorks支持多种调度依赖场景,不同场景的调度任务,可选择同周期依赖或依赖上一周期。同周期依赖及依赖上一周期,详情请参见调度依赖方式选择(同周期依赖)、调度依赖方式选择(跨周期依赖)。
配置调度依赖前,您需先了解以下内容。
序号 | 描述 | 相关文档 |
序号 | 描述 | 相关文档 |
1 | DataWorks支持多种调度类型(即分钟、小时、天、周、月、年),当上下游调度类型不一致时,DataWorks根据任务定时运行时间的就近原则设置调度依赖。
| |
2 | DataWorks上任务一旦设置依赖,即表示上下游任务间存在数据依赖。无论下游任务定时运行时间为几点,均需等上游任务执行完成后,下游任务才满足可执行条件。 | |
3 | 您可通过具体场景示例,进一步理解设置依赖的就近原则。 | 场景包括: |
挂载依赖:就近原则
DataWorks的周期任务运行时会生成多个周期实例,下游周期实例会依赖上游周期实例,通常若不指定需挂载至某个周期实例,下游周期实例挂载依赖时会遵循就近原则,即与下游周期实例运行时间最近,且未被其他周期实例依赖的上游周期实例。不同场景的依赖原则具体如下:
下游任务的定时运行时间若早于上游任务,即便到达下游任务的定时时间,该任务也不会被调度,需等待上游任务运行完成后才会被调度运行。
根据就近原则挂载依赖时,对于下游任务当天的第一个实例,如果上游没有比它更早的实例,则下游默认依赖上游当天的第一个实例。
场景 | 说明 | 示意图 |
场景 | 说明 | 示意图 |
小时、分钟任务相互依赖场景 |
| 小时、分钟任务相互依赖的细分场景概览如下图: 举例: 小时任务依赖小时任务。
|
天任务依赖小时或分钟任务 | 默认情况:天任务默认依赖小时、分钟任务当天所有周期实例,即待小时、分钟任务当天所有周期实例的数据加工完成后,天任务才会对其当天所有数据进行加工清洗。 其他情况:若天任务只需依赖距离自己运行时间最近的小时、分钟周期实例,您可为小时、分钟任务设置自依赖。设置后,该小时、分钟周期实例运行完成后,天任务便会启动执行。 |
各细分调度场景的依赖及运行情况详情介绍,请参见:附录一:复杂依赖场景汇总。
依赖关系对任务执行的影响
下游任务一旦挂载依赖,若上游任务非运行成功状态,即使到达下游任务的定时运行时间,该任务也不会执行。
例如,小时任务B依赖天任务A,小时任务未设置自依赖。
天任务A:定时运行时间设置为
07:00
。小时任务B:定时运行时间设置为
00:00
、08:00
、16:00
。
若天任务A未运行完成,即便到了下游小时任务B的定时运行时间00:00
,该任务也不会运行。下游任务B的最早实际运行时间为07:00
。
附录一:复杂依赖场景汇总
下游任务的定时运行时间若早于上游任务,即便到达下游任务的定时时间,该任务也不会被调度,需等待上游任务运行完成后才会调度运行,对于下游任务当天的第一个实例,如果上游没有比它更早的实例,则下游默认依赖上游当天的第一个实例。
附录二:工作流调度说明
在DataWorks中支持将工作流作为一个整体,添加上下游节点,其调度说明详情请参见:周期工作流。
- 本页导读 (1)
- 背景信息
- 挂载依赖:就近原则
- 依赖关系对任务执行的影响
- 附录一:复杂依赖场景汇总
- 小时任务依赖其他任务
- 天任务依赖其他任务
- 分钟任务依赖其他任务
- 其他任务依赖周、月、年任务
- 附录二:工作流调度说明