You need to enable JavaScript to run this app.
导航
任务调度依赖
最近更新时间:2024.09.24 12:10:40首次发布时间:2021.08.13 15:07:14

1 概述

DataLeap 任务调度依赖是不同任务节点之间,形成上下游依赖关系的配置操作。您可根据实际业务逻辑所需的依赖场景,配置任务的上下游依赖,完成数据血缘构建。实现上游任务执行完成并产出数据后,下游任务才会开始执行,来保障下游执行时,能够正常获取到上游产出的数据,确保数据质量,提升数据开发效率。
本文将为您介绍调度依赖的配置说明。

2 依赖注意说明

上下游节点配置依赖关系后,下游任务执行时,需满足以下条件后方能继续执行:

  1. 依赖的上游节点均已执行完成,且没有失败状态;
  2. 已到达下游任务调度属性中设定的调度执行时间。若已到达设定的执行时间,但上游仍没有执行完成时,下游也不会开始执行。
  3. 上游均已执行完成,并且当前时间已到达下游设定的执行时间时,任务还需具备充足的调度资源,才能够开始执行下游任务。

3 依赖配置入口

  1. 登录 DataLeap租户控制台
  2. 概览界面,显示加入的项目中,单击数据开发进入对应项目。
  3. 任务开发界面,左侧导航栏中,双击打开某个离线任务,进入节点的编辑界面。
  4. 单击右侧导航栏的调度设置按钮,找到依赖关系部分进行配置。

图片

4 任务上游依赖设置

通过建立任务依赖,完成数据血缘构建。一般情况下,当任务执行成功时,数据表分区数据即已就绪。
上游依赖可通过依赖推荐手动添加的方式进行设置。

4.1 依赖推荐

图片
LAS SQL、EMR HSQL、EMR StarRocks、EMR Serverless StarRocks/Spark SQL、ByteHouse CE SQL 任务,根据 SQL 逻辑,支持自动推荐当前任务依赖所需的上游任务信息。
单击依赖推荐按钮:

  • 若需依赖的引用表名,已有对应的产出任务,您可直接在弹窗返回的推荐任务列表中,选择需要依赖的任务;
    图片
  • 若需依赖的引用表名,未找到对应的产出任务,则您可进行以下操作:
    • 需检查当前任务的 SQL 代码逻辑是否符合要求;
    • 除上游是 LAS SQL 任务外,其余类型任务您还需确认上游依赖的任务,在“任务产出数据登记”中已配置任务具体产出的数据库表信息;若上游任务无法配置“任务产出数据登记”,如数据集成任务,则您可通过“手动添加”的方式,手动添加依赖关系;
    • 其中 LAS SQL、EMR HSQL 任务,若依赖推荐中没有推荐产出任务,除手动添加依赖方式外,您也可在依赖推荐的任务搜索窗口中,单击创建 Sensor 任务按钮,前往创建相应的 Sensor 产出任务,完成依赖关系配置。Sensor 任务指导详见 LAS Hive\HDFS-Sensor/EMR Sensor
      图片

      说明

      SQL 逻辑中依赖的表需为分区表,方可展现依赖推荐中 Sensor 任务创建指引。

    • 如果当前编辑的 SQL 代码中,有部分 SQL 解析异常,例如任务在调度设置 > 输入参数中使用项目参数类型,且参数设置勾选了加密选项,当非项目管理员操作任务解析时,由于解析不到加密参数,在单击依赖推荐时,系统会提示您推荐任务不完整或异常,需手动添加依赖
      此时您便可单击”手动添加依赖“按钮,手动进行搜索任务依赖操作。详见下方4.2 手动添加
      图片

4.2 手动添加

依赖推荐功能可大大减少在任务依赖配置中的工作量,但依赖推荐存在其局限性。当发现依赖推荐返回的任务,缺少某些当前任务所使用表的数据更新任务时,您也可使用手动添加方式,人工调整依赖关系。

  1. 单击手动添加按钮,在依赖任务搜索页面,通过任务名称、任务 ID,数据表或 HDFS 路径进行搜索,添加所需依赖的上游任务。

    说明

    • 已在运维中心关闭的任务,不支持被添加为上游依赖。
    • 准实时任务仅能依赖同样是准实时频率的任务,无法依赖分钟级及以上频率任务。因此,您需特别注意当前任务是否存在上下游依赖关系,在准实时和其余执行频率做切换时,会将当前任务的依赖关系清除。
  2. 勾选依赖的任务后,单击确定按钮,完成手动添加依赖。

5 依赖配置方式

找到对应上游任务并添加依赖后,您可进行后续的依赖配置方式设置,依赖配置支持指定偏移量就近依赖两种方式。

说明

依赖配置方式有项目默认采用的配置方式,您可在创建项目时,指定任务依赖的默认配置方式为指定偏移量就近依赖。操作详见创建项目

5.1 指定偏移量

指定偏移量在依赖不同调度频率的任务或调度日期出现偏移时,需要手动设置偏移量。

说明

指定偏移量配置方式时,系统默认会填充偏移量参数,但默认设置的偏移量仅适用于典型情况,若默认值不适用于当前任务场景,您可手动进行偏移参数调整。

  1. 依赖配置方式下拉选择指定偏移量;

  2. 选择集合区间偏移形式,来设置依赖偏移参数。上下游任务频率不同,依赖实现机制也不相同,具体分为以下三大类:

    上下游频率类型

    依赖实现机制

    实际案例

    偏移设置示例(区间/集合 偏移量 偏移单位)

    同频依赖

    当前任务实例的业务时间+偏移量*偏移单位=上游任务实例的业务时间。

    天任务依赖天任务,依赖上游任务同一天执行的实例

    集合 0 天

    大频率依赖小频率

    当前任务实例的业务时间+偏移量*偏移单位+业务时间补偿值=上游任务实例的业务时间;
    PS:业务时间补偿值 =(同一执行时间,小频率任务实例对应业务时间)-(同一执行时间,大频率任务实例对应业务时间);
    示例:当天依赖小时,业务时间补偿值=23小时。

    天任务依赖小时任务,依赖上游任务昨天执行的24个小时实例

    区间 -23,0 小时

    小频率依赖大频率

    依赖“(当前任务实例的业务时间 - 偏移量*偏移单位)~ 当前任务实例的业务时间 ” 时间范围内,上游任务执行的全部实例;
    PS:上述时间范围左开右闭。

    小时任务依赖天任务,依赖上游最近2天执行的实例

    集合 -1,0 天

    说明

    不同频率的上游任务,对应偏移单位说明:

    • 月任务:偏移单位=月,代表1月;偏移单位=天,代表1天;
    • 周任务:偏移单位=周,代表1周;偏移单位=天,代表1天;
    • 天任务:偏移单位=天,代表1天;
    • 小时任务:偏移单位=小时,代表1小时;
    • 分钟任务:偏移单位=分钟,代表5分钟;(目前分钟级别任务,最小频率为:每5分钟执行一次)。
  3. 偏移参数设置完成后,您可单击依赖预览按钮,可以查看按照当前的依赖设置,并根据实际情况选择指定的业务时间,来预览上下游任务指定业务日期下的实例依赖关系,方便及时验证偏移设置是否符合预期。

5.2 就近依赖

依赖配置方式下拉选择就近依赖时,无需再配置其余偏移量参数,下游实例寻找上游实例依赖时会遵循就近原则,即依赖距离其定时执行时间最近(等于或早于本实例的定时时间)的上游实例。

5.2.1 上下游同频依赖

上下游同频依赖,即执行频率相同时:

  • 上下游周期实例数量相等:上下游实例会一一对应,直接依赖;

    场景

    任务说明

    依赖示意图

    小时 B 依赖小时 A

    小时任务 A\B,一天均生成 24 个实例,上下游实例数量一致,且首个实例定时时间均为 0:30

    上下游实例 A\B 一一对应依赖。
    图片

    小时任务 A\B,一天均生成 4 个实例,上下游实例数量一致:

    • 任务 A 首个实例定时时间为 0:00
    • 任务 B 首个实例定时时间为 4:59

    上下游实例 A\B 按实例生成顺序一一对应依赖。
    图片

  • 上下游周期实例数量不等:依赖上游左侧实例中距离最近的;如果没有,则依赖最左侧实例(上游任务的第一个实例)。

    说明

    左侧实例的定义:实例 A 的定时执行时间为 x,定时时间早于 x 的上游实例,被称为 A 的左侧实例。

    场景

    任务说明

    依赖示意图

    小时 B 依赖小时 A

    • 小时任务 A 生成 4 个实例,定时时间分别为:4:00、8:00、12:00、16:00
    • 小时任务 B 生成 8 个实例,定时时间分别为:0:00、3:00、6:00、9:00、12:00、15:00、18:00、21:00

    实例 B 就近依赖实例 A,即依赖距离实例 B 定时执行时间最近(等于或早于实例 B 的定时时间)的上游实例 A。
    图片

