组合任务

组合任务是一种特殊的任务类型,它支持将多个周期任务(例如离线同步、SQL 任务)封装为独立单元,以实现统一调度配置、参数管理和运维操作,并且能够与其他普通节点建立依赖关系。本任务类型适用于需要批量管理任务流程、统一控制调度周期的业务场景(如增量计算、跨任务协同)。组合任务与任务组功能进行对比,两者存在以下核心区别:

  • 任务组属于逻辑管理概念,可将多种任务置于一个组内进行统一展示与编排。组合任务是一种任务类型的实体,与普通的 SQL 任务处于同等地位。可在任务组中添加组合任务作为其元素之一。
  • 从外部看,组合任务是一个整体,但内部会包含一到多个子任务节点(这些子任务可以是 SQL 任务、离线同步任务等各种周期调度任务)。
  • 组合任务支持统一设定调度时间,其内部所有子任务节点依据该调度时间进行同频调度。这尤其适用于对所有任务节点的数据新鲜度有相同一致性要求的数据处理链路。任务组上不支持设定调度定时属性。

快速上手:创建组合任务

组合任务的创建操作,整体和普通周期SQL任务等非常类似。

创建入口

支持通过以下路径新建组合任务:

  • 任务开发:任务Tab → 新建任务 → 选择“组合任务”

  • 任务组详情页:任务组内 → 添加新任务 → 选择“组合任务”;

  • 工作区:顶部导航栏 → 新建任务 → 选择“组合任务”。

基础信息填写

在创建组合任务的弹框中,和其它普通SQL任务一样,填写需要的信息:

  • 任务名称:必填。

  • 文件夹:任务要放入的文件夹,必须在一个文件夹下。必填。

  • 任务组:是否放入任务组、如果需要的话选定具体的任务组名称,不限制必须放在一个任务组中。

核心功能操作指南

子任务管理(画布模式)

组合任务目前通过画布(DAG图)来展示子任务的节点,并支持以下操作:

添加子任务

  • 入口:画布工具栏 → 「新建子任务」→ 选择任务类型(仅支持周期任务:离线同步、SQL等;不支持实时任务)。通过单击任务类型或者拖拽的方式,可以把子任务添加到组合任务中。

  • 默认状态:新增的子任务,默认无依赖,需手动调整依赖关系(通过页面上连线或在子任务详情进行配置)。

编辑子任务

  • 方式:在添加子任务节点时,会默认进入到子任务的详情页,便于编写代码和配置调度信息。

    • 双击子任务 → 进入普通节点编辑页(复用现有编辑功能);
  • 限制:为了确保组合任务提交后运行正常,子任务不支持独立保存半成品,需填写所有必填属性(如代码、集群、调度属性)后才能保存。在推出子任务的编辑时,请确保这些信息完整并被正确保存。

依赖编排

  • 子任务中配置:在子任务上,点击「调度」→ 在「调度依赖」中设定它依赖的上游子任务。
  • 画布上连线:在组合任务的DAG画布上,选中源节点 → 拖拽连线至目标节点 → 建立“上游→下游”依赖。也可以在连线上操作来删除依赖关系。

画布工具

  • 自动排版:工具栏 → 「自动布局」→ 按依赖关系优化DAG展示;
  • 缩放/刷新:工具栏 → 「+/-」调整画布大小,或「刷新」重置视图。

调度配置(全局与局部结合)

组合任务的调度策略通过全局配置(组合任务层级)与局部配置(子任务层级)协同管理,整体思路是子任务默认继承组合任务的全局配置,也支持在局部单独配置,如果局部配置了,以局部配置的为准。关键配置项如下表:

配置项全局配置(组合任务)局部配置(子任务)
调度时间必配,支持Cron表达式(子任务不可独立设置)无(子任务遵循组合任务全局设定的调度定时、同频调度运行)
实例重跑全局设置(重跑次数、间隔),子任务默认继承可选覆盖全局设置(仅支持SQL等特定任务类型)
任务优先级全局设置(默认值)可选单独设置(覆盖全局,仅SQL节点支持)
自依赖全局设置(控制组合任务周期依赖)无(子任务自依赖通过组合任务全局自依赖间接实现)

