2.DataWorks 调度依赖之跨周期依赖(一)|学习笔记

本文涉及的产品
大数据开发治理平台DataWorks,资源组抵扣包 750CU*H
简介: 快速学习2.DataWorks 调度依赖之跨周期依赖

开发者学堂课程【DataWorks 一站式大数据开发治理平台精品课程:2.DataWorks 调度依赖之跨周期依赖】与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/81/detail/1239


2.DataWorks 调度依赖之跨周期依赖(一)

内容介绍:

一、前景

二、理论

三、流程图

四、典型场景

五、实操

六、Tips  

一、前景

1、需求 C节点的父节点A依赖C节点的T-1周期。

2、错误配置 C多依赖了自己的T-1周期,实际业务上没有该依赖需求。

a.png

首先看一个前景,左侧是的需求场景,期望a节点与c节点之间有一个本周期依赖,同时a节点依赖c节点的t-1周期,在 dataworks 里面实线是代表本周期,虚线是代表跨周期。等到第二天实例产生时,会发现多了一条虚线的依赖关系,c节点还依赖了自己的t-1周期,事实上业务上并没有该依赖的需求,所以这一条依赖关系是多配置的。新同学往往对于依赖上一周期可能不太熟悉,所以会配置出不符合需求的依赖关系图。比如重复配置依赖,多配置依赖或者节点循环警告等等,所以会通过这5个部分进行介绍跨周期依赖,第一部分是理论,主要是dataworks的两个依赖组成,介绍三种跨周期依赖的基本理论,第二部分会以天任务为例来展示每一种依赖的配置,以及它们产生的效果图和数据数据的走向。第三部分会介绍4~5个典型的应用场景,包括自依赖等等。第四部分是会实操配置一个天任务依赖小时任务昨天数据的一个场景,这也是一个在内部比较高频的场景,可能会配错,第五部分会简单给一两个小建议。  

二、理论

1、依赖关系

Dataworks 主要分为两部分依赖关系,一个是跨周期,另一个是本周期依赖,平时打开配置的可能是本周期依赖在调度依赖配置。上面有一个依赖上一周期的勾选,勾选了以后会有依赖性的选项,这就是跨周期依赖,那周期的概念是除了小时分钟任务的自依赖以外,周期的最小力度就是天。通常的跨周期依赖就是指依赖前一天的数据。

2、依赖上一周期

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

(2)本节点:依赖当前节点的上一周期 (即自依赖).

(3)自定义:手动输入需要依赖的节点id,多个节点间英文逗号分隔,依赖该id节点的上一周期。 一层节点相对于其他两种模式来,可能会不太熟悉,应用的也比较少,所以会通过一个业务场景来简单介绍。业务场景也是通用的,有助于帮助大家理解其他的依赖关系图。那本节点会介绍两个自依赖的应用技巧,自定义会实操配置一个。


三、流程图

1、依赖一层节点

(1)依赖当前节点下游的上一周期。 验证D1和E1的T-1周期数据符合需求再继续处理。

b.png

第一部分是依赖一层节点,左边是周期任务,右边是实例图,对c1配置了依赖一层节点,那它的节点是d1和e1,可以看到在c1的调度配置如上图所示,本节点输出有两个下游节点,d1和e1,等到产生周期实例时,c1的节点下面会有d1和e1的本周期,它的上游会依赖于d1和e1的t-1周期,这条虚线就是跨周期依赖。

(2)通过业务场景看, 3个节点4天的产生的一个效果图,080,8月1号业务日期流向8月2号3号4号,截取中间。

c.png

业务场景:三张表对应三个产出任务节点。 B1>事件日志表; C1>每日新增点击表 D1>每日新增点击用户表 调度配置: C1配置了依赖一层子节点。 事件日志表里面主要存储了上游日志经过简单清洗后写入的一张宽表,还有点击下单支付等行为,是以天文为分区。这张表也是保留了有新用户点击的记录,也是以天为分区,在调度配置上,c1配置了依赖一层子节点,它的字节点只有d1,所以会依赖d1的t-1周期,3号的依赖2号的,通过两三条数据的走向介绍,为什么需要这一条红色的跨周期来实现来保证的数据。业务日期三号这一天有两条数据走进来,王五和张三且都是点击行为存储在0803分区内,那经过联查过滤,发现过滤条件是新用户和点击,那只有王五这一条数据是流向了下游的,是符合所有条件,流到下游,同时追加到新用户表里面。4号这一天又有孙七和周八两条数据切入进来,那经过过滤条件新用户和点击筛选以后,这两条数据都会被保留到了表二中,同时也都是新用户,所以追加到了表三中。用户的数据走向全局看是从0个到1个,2个,4个,在每一次查询时,该虚线的作用就是保证能够获取到截止昨天及以前,所有的老用户信息都被存在这张表里面,这样才能够保证流向下游的都是的新用户。 该虚线的依赖保证获取到截止上周期的所有老用户信息。 假如任务失败了,就会阻塞下游,从而保证不是新用户的数据不会流向下游,开发同学可以及时的感知,进行修复。

