本篇文章介绍了DataWorks的跨周期依赖的三种模式 一层子节点依赖、本节点自依赖和自定义依赖。同时介绍了跨周期依赖的5个典型应用场景 并包含了操作演示 最后给出了3个配置依赖的建议。
分享人 DataWorks技术支持团队
我们在开发者社区学习路线里有发布一个DataWorks的学习路线 里面包含了入门讲解和熟能生巧系列的直播内容 大家可以去学习一下 需要主账号登陆学习哦 https://developer.aliyun.com/learning/course/81
首先我们来看一个场景 需求是A节点依赖C节点上一周期 C节点依赖A节点 而实际配置时可能会出现下方右图的错误情况 多出来一条C节点依赖自己的上一周期的自依赖线。在对配置上一周期依赖不熟悉的情况下 重复配置依赖 配置多余依赖或者节点成环警告等情况都有可能发生。
DataWorks有两种依赖关系 一种是跨周期依赖 一种是本周期依赖。在调度配置面板中有一个“依赖上一周期”的钩子 配置跨周期依赖时勾选 勾选后会出现“依赖项”的选项 可选“一层子节点”、“本节点”或“自定义”。通常跨周期依赖指依赖前一天的数据。
依赖上一周期 跨周期依赖 有三种模式 一层子节点、本节点和自定义。一层子节点相对于其他两种模式应用得比较少 本节点部分会介绍两个自依赖的应用技巧 自定义依赖需要保证依赖的节点在线上实际存在。
在周期任务中对C1节点配置依赖一层子节点 它的子节点是D1和E1 那生成实例后 在周期实例中C1节点下游是D1和E1的本周期 上游除了B1还会依赖D1和E1的T-1周期 虚线就是跨周期依赖的意思。
我们通过实际业务讲解一下这种实例关系。下图是某电商业务中B1、C1、D1这3个节点4天产生的效果图 业务日期从8月1号流向4号。
截取中间部分观察 三张表对应三个产出任务的节点 B1是事件日志表 C1是每日新增点击表 D1是每日新增点击用户表。在调度配置上给C1配置了依赖一层子节点 它的子节点是D1 所以会依赖D1的T-1周期 即8月3号的C1实例任务依赖8月2号D1实例产生的数据 即图中虚线表示的跨周期依赖 这个依赖业务上是为了保证获取到截止上周期的所有老用户信息 这样才能够保证过滤出新用户流向下游。
可以直接输入依赖的上游节点ID 这个ID要保证线上存在。这里对C2节点配置自定义 把A 2的ID输入进去 然后C2会依赖于A2的T-1周期。
即依赖当前节点的上一周期。这里对C3配置自依赖 那C3会依赖C3的T-1周期 C3的T-1周期依赖C3的T-2周期。
接下来看两个自依赖的应用技巧 详细内容可在DataWorks百问百答02期看到 https://developer.aliyun.com/article/749508
第一个是小时任务依赖天任务。上游天任务跑完 下游小时任务多个小时任务周期定时时间已到 如果不希望小时任务多周期并发调起 就需要配置自依赖 让它们一个个按顺序执行。
?
第二个是天任务依赖小时任务 天任务定时配置了12点。按照普通配置 天任务需要等上游所有的实例运行后才开始运行 但如果该天任务必须要12点开始跑 就需要对上游的小时任务配置自依赖。
跨周期依赖有5个典型应用场景 它们也满足了大部分的应用需求。
?
场景一 依赖一层子节点
场景二 天任务依赖小时任务 同周期
场景三 天任务依赖小时任务昨天的数据 跨周期
场景四 小时任务依赖天任务
场景五 本节点依赖自己上一周期产出的数据 但不知道上一周期何时产出。可以对本节点配置依赖上一周期 选择“本节点”即可。
下面实操介绍一下场景三 天任务依赖小时任务昨天的数据 它的配置方法是下游天任务配置“依赖上一周期”选“自定义” 填上游小时任务的ID即可。
?
首先进入DataStudio 新建一个业务流程 然后新建一个虚拟节点、一个小时任务和一个天任务。
然后配置小时任务。重跑属性和上面一样 调度周期选择小时 每小时一个 一共24个实例。这里小时任务需要挂在虚拟节点下面 所以到虚拟节点来复制它的本节点输出名 粘贴到小时任务的“依赖的上游节点”输入框出配置依赖 另外只有被提交过的任务 才可以搜索到然后添加依赖。最后保存、提交。
然后配置天任务。还是一样重跑属性 调度周期是天 注意这边实例生成方式是都是T 1次日生成。另外因为配置的是跨周期依赖 所以选择依赖上一周期 选择自定义 然后获取一下小时任务的节点ID 小时任务的ID同样也是需要小时任务提交后才能获取到。此时天任务本周期的上游依赖是空的 这是不允许的 这里因为实际天任务没有同周期上游 所以建议天任务上游配置这里挂在一个虚拟节点上 这里为了演示方便 直接使用根节点作为天任务上游。然后保存、提交。
随后进入任务发布界面 可以看到刚刚提交的三个节点。由于跨周期依赖所填的节点ID必须保证线上存在 所以要先发布虚拟节点和小时任务 然后再发布天任务 这样天任务发布才不会报错。
然后复制一下天任务的节点ID 可以到运维中心查看一下周期任务的关系图。由于是设置的T 1天生成实例 所以还看不到实例效果图。
我们找一个之前配置好的节点的实例看一下。下图是最后会产生的效果图 有24个小时任务和一个虚拟节点 除了虚拟节点外24个小时任务都是虚线 而下游是天任务 这是符合预期的。
最后有几个建议。
?
第一 跨周期依赖中容易遇到提交报错无上游的情况 这时可以新建一个虚拟节点作为上游。
?
第二 跨周期依赖和本周期依赖不要重复配置依赖。
?
第三 上游为分支节点 分支配置了跨周期依赖建议勾选“上游空跑属性不进行跨周期传导”。
以上就是本次分享的全部内容了 有问题需要解答的同学可以扫码加一下我们的钉钉大群 群里有直播回放可以观看。
感谢大家的关注
操作场景 平台提供了云审计服务。通过云审计服务,您可以记录与 云服务器 相关的...
租用 站群服务器 的好处是什么?如果网站要想在搜索引擎中排名靠前,更好的获取...
日前,福安市检察院对利用 域名交易 行骗的刘某某等七人批准逮捕。至2018年5月9...
企业必须调整保护数据的方式以满足当今的业务需求。越来越多的员工在家远程工作...
TOP云 (west.cn)1月3日,据业内消息,日前圈内知名投资人戴跃拿下一枚极品两字...
客户简介 畅捷通是为小微企业打造的管理云平台。工作圈是畅捷通小微企业管理云平...
不知道在哪里注册的 域名 怎么续费?域名就相当于网站在互联网中的门牌号,用户...
前几天项目经理提了个需求要实现点击刷新按钮实现页面的局部刷新,刷新页面使用谷...
企业邮箱 免费版怎么样?企业 邮箱 免费版相比于收费版来说,很多功能会受限,并...
郑州TOP云(zuntop.com)科技双线机柜租用,自助投资千万建设(绿谷云数据中心)四...