全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
DataWorks(数据工场)

依赖关系

更新时间:2017-08-18 10:47:24

在调度配置中,会需要配置两个任务级别的依赖:依赖属性和跨周期依赖。

依赖属性

1

  • 自动推荐:系统自动扫描节点代码解析出来源表和目标表,从而推荐来源表是从哪个任务产出,只有 SQL 类型节点任务和工作流任务有这个功能,同时也只能解析到 SQL 任务产出的表 。

  • 所属项目:当前组织内所有项目空间,可在下拉列表中进行选择。

  • 上游任务:对应所属项目空间中的任务,用来设置当前任务的上游任务,非必填项。支持工作流名称模糊匹配查询 。

说明

一个工作流可以依赖多个上游工作流,同样,一个工作流可被多个工作流依赖。依赖属性为非必填项,当下游工作流需依赖上游工作流产出数据,则可配置依赖关系。

应用场景

比如:有一个需求,在 A 工作流中配置的节点达到上限了,还是没有完成需求。那么就可以创建 B 工作流,继续配置节点任务,然后将 A 工作流设置成 B 工作流的上游任务,运行的时候,便会先运行 A 再运行 B。

跨周期依赖

配置节点/工作流任务的跨周期依赖,如:天调度任务中,今天需要执行的数据依赖本任务昨天执行的数据,那么可以配置依赖昨天任务的周期,这样一来,昨天的实例必须先执行成功,今天的实例才可以调度起来,这种依赖主要是体现在任务调度实例的依赖 。关于不同周期调度依赖的最佳操作实践,请参见 不同周期调度依赖配置

1

跨周期依赖说明:

  • 不依赖上一调度周期:所有任务默认选择该选项,即不依赖任何任务的上周期实例。

  • 自依赖,等待本任务上一调度周期结束,才能继续运行:应用场景:任务 A 当前周期数据来源依赖于任务 A 上周期执行的结果;或者小时/分钟调度任务 A 不允许实例并行。

  • 等待下游任务的上一周期结束,才能继续运行:依赖第一层子任务的上周期。这种应用场景不多,选择此项,后续该任务一旦被其他任务直接依赖则实例都依赖所有第一层子任务的上周期实例。

  • 等待自定义任务的上一周期结束,才能继续运行:应用场景:天任务 A 依赖一个数据是天任务 B 昨天产出的。

注意事项

  • 依赖属性配置的调度依赖是同周期依赖和跨周期依赖不冲突。任务 A 可以配置依赖属性依赖任务 B,也可以配置跨周期依赖依赖 B,如此任务 A 既依赖任务 B 本周期也依赖任务 B 上周期。

  • 若任务 A 是小时/分钟调度,任务 B 是天调度,任务 B 配置依赖任务 A 的上周期,那么当天任务 B 的实例会依赖任务 A 昨天的所有实例。

  • 若任务 A 和 B 都是小时/任务调度,调度周期一样,任务 B 配置依赖任务 A 的上周期,则任务 B 每个实例都将依赖任务 A 昨天的所有实例和任务 A 与任务 B 同周期的前一个周期实例。

  • 如果天调度任务 A 配置跨周期依赖任务 B 的上周期,那么对任务 A 进行补数据的时候,补数据实例会去依赖任务 B 自动调度上周期实例,如果自动调度的上周期实例不存在则不依赖。

  • 长周期依赖短周期配置方式的详细内容请参见 不同周期调度依赖配置

本文导读目录