任务调度依赖关系

概述

任务调度依赖是不同任务节点之间,形成上下游依赖关系的配置操作。既支持同工作空间内配置任务依赖关系,也支持配置跨工作空间依赖其它工作空间下的任务节点。您可根据实际业务逻辑所需的依赖场景,配置任务的上下游依赖,

依赖特殊说明

当前的依赖限制

  • 不支持任务类型:实时同步、多表实时同步、动态表、流式SQL。
  • 不允许配置环形依赖。
  • 当被依赖的节点未上线时,下游节点不支持上线。
  • 若当前节点被其他任务所依赖,且该节点下游的周期调度任务处于正常调度中,则当前节点不允许直接下线。

依赖配置入口

进入具体的任务后,点击任务工具栏「调度」,进入调度配置弹窗页面。 点击调度依赖可选择依赖的任务,配置依赖策略等行为操作。

实例依赖关系说明

云器Lakehouse支持分钟、小时、天三种类型的调度任务互相依赖,调度类型不同,任务执行的周期数不同。当周期任务运行时,下游周期实例会依赖上游周期实例。 当前系统内提供三种依赖方式:

默认依赖:系统内默认的挂载关系为区间依赖,即用下游任务实例的起止时间范围去与上游实例的起止时间范围进行重叠判断后,并基于以下规则判断具体依赖的实例范围:

  • 同周期:即同周期进行依赖。
  • 大周期依赖小周期:比如天任务依赖小时任务,下游实例覆盖上游任务几个实例,就依赖哪几个上游实例。
  • 小周期依赖大周期:比如小时任务依赖天任务,下游实例被上游哪个实例覆盖,就依赖哪个上游实例。

向前依赖:下游任务实例寻找上游任务实例依赖时只会依赖距离其定义时间往前(等于或早于本实例的定时时间)的所有上游实例。

向前就近依赖:当用户选定向前就近依赖时,下游任务实例寻找上游任务实例依赖时会遵循就近原则,即依赖距离其定时执行时间最近(等于或早于本实例的定时时间)的上游实例。

复杂依赖场景说明

同周期依赖

场景分类任务说明示意图_默认依赖
天任务B依赖天任务A任务A:每天19:00生成1个实例 任务B:每天09:00生成1个实例 上游天任务未设置自依赖 默认下游天任务的周期实例挂载依赖至同周期的上游天任务周期实例。 上游天任务设置自依赖 上游天任务设置自依赖,下游天任务依赖上游天任务时存在跨周期依赖。
说明:无论任何类型的自依赖都会创建一个与上一个周期的依赖关系,若上一个周期未运行完成,会阻碍下一个周期的任务无法调度。示意图仅以天周期演示,后续类型不再重复说明。
小时任务B依赖小时任务A任务A:00:31-23:59区间,每1个小时生成实例。 一共生成24个实例,首个实例为00:31。 任务B:00:10-23:59区间,每1个小时生成实例。 一共生成24个实例,首个实例为00:10。
任务A:12:30-15:59区间,每1个小时生成实例。 一共生成4个实例,首个实例为12:31。 任务B:15:10-18:59区间,每1个小时生成实例。 一共生成4个实例,首个实例为15:10。
分钟任务B依赖分钟任务A任务A:00:00-01:59区间,每5个分钟生成实例。 一共生成12个实例,首个实例为00:00。 任务B:00:10-00:59区间,每5个分支生成实例。 一共生成10个实例,首个实例为00:10。
任务A:00:22-00:59区间,每5个分钟生成实例。 一共生成8个实例,首个实例为00:12。 任务B:00:36-00:59区间,每5个分钟生成实例。 一共生成5个实例,首个实例为00:15。

大周期依赖小周期

场景依赖说明示意图 _默认依赖
天任务B依赖小时任务A任务A:00:31点-23:59点,每1个小时生成实例。 一共生成24个实例,首个实例为00:31 任务B:每天19:00生成1个实例
小时任务B依赖小时任务A任务A:00:31-23:59点区间,每1个小时生成实例。 一共生成24个实例,首个实例为00:31。 任务B:00:10-23:59点区间,每2个小时生成实例。 一共生成12个实例,首个实例为00:10。
任务A:05:31-11:59点区间,每3个小时生成实例。 一共生成3个实例,首个实例为05:31。 任务B:07:10-17:59点区间,每5个小时生成实例。 一共生成3个实例,首个实例为07:10。
小时任务B依赖分钟任务A任务A:00:08-01:59点区间,每10分钟生成实例。 一共生成12个实例,首个实例为00:08。 任务B:00:15-00:59点区间,每1个小时生成实例。 一共生成1个实例,首个实例为00:15。
分钟任务B依赖分钟任务A任务A:00:00-01:59点区间,每10个分钟生成实例。 一共生成12个实例,首个实例为00:00。 任务B:00:38-01:59点区间,每20分钟生成实例。 一共生成4个实例,首个实例为00:38。
说明:分钟粒度的起止范围若存在跨小时,则会自动截断,例如图例任务B自左而右第二个实例的范围为「58,60)

小周期依赖大周期

场景依赖说明示意图 _默认依赖
小时任务B依赖天任务A任务A:每天19点生成1个实例 任务B:00:31点-23:59点,每1个小时生成实例。 一共生成24个实例,首个实例为00:31。
小时任务B依赖小时任务A任务A:00:31-23:59点区间,每2个小时生成实例。 一共生成12个实例,首个实例为00:31。 任务B:01:10-10:59点区间,每1个小时生成实例。 一共生成10个实例,首个实例为01:10。
分钟任务B依赖小时任务A任务A:00:15-00:59点区间,每1个小时生成实例。 一共生成1个实例,首个实例为00:15。 任务B:00:08-01:59点区间,每10分钟生成实例。 一共生成12个实例,首个实例为00:08。
分钟任务B依赖分钟任务A任务A:00:38-01:59点区间,每20分钟生成实例。 一共生成4个实例,首个实例为00:38。 任务B:00:00-01:59点区间,每10个分钟生成实例。 一共生成12个实例,首个实例为00:00。

常见问题

问题1:已提交至生产环境中的周期任务流程中,某个节点发现发现实例运行错误后,将该任务下线后替换成其他任务再提交运行后,为什么错误的实例还是会有。

回答:已运行完成的任务实例不会因为该任务的下线而下线。

联系我们
预约咨询
微信咨询
电话咨询