5.2.2 上下游不同频率依赖

依赖上游左侧实例中距离最近的;如果没有,则依赖最左侧实例(上游任务的第一个实例)。

说明

左侧实例的定义:实例 A 的定时执行时间为 x,定时时间早于 x 的上游实例,被称为 A 的左侧实例。

  • 大频率依赖小频率

    说明

    若大频率需要依赖当前定时时间之前所有的小频率任务实例,则小频率任务需开启跨周期自依赖选项,如定时时间 3:00 的天任务实例,需要依赖 3:00 及之前所有的小时任务实例,则您需开启小时任务的跨周期自依赖。开启操作详见6 任务自依赖设置

    场景

    任务说明

    依赖示意图

    天任务 B 依赖小时任务 A

    • 小时任务 A 生成 24 个实例,首个实例为0:00
    • 天任务 B 生成 1 个实例,实例定时时间为 3:00

    实例 B 就近依赖实例 A,依赖距离实例 B 定时执行时间最近(等于或早于实例 B 的定时时间)的上游实例 A,即 3:00 的天实例依赖 3:00 的小时实例,其余小时实例 A 均没有下游依赖。
    图片

    小时任务 B 依赖分钟任务 A

    • 分钟任务 A,15分钟执行频率,首个实例为 0:00,一天共生成 96 个实例
    • 小时任务 B,生成 6 个实例,定时时间分别为:0:00、4:00、8:00、12:00、16:00、20:00

    与天任务依赖小时任务一致,就近依赖仅依赖距离实例 B 定时执行时间最近(等于或早于实例 B 的定时时间)的上游实例 A
    图片

  • 小频率依赖大频率

    场景

    任务说明

    依赖示意图

    小时任务 B 依赖天任务 A

    • 天任务 A 生成 1 个实例,首个实例为 3:00
    • 小时任务 B 生成 24 个实例,实例定时时间为 0:00

    实例 B 就近依赖实例 A,因上游仅生成一个 3:00 天实例,所有下游所有小时实例都将依赖上游的唯一一个实例。
    图片

    分钟任务 B 依赖小时任务 A

    • 小时任务 A,生成 6 个实例,定时时间分别为:0:07、4:07、8:07、12:07、16:07、20:07
    • 分钟任务 B,15 分钟执行频率,首个实例为 0:05,共生成 96 个实例

    实例 B 就近依赖实例 A,依赖距离实例 B 定时执行时间最近(等于或早于实例 B 的定时时间)的上游实例 A。
    图片

5.1.3 依赖预览

就近依赖设置完成后,您可单击依赖预览按钮,可以查看按照当前的就近依赖设置,并根据实际情况选择指定的业务时间,来预览上下游任务指定业务日期下的实例依赖关系,方便及时验证依赖设置是否符合预期。

6 任务自依赖设置

如果任务需要依赖自身上一周期的产出,您可使用任务自依赖设置。
任务自依赖仅支持跨周期自依赖设置。 若任务需要依赖自己上一周期的数据产出,例如当天任务的执行,依赖当前任务昨天的执行结果,您可选择跨周期自依赖设置为
图片

注意

跨周期自依赖开启时,您需在调度属性中,设置“最早回溯时间”,则最早回溯时间对应的实例,便不检查上一调度周期的运行,可直接从最早回溯时间的实例开始运行。

7 后续操作

任务调度依赖配置完成后,若您的上下游任务有输入输出参数传递的场景,您可继续配置任务输入输出参数。详见输入输出参数设置