且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

DataWorks 调度依赖之跨周期依赖| 学习笔记

更新时间:2022-09-02 15:39:19

开发者学堂课程【SaaS  模式云数据仓库系列课程 —— 2021数仓必修课DataWorks 调度依赖之跨周期依赖】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/55/detail/1199


DataWorks调度依赖之跨周期依赖


内容介绍:

一、DataWorks 的三种跨周期依赖形式

二、依赖上一周期和依赖本周期的区别

三、业务流程节点依赖关系


一、DataWorks 的三种跨周期依赖形式

①一层子节点:

节点依赖关系:依赖当前节点的下游,例如 节点A存在下游节点B、C、D三个节点,依赖一层子节点是节点A依赖B、C、D三个节点的上一周期。

业务场景:本次任务运行依赖上一周期下游节点对本节点的结果表(本节点输出表)进行清洗的最终结果(是否正常产出)。

②本节点:

节点依赖关系:跨周期自依赖(依赖当前节点的上一周期。)

业务场景:本次任务运行依赖上一周期该任务的业务数据的产出情况。

③自定义:

节点依赖关系:手动需要依赖的节点(多个节点用英文下的逗号分隔)

业务场景:业务逻辑上需要依赖其他的业务数据正常产出,但是本任务中没有操作该业务数据。


二、依赖上一周期和依赖本周期的区别:

注意:在运维中心中查看节点依赖关系时,所有跨周期依赖的节点都会以虚线 的形式展示。

也是任务实际的依赖,下线任务时候这部分的依赖关系也需要去掉,也是任务运行需要判断的条件之一。

DataWorks  调度依赖之跨周期依赖| 学习笔记

注意:依赖上一周期和依赖同周期两处填写了一个节点任务,会依赖该节点任务今天和昨天所有的实例。

如果下游是分钟任务并且分钟任务没有做自依赖,那么该任务会依赖分钟任务昨天所有的实例和今天所有的实例。


三、业务流程节点依赖关系

DataWorks  调度依赖之跨周期依赖| 学习笔记

运维中心展示如下:

DataWorks  调度依赖之跨周期依赖| 学习笔记

xc_create 节点代码及配置

节点sql解析:

xccreate 节点创建 xc1,xc2 两张表(或产出两张表的数据)并将 xc1,xc_2 作为本节点的输出。

DataWorks  调度依赖之跨周期依赖| 学习笔记

xc_select 节点代码及配置

节点 sql 解析:

xcselect 节点中查询xccreate节点中的表数据,通过自动解析功能解析将 xc_create 节点作为本节点依赖的上游。

DataWorks  调度依赖之跨周期依赖| 学习笔记

依赖上一周期:一层子节点

节点依赖:

依赖当前节点的下游,例如 节点A存在下游节点 B、C、D 三个节点,依赖一层子节点是节点A依赖 B、C、D 三个节点的上一周期。

业务场景:

该任务运行依赖上一周期下游任务对本任务的结果表(本节点输出表)进行清洗的最终结果(下游任务运行成功,本节点本周期任务开始运行,否则反之)。

xc_create  选择依赖一层子节点

DataWorks  调度依赖之跨周期依赖| 学习笔记

运维中心任务依赖关系如图:

DataWorks  调度依赖之跨周期依赖| 学习笔记

依赖上一周期:

节点依赖:本次任务运行依赖本节点上一周期任务运行情况,上一周期任务未完成将阻塞本周期任务运行。

业务场景:本次任务数据依赖上次数据清洗情况。

xc_create 表配置如图(为便于观察,我将本节点设置为小时调度任务)

DataWorks  调度依赖之跨周期依赖| 学习笔记

运维中心的周期实例查看依赖情况,如图:DataWorks  调度依赖之跨周期依赖| 学习笔记

依赖上一周期:自定义

节点依赖:代码中没有用到1000374815节点的产出表但是业务上需要取依赖该1000374815节点的上一周期数据是否顺利产出从节点关系来说:xc_create节点需要依赖1000374815节点上一周期。

业务场景:业务逻辑上需要依赖1000374815任务的业务数据正常产出,但是本任务(xc_create)中没有操作该业务数据。

新的节点如下:节点id:1000374815

DataWorks  调度依赖之跨周期依赖| 学习笔记

xc_create 节点依赖的上游选择自定义,选择1000374815节点。

DataWorks  调度依赖之跨周期依赖| 学习笔记

运维中心周期任务依赖如图:

DataWorks  调度依赖之跨周期依赖| 学习笔记