当标准的上下游依赖无法满足您复杂的业务场景时——例如,天任务需等待前一天所有小时任务完成,或需要组合多个任务的“且/或”条件——您就需要一个更灵活的工具。本文介绍如何使用依赖检查节点来构建跨周期、跨工作流、跨工作空间的复杂依赖检查,让您精准控制任务的触发时机,确保数据处理的准确性和时效性。
功能概述
依赖检查节点是一个强大的、灵活的依赖关系检查工具。当需要处理复杂的、跨周期的依赖场景时,例如天任务需要等待前一天所有小时任务都成功后才能运行,或者需要同时满足多个来自不同工作空间的任务条件时,依赖检查节点是您的最佳选择。
核心能力:
跨实体依赖:支持跨工作空间、跨工作流设置依赖。
跨周期依赖:精确指定跨周期依赖时,所依赖的上游实例的时间范围。
复杂逻辑组合:支持通过且(AND)与或(OR)关系组合多个依赖检查条件。
自定义检查策略:可灵活设置检查频率和最大等待时间,超时则任务失败。
配置界面概览
依赖检查节点的配置主要分为两部分:依赖检查和检查设置。

配置依赖检查节点
依赖检查节点的配置核心是构建一个依赖检查逻辑。您可以定义多个检查项和检查组,并通过且/或关系进行自由组合。每个检查项都指向一个或多个上游节点在特定时间范围内的实例。当依赖检查节点运行时,它会评估整个逻辑表达式,最终返回一个布尔值(True/False),以此决定下游节点是执行还是阻塞。
配置依赖检查项
支持在一个依赖检查节点中设置多个检查组,每个组内可以包含多个检查项,从而构建复杂的依赖网络。
添加检查组和检查项:
点击+ 添加项来创建一个新的依赖检查条件。
多个检查项可以被组织在一个检查组内。
配置检查项内容:
任务:输入您要依赖的任务输出名、名称或ID进行搜索和选择。
支持选择本工作空间同工作流、跨工作流或其他有权限的工作空间下的任务。
重要若仅实现简单跨空间或跨工作流依赖调度,可参考如何配置跨业务流程、跨工作空间的调度依赖。
如果选择一个尚未发布的任务,系统会提示您所选的任务未发布至生产环境,运行时可能会检查失败。
时间周期:时间周期决定节点运行时要检查上游任务的哪个历史实例。根据需要选择不同的时间周期类型,以下是详细说明。
说明检查项内为且的关系,即若选择当天的所有小时任务,需要全部运行成功才返回True。
时间周期类型
可选项
说明
分钟
前 X 分钟(X取值范围: 0-59)检查相对于当前时间的
X分钟前的实例。当前分钟对应前 0 分钟。小时
前 X 小时(X取值范围: 0-23)检查相对于当前时间的
X小时前的实例。当前小时对应前 0 小时。天
前 X 天(X取值范围: 0-7)检查
X天前的实例。当天对应前 0 天。周
本周一到周日、上周一到周日、上周一、上周二...上周日。检查指定周范围内的实例。
月
本月第一天到最后一天本月第一天上个月最后一天等。检查指定月份范围内的实例。
设置逻辑关系(且/或):
在界面左侧,您可以设置检查组之间以及组内检查项之间的逻辑关系。
且(AND):表示所有关联的检查项/检查组都必须成功。
或(OR):表示只要有一个关联的检查项/检查组成功即可。
配置检查设置
在页面的最下方,您可以定义节点的检查行为:
检查间隔:设置每隔多久检查一次所有依赖项的状态。最小值为
1 分钟/次。最大检查时长:设置节点最长的等待时间。如果超过此时长,所有依赖项仍未满足条件,则依赖检查节点自身将运行失败。最大值为
1440 分钟(24小时)。
运行逻辑与状态
检查中:在最大检查时长内,只要有任何一个依赖条件未满足,节点任务就处于运行中状态,并会根据“检查间隔”周期性地重试。
运行成功:在最大检查时长内,所有依赖条件根据您设定的“且/或”逻辑被满足,节点状态变为运行成功。
运行失败:
超过最大检查时长后,依赖条件仍未被满足。
在检查过程中,如果发现某个必须成功的依赖项(例如在“且”关系中)所指向的任务不存在,节点会提前终止并置为运行失败。
实战案例:让“天任务”等待“前一日所有小时任务”
回到开头那个最经典的问题。假设有一个每日汇总报表的天任务(rpt_daily_summary),它必须等到一个名为 ods_hourly_log 的小时任务在前一天(00:00 到 23:59)的所有24个实例都成功运行后,才能启动。
拖入依赖检查节点
在你的天任务rpt_daily_summary上游,拖入一个依赖检查节点,并连接它们。配置依赖检查项
双击打开依赖检查节点,配置节点的依赖检查项。添加依赖任务:点击 + 添加项,在任务输入框里,搜索并选择依赖的那个小时任务
ods_hourly_log。定义时间范围:需要检查的是 “前一天” 的所有小时实例,故时间周期选择
天,然后选择前1天。系统将检查前一个自然日内这个小时任务产生的所有实例(24个)是否全部成功。
设置逻辑关系:仅此一个检查项,检查组内部以及组之间的逻辑关系都保持默认的
且(AND)即可。
配置检查策略
检查间隔:比如设置为5分钟/次,表示如果依赖还没满足,系统将等待5分钟,然后再去检查一次。
最大检查时长:比如设置为180分钟,表示从天任务的定时时间开始,最多等待3个小时。如果3小时后,前一天的小时任务还没全部运行完毕,这个依赖检查节点就直接报错失败,下游的天任务也不会启动。这能防止无限期等待,及时暴露问题。
配置完成,保存并发布。这样,每天你的日报任务就会等到所有小时数据准备就绪后再运行。
附录:与调度依赖区别
节点配置的检查项任务和调度配置中的调度依赖不同,区别如下:
特性 | 依赖检查节点中的被检查节点 | 调度依赖节点 |
触发方式 | 依赖检查节点主动轮询检查项的状态,检查项的节点不会触发或修改依赖检查节点的状态。 | 目标节点到运行时间后,查看调度依赖节点的状态是否满足要求。 |
DAG 可视化 | 依赖关系内聚在节点配置中,不体现在DAG图上。 | 在DAG图中展示为上下游依赖连线。 |
补数据/重跑联动 | 单独重跑/补数据检查项的节点,不会自动触发目标节点。 | 对调度依赖节点进行补数据,可选择性触发目标节点。 |