2、自定义

手动输入需要依赖的节点id ,多个节点间英文逗号分隔,依赖该id节点的上一周期。  

d.pngID要保证线上存在。对c2节点配置了自定义,把a2的ID输入了进去,那产生的效果图就是c2会依赖于a2的t-1周期。

3、本节点(自依赖)

依赖当前节点的上一周期(即自依赖)。

e.png依赖当前节点的上一周期,其次依赖,可以看到对c3配置的自依赖,产生的效果图是是三天的,c3会依赖于c3的t-1,同时又依赖于c3的t-2周期。这三个是垂直的,是与虚线相连的,只要找到最下面那个,一层层往上展开就可以看到效果图了。 自依赖技巧

(1)小时任务依赖天任务(即上述典型场景四) 上游天任务跑完,下游小时任务多个周期定时时间已到,不希望小时任务多周期并发调起。不配置自依赖的话,12点过后a1和a2实例会并发调起。 如果按照实例的运行的条件是,上游全部运行成功,且下游定时时间到,当12点天任务运行完毕时,下游两个小时任务的实例已经满足了运行条件,a1和a2,它们一个是0点一个8点都已经满足了运行条件,这两个会并发调起,这时可能会产生并发操作表的一个动作,这个是不期望的,所以可以对小时任务配置一个字依赖,让它们一个个按顺序执行,这样就保证避免了这种情况出现,数据走向就是从这里流向这里,一直流向这里。

(2)天任务依赖小时任务(即上述典型场景二) 不想等24个小时任务实例跑完才跑天任务,天任务希望尽量按定时时间12:00跑。配置自依赖后,实例a2跑完, 12点一到,实例A就会调起。 天任务是配置了12点,如果按照普通的配置,天任务会等它上游所有的实例运行成功以后才开始运行。那天任务不希望等上游全部运行成功,它希望按自己的定时时间,12点开始跑,那就可以对上游的小时任务配置c依赖。这样它会在最靠近12点前的那个小时任务运行完成后就可以开始调起天任务,实例a2八点钟跑完,12点一到天任务就可以开始调起。 第三部分是就是5个跨周期依赖的典型应用场景,这5个场景也已经这5个场景也已经满足了大部分的应用需求其中这3个刚刚已经讲过了,一场景12和4,一层节点,天任务依赖小时任务和小时任务依赖天任务。  

相关实践学习
基于Hologres轻量实时的高性能OLAP分析
本教程基于GitHub Archive公开数据集,通过DataWorks将GitHub中的项⽬、行为等20多种事件类型数据实时采集至Hologres进行分析,同时使用DataV内置模板,快速搭建实时可视化数据大屏,从开发者、项⽬、编程语⾔等多个维度了解GitHub实时数据变化情况。
相关文章
|
运维 DataWorks 安全
DataWorks产品使用合集之任务日志中显示等待gateway调度资源,该如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
147 2
|
9月前
|
SQL 分布式计算 DataWorks
如何让DataWorks调度依赖一个非DataWorks的任务结点,如数据上传任务?
如何让DataWorks调度依赖一个非DataWorks的任务结点,如数据上传任务?创建一个表的空分区,然后通过DataWorks去检查这个分区。
186 7
|
SQL DataWorks 安全
DataWorks产品使用合集之如何实现分钟级调度
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
SQL DataWorks 安全
DataWorks产品使用合集之调度资源组与集成资源内部的实例如何进行共用
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
168 1
|
分布式计算 DataWorks 安全
DataWorks产品使用合集之怎么配置跨业务流程的调度依赖
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
115 1
|
数据采集 DataWorks 监控
DataWorks产品使用合集之如何修改调度时区的地域
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
111 1
|
Web App开发 DataWorks 安全
DataWorks产品使用合集之配置每季的第一天作为调度参数,该怎么实现
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
SQL DataWorks 安全
DataWorks产品使用合集之是否支持调度StarRocks的SQL任务
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
DataWorks 关系型数据库 API
DataWorks产品使用合集之在配置独享调度资源组的环境变量时,如何通过环境变量的方式进行配置
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何对任务进行批量修改调度时间
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。