示例:若组合任务全局设置“重跑次数3次,间隔5分钟”,某子任务可单独配置“重跑次数5次”,则该子任务实际使用“重跑5次,间隔5分钟”。

参数管理(组合任务→子任务传递)

定义参数

  • 入口:组合任务详情页 → 点击「参数」→ 在弹框中新增参数(如composite_task_param):

  • 作用域:仅当前组合任务内部有效,不同组合任务之间参数隔离。

引用参数

在子任务的参数配置中,如果参数名称和组合任务上定义的参数名称相同,在参数设定的地方,会自动识别并提示选择参数的取值来源。如果要使用组合任务全局定义的参数,取值来源这里选择“组合任务”,否则可以选择“任务”。

在子任务的代码中,支持通过${参数名}引用参数。示例(SQL子任务):

SELECT * FROM user_log WHERE dt = '${composite_task_param}'

高级操作:保存与提交

保存组合任务

  • 组合任务当前不支持全局统一来保存子任务节点。请操作单个子任务,确保代码、调度配置等信息得到了保存。然后再提交组合任务。

提交组合任务

  • 作用:支持将组合任务及内部所有子任务提交到生产环境周期调度运行,会生成对应的“提交版本”。

  • 操作入口:组合任务详情页 → 「提交」。

运维与监控

组合任务的运维

组合任务在运维中心里面,会跟其它周期任务一并在列表展示并支持类似的操作,诸如暂停、补数、下线等。

操作说明
暂停/恢复暂停后组合任务及子任务停止调度;恢复后按当前配置继续执行
补数据选择时间范围 → 组合任务整体按调度规则生成补数实例(包含所有子任务实例)
下线下线后任务不再调度,需检查是否存在下游依赖(存在下游时无法下线,需要使用下线(含下游)的功能)

组合任务实例的运维

在实例运维Tab,可以查看到组合任务的实例,和其他周期任务实例并列,并支持重跑、置失败等操作,如下图所示:

状态查看

  • 整体状态:组合任务实例状态由子任务状态综合判定,具备以下状态:未运行(所有子任务未运行)、运行中(任一子任务运行中)、运行成功(所有子任务成功)、运行失败(至少一个子任务失败);
  • 下钻查看:点击实例ID → 进入子任务实例DAG页,查看各子任务运行详情(含日志、状态)。

实例操作

操作在哪些状态下支持行为说明
重跑任意终态(失败/成功)整体重跑组合任务,子任务按各自重跑规则生成新实例(不支持选择部分子任务)
置成功/置失败未运行/终态组合任务及所有子任务实例状态强制变更为成功/失败
终止运行中终止所有运行中/未运行的子任务实例,状态置为失败

组合任务的监控告警

在监控告警中,组合任务会被归入周期调度任务大的分类。先前的”任务实例运行失败“、”周期任务实例完成时间“等监控项,对其也同样生效。可以类似普通SQL周期任务一样,来配置监控规则来对它的运行状态和耗时等进行监控。

组合任务触发质量规则校验

在配置数据质量规则时,规则运行触发方式中,可选择到组合任务来作为调度触发对象,如下图所示。可以选择具体的子任务来触发,如果“子任务”留空,会在组合任务整体运行完成后触发。

注意事项

  1. 类型限制:组合任务的子任务,仅支持周期任务(离线同步、SQL等),实时任务(多表实时同步、Continious Job等)不可添加。
  2. 参数作用域:组合任务参数仅内部可见,不能被其他组合任务使用。跨组合任务共享参数,需通过任务组参数等来承接。
  3. 版本管理:组合任务仅支持“提交版本”(无保存版本),暂不支持版本回滚。
  4. 任务依赖:在任务组内,组合任务作为整体存在、不可单独添加任务组内部的子任务,且依赖关系为组合任务整体与其他任务的依赖。组合任务的内部子任务不能依赖其它任务,也不能被其它任务依赖。

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