DataLeap 任务调度依赖是不同任务节点之间,形成上下游依赖关系的配置操作。您可根据实际业务逻辑所需的依赖场景,配置任务的上下游依赖,完成数据血缘构建。实现上游任务执行完成并产出数据后,下游任务才会开始执行,来保障下游执行时,能够正常获取到上游产出的数据,确保数据质量,提升数据开发效率。
本文将为您介绍调度依赖的配置说明。
上下游节点配置依赖关系后,下游任务执行时,需满足以下条件后方能继续执行:
通过建立任务依赖,完成数据血缘构建。一般情况下,当任务执行成功时,数据表分区数据即已就绪。
上游依赖可通过依赖推荐或手动添加的方式进行设置。
LAS SQL、EMR HSQL、EMR StarRocks、EMR Serverless StarRocks/Spark SQL、ByteHouse CE SQL 任务,根据 SQL 逻辑,支持自动推荐当前任务依赖所需的上游任务信息。
单击依赖推荐按钮:
说明
SQL 逻辑中依赖的表需为分区表,方可展现依赖推荐中 Sensor 任务创建指引。
依赖推荐功能可大大减少在任务依赖配置中的工作量,但依赖推荐存在其局限性。当发现依赖推荐返回的任务,缺少某些当前任务所使用表的数据更新任务时,您也可使用手动添加方式,人工调整依赖关系。
单击手动添加按钮,在依赖任务搜索页面,通过任务名称、任务 ID,数据表或 HDFS 路径进行搜索,添加所需依赖的上游任务。
说明
勾选依赖的任务后,单击确定按钮,完成手动添加依赖。
找到对应上游任务并添加依赖后,您可进行后续的依赖配置方式设置,依赖配置支持指定偏移量和就近依赖两种方式。
说明
依赖配置方式有项目默认采用的配置方式,您可在创建项目时,指定任务依赖的默认配置方式为指定偏移量或就近依赖。操作详见创建项目。
指定偏移量在依赖不同调度频率的任务或调度日期出现偏移时,需要手动设置偏移量。
说明
指定偏移量配置方式时,系统默认会填充偏移量参数,但默认设置的偏移量仅适用于典型情况,若默认值不适用于当前任务场景,您可手动进行偏移参数调整。
依赖配置方式下拉选择指定偏移量;
选择集合或区间偏移形式,来设置依赖偏移参数。上下游任务频率不同,依赖实现机制也不相同,具体分为以下三大类:
上下游频率类型 | 依赖实现机制 | 实际案例 | 偏移设置示例(区间/集合 偏移量 偏移单位) |
---|---|---|---|
同频依赖 | 当前任务实例的业务时间+偏移量*偏移单位=上游任务实例的业务时间。 | 天任务依赖天任务,依赖上游任务同一天执行的实例 | 集合 0 天 |
大频率依赖小频率 | 当前任务实例的业务时间+偏移量*偏移单位+业务时间补偿值=上游任务实例的业务时间; | 天任务依赖小时任务,依赖上游任务昨天执行的24个小时实例 | 区间 -23,0 小时 |
小频率依赖大频率 | 依赖“(当前任务实例的业务时间 - 偏移量*偏移单位)~ 当前任务实例的业务时间 ” 时间范围内,上游任务执行的全部实例; | 小时任务依赖天任务,依赖上游最近2天执行的实例 | 集合 -1,0 天 |
说明
不同频率的上游任务,对应偏移单位说明:
偏移参数设置完成后,您可单击依赖预览按钮,可以查看按照当前的依赖设置,并根据实际情况选择指定的业务时间,来预览上下游任务指定业务日期下的实例依赖关系,方便及时验证偏移设置是否符合预期。
依赖配置方式下拉选择就近依赖时,无需再配置其余偏移量参数,下游实例寻找上游实例依赖时会遵循就近原则,即依赖距离其定时执行时间最近(等于或早于本实例的定时时间)的上游实例。
上下游同频依赖,即执行频率相同时:
上下游周期实例数量相等:上下游实例会一一对应,直接依赖;
场景 | 任务说明 | 依赖示意图 |
---|---|---|
小时 B 依赖小时 A | 小时任务 A\B,一天均生成 24 个实例,上下游实例数量一致,且首个实例定时时间均为 0:30 | 上下游实例 A\B 一一对应依赖。 |
小时任务 A\B,一天均生成 4 个实例,上下游实例数量一致:
| 上下游实例 A\B 按实例生成顺序一一对应依赖。 |
上下游周期实例数量不等:依赖上游左侧实例中距离最近的;如果没有,则依赖最左侧实例(上游任务的第一个实例)。
说明
左侧实例的定义:实例 A 的定时执行时间为 x,定时时间早于 x 的上游实例,被称为 A 的左侧实例。
场景 | 任务说明 | 依赖示意图 |
---|---|---|
小时 B 依赖小时 A |
| 实例 B 就近依赖实例 A,即依赖距离实例 B 定时执行时间最近(等于或早于实例 B 的定时时间)的上游实例 A。 |
依赖上游左侧实例中距离最近的;如果没有,则依赖最左侧实例(上游任务的第一个实例)。
说明
左侧实例的定义:实例 A 的定时执行时间为 x,定时时间早于 x 的上游实例,被称为 A 的左侧实例。
大频率依赖小频率
说明
若大频率需要依赖当前定时时间之前所有的小频率任务实例,则小频率任务需开启跨周期自依赖选项,如定时时间 3:00 的天任务实例,需要依赖 3:00 及之前所有的小时任务实例,则您需开启小时任务的跨周期自依赖。开启操作详见6 任务自依赖设置
场景 | 任务说明 | 依赖示意图 |
---|---|---|
天任务 B 依赖小时任务 A |
| 实例 B 就近依赖实例 A,依赖距离实例 B 定时执行时间最近(等于或早于实例 B 的定时时间)的上游实例 A,即 3:00 的天实例依赖 3:00 的小时实例,其余小时实例 A 均没有下游依赖。 |
小时任务 B 依赖分钟任务 A |
| 与天任务依赖小时任务一致,就近依赖仅依赖距离实例 B 定时执行时间最近(等于或早于实例 B 的定时时间)的上游实例 A |
小频率依赖大频率
场景 | 任务说明 | 依赖示意图 |
---|---|---|
小时任务 B 依赖天任务 A |
| 实例 B 就近依赖实例 A,因上游仅生成一个 3:00 天实例,所有下游所有小时实例都将依赖上游的唯一一个实例。 |
分钟任务 B 依赖小时任务 A |
| 实例 B 就近依赖实例 A,依赖距离实例 B 定时执行时间最近(等于或早于实例 B 的定时时间)的上游实例 A。 |
就近依赖设置完成后,您可单击依赖预览按钮,可以查看按照当前的就近依赖设置,并根据实际情况选择指定的业务时间,来预览上下游任务指定业务日期下的实例依赖关系,方便及时验证依赖设置是否符合预期。
如果任务需要依赖自身上一周期的产出,您可使用任务自依赖设置。
任务自依赖仅支持跨周期自依赖设置。 若任务需要依赖自己上一周期的数据产出,例如当天任务的执行,依赖当前任务昨天的执行结果,您可选择跨周期自依赖设置为是。
注意
跨周期自依赖开启时,您需在调度属性中,设置“最早回溯时间”,则最早回溯时间对应的实例,便不检查上一调度周期的运行,可直接从最早回溯时间的实例开始运行。
任务调度依赖配置完成后,若您的上下游任务有输入输出参数传递的场景,您可继续配置任务输入输出参数。详见输入输出参数设置