开发者学堂课程【SaaS 模式云数据仓库系列课程 —— 2021数仓必修课:DataWorks 调度依赖之跨周期依赖】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:
https://developer.aliyun.com/learning/course/55/detail/1199DataWorks调度依赖之跨周期依赖
内容介绍:
一、DataWorks 的三种跨周期依赖形式
二、依赖上一周期和依赖本周期的区别
三、业务流程节点依赖关系
①一层子节点:
节点依赖关系:依赖当前节点的下游,例如 节点A存在下游节点B、C、D三个节点,依赖一层子节点是节点A依赖B、C、D三个节点的上一周期。
业务场景:本次任务运行依赖上一周期下游节点对本节点的结果表(本节点输出表)进行清洗的最终结果(是否正常产出)。
②本节点:
节点依赖关系:跨周期自依赖(依赖当前节点的上一周期。)
业务场景:本次任务运行依赖上一周期该任务的业务数据的产出情况。
③自定义:
节点依赖关系:手动需要依赖的节点(多个节点用英文下的逗号分隔)
业务场景:业务逻辑上需要依赖其他的业务数据正常产出,但是本任务中没有操作该业务数据。
二、依赖上一周期和依赖本周期的区别:
注意:在运维中心中查看节点依赖关系时,所有跨周期依赖的节点都会以虚线 的形式展示。
也是任务实际的依赖,下线任务时候这部分的依赖关系也需要去掉,也是任务运行需要判断的条件之一。
注意:依赖上一周期和依赖同周期两处填写了一个节点任务,会依赖该节点任务今天和昨天所有的实例。
如果下游是分钟任务并且分钟任务没有做自依赖,那么该任务会依赖分钟任务昨天所有的实例和今天所有的实例。
运维中心展示如下:
xc_create 节点代码及配置
节点sql解析:
xccreate 节点创建 xc1,xc2 两张表(或产出两张表的数据)并将 xc1,xc_2 作为本节点的输出。
xc_select 节点代码及配置
节点 sql 解析:
xcselect 节点中查询xccreate节点中的表数据,通过自动解析功能解析将 xc_create 节点作为本节点依赖的上游。
依赖上一周期:一层子节点
节点依赖:
依赖当前节点的下游,例如 节点A存在下游节点 B、C、D 三个节点,依赖一层子节点是节点A依赖 B、C、D 三个节点的上一周期。
业务场景:
该任务运行依赖上一周期下游任务对本任务的结果表(本节点输出表)进行清洗的最终结果(下游任务运行成功,本节点本周期任务开始运行,否则反之)。
xc_create 选择依赖一层子节点
运维中心任务依赖关系如图:
依赖上一周期:
节点依赖:本次任务运行依赖本节点上一周期任务运行情况,上一周期任务未完成将阻塞本周期任务运行。
业务场景:本次任务数据依赖上次数据清洗情况。
xc_create 表配置如图(为便于观察,我将本节点设置为小时调度任务)
运维中心的周期实例查看依赖情况,如图:
依赖上一周期:自定义
节点依赖:代码中没有用到1000374815节点的产出表但是业务上需要取依赖该1000374815节点的上一周期数据是否顺利产出从节点关系来说:xc_create节点需要依赖1000374815节点上一周期。
业务场景:业务逻辑上需要依赖1000374815任务的业务数据正常产出,但是本任务(xc_create)中没有操作该业务数据。
新的节点如下:节点id:1000374815
xc_create 节点依赖的上游选择自定义,选择1000374815节点。
运维中心周期任务依赖如图: