DataWorks熟能生巧系列直播第一期:DataWorks调度依赖的基本使用

本文涉及的产品
大数据开发治理平台DataWorks,Serverless资源组抵扣包300CU*H
简介: 本系列文章为DataWorks钉钉大群内熟能生巧系列直播的文字版,基本涵盖了直播中讲解到的大部分内容,大家可以学习或者Mark一下,有需要的时候再来回顾。本系列直播内容由DataWorks技术支持团队出品,运营团队整理,大部分是DataWorks用户实际使用中遇到的频率较高的问题,希望对大家有一定帮助。

本篇文章主要说明了设置调度依赖的原因,调度依赖的原理及其在DataWorks上的具体体现,同时介绍了在DataWorks上设置调度依赖的3种方式,并提出了一些常见问题和相应的解决方案


分享人:DataWorks技术支持团队

我们在开发者社区学习路线里有发布一个DataWorks的学习路线,里面包含了入门讲解和熟能生巧系列的直播内容,大家可以去学习一下,需要主账号登陆学习哦:https://developer.aliyun.com/learning/course/81


一、为什么要设置调度依赖

 

设置调度依赖是为了保证业务数据有效、适时地产出,形成规范化的数据研发场景。这里针对的是调度的场景,也就是表数据每天都有更新的情况,是为了保障每个节点在取数的时候都能取到准确的数据。


规范的依赖关系配置后,无需关心当前节点需要依赖表由哪个节点产出,通过DataWorks自动解析一键为您设置任务依赖。

 

假设某个节点B会产出表B数据,节点B任务执行成功后,平台默认数据已经准备就绪,下游依赖该表B数据的节点(表)就可以开始取数了。如下图,如果xc_rpt_user_info_d这个节点要运行,那这个节点需要正确地取到上游数据,也就是说上游的这些节点都需要先正确地执行完毕。这里有一个重要概念,就是“表之间的依赖”要转换成“产出该表的节点之间的依赖”。


幻灯片4.JPG

DataWorks上通过节点输出来挂依赖,也就是上游节点的输出作为下游节点的输入形成依赖关系。比如节点B产出表 B数据,表 B数据依赖表 A,那么我们将产出表 A的节点A作为当前节点B的上游依赖。


幻灯片5.JPG


二、如何设置调度依赖

 

方式一:自动解析


当前表A的数据是依赖于项目B下面的表B数据,自动解析时会将表A表作为节点输出,格式是“项目名.表名”,然后当前节点select 的表B表会作为节点的输入,也就是父节点的输出(BA的上游)。

幻灯片7.JPG

自动解析挂好以后可以看下依赖关系。上游节点b(父节点)产出表table_b作为父节点输出,而下游节点代码里用到了这个表,所以自动解析的时候会将table_b作为当前表a的上游(节点a的输入),通过这个输入可以找到父节点b,从而挂上依赖线。这样自动解析就能一键设置任务依赖。

幻灯片8.JPG


为什么要推荐自动解析?

 

  • 根据代码的逻辑,判断您在当前节点需要产出某张表。当您以project_name.tablename的方式将其作为本节点输出时,后续其它节点需要查询该表时,您无需关注要依赖哪个节点,您只需要关注要依赖该表当前周期产出的数据。
  • 当您无法确定当前工作空间产出该表数据的具体节点时,您可以使用自动解析,帮助您快速开发业务流程。
  • 使用自动解析该操作的前提是遵循自动解析规范
  • 同地域的工作空间支持自动解析依赖关系,即支持同地域跨工作空间配置节点调度依赖关系。


方式二:自定义依赖


有三种:代码编辑输入输出、手动添加上游依赖和自动推荐。


幻灯片10.JPG

这里有个问题,如果某个表数据是本地上传的,自动解析将它解析出来了,但是提交的时候报错依赖的父节点输出不存在,这里的依赖关系又因为是自动解析出来的而不能删除,这个时候该怎么办呢?

 

第一种解决方案是直接在代码中编辑输入输出。假如ods_user_info_d这个表是本地上传的表数据,那么我们可以在代码中选中这个表,右键删除输入,随后右侧依赖的父节点就不会有表了,然后重新解析输入输出,不过这里会出现一个血缘关系不一致的提示。

幻灯片12.JPG

为什么会有输入与代码血缘分析不匹配的提示呢?就是因为刚刚代码有删除输入输出,也就是在代码中selectinsert这个表,但是节点的依赖关系没有将它作为输入或输出,通过代码的解析和配置的节点依赖不匹配。此时,我们就需要关注这张表的数据源来源,以采取不同的应对策略。

幻灯片14.JPG


第二种方式是手动添加依赖。这里有两个场景,一个是需要依赖某个表数据,一个是需要依赖某个节点,不一定存在表血缘依赖。当需要依赖某个节点的时候,我们可以输入节点的输出,如果需要依赖某个表数据,可以直接在这个依赖的上游输入这个表名。

幻灯片15.JPG


第三种方式是自动推荐,当对自动解析比较困惑或经常报错的时候可以选择。

幻灯片17.JPG


拉线设置依赖关系也符合DataWorks挂依赖的原理,即上游节点的输出会作为下游节点的输入,这样形成的依赖关系。

幻灯片18.JPG


最佳实践:这里有3点要注意

  • 首先产出表数据的节点要设置该表作为该节点的输出,避免下游取这个表数据的时候,自动解析将它挂为依赖的父节点,但是通过这个表找不到产出这个表数据的节点,下一个节点用这个表的时候提交就会报错。
  • 其次一张表数据由一个节点产出,保证节点输出同region下唯一。因为DataWorks通过节点输出来挂依赖,需要保证通过这个输出可以定位到唯一的节点。
  • 最后建议任务名称和输出表名保持一致。



三、常见问题


因为同步任务是不支持调度依赖自动解析的,所以需要手动配置。DataWorks在节点输出时会默认添加两个输出,一个是_out,一个是节点名输出,而把节点名设置为该同步任务产出的表名,就可以避免再单独操作节点输出。

幻灯片20.JPG


另外,出现血缘关系不正确的原因刚才也说过了,这个时候需要确认代码中用到的表是不是本地上传的,或者是周期调度产出的,要关注数据源的来源。

image.png


父节点输出不存在这个场景也经常遇到,我们首先要明确的就是依赖的父节点输出不存在并不是说这个表不存在,只是没有通过这个表找到产出这个表数据的节点,也就是没有任何一个节点的输出是这个表。

 

如果当前需要将节点提交上去不报错,有两种解决方式。一是直接将自动解析设置为否,但不推荐,因为会导致血缘关系不匹配,也会导致下游用当前节点产出表数据的时候,提交会报错。自动解析关掉后,它不会将当前界面insert的表作为节点的输出;第二是确认该表数据来源是什么,是本地上传的还是调度每天产出的。

幻灯片22.JPG


关于节点输出相同,提交失败的情况。因为DataWorks需要保证节点输出唯一,通过这个唯一的输出定位到唯一的节点上,所以建议大家一个表数据由一个节点产出,如果有同名节点的情况,那也需要更改其中一个节点的输出。

幻灯片23.JPG


删除节点失败,当前节点存在下游的情况。可以看到下图的这个节点没有下游依赖,但是删除的时候会报错说节点存在依赖。这个时候需要先检查一下这个节点,在配置页面看是否有下游节点依赖它,或者在运维中心搜索这个节点看有无任务,随后找到下一个节点去删除依赖关系。下游节点依赖去除干净后,这个节点才能下线。

幻灯片24.JPG


举例演示一下,现在要删除dw_user_info_all_d这个节点,我们先把下游依赖线删除掉:

image.png


我们双击打开我们想删除的dw_user_info_all_d节点,找到下游依赖该节点的所有节点,本例中只有rtp_user_info_d,我们打开运维中心生产环境和开发环境,通过dw_user_info_all_d节点的节点ID搜索,可以发现dw_user_info_all_d节点下游依然有rtp_user_info_d节点。

 image.png

image.png


我们回到DataWorks开发界面,双击rtp_user_info_d节点,因为提交节点需要有父节点,我们可以把rtp_user_info_d节点挂在根节点上,这样rtp_user_info_d节点不再依赖我们要删除的节点。我们提交rtp_user_info_d节点到开发环境,显示提交成功后,我们发布rtp_user_info_d节点到开发环境:

 image.png

 

然后我们检查一下开发环境,rtp_user_info_d节点已经没有依赖我们要下线的那个任务节点了,但是生产环境还存在依赖。

 image.png


接下来我们把更新操作发布到生产环境:

image.png

 

再到生产环境查看rtp_user_info_d节点,也已经不再依赖我们要下线的节点了:

image.png

 

 

同样,我们也可以到开发环境和生产环境看我们想删除的dw_user_info_all_d节点是否还有下游依赖。确认都没有了,就可以下线这个任务了。

 image.png


这样我们就成功下线我们想删除的dw_user_info_all_d节点了。

以上就是本次调度依赖基本使用的全部内容了,有问题需要解答的同学可以加一下我们的钉钉大群,群里有直播回放可以观看。

感谢大家的关注!


相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
一站式大数据开发治理平台DataWorks初级课程
DataWorks 从 2009 年开始,十ー年里一直支持阿里巴巴集团内部数据中台的建设,2019 年双 11 稳定支撑每日千万级的任务调度。每天阿里巴巴内部有数万名数据和算法工程师正在使用DataWorks,承了阿里巴巴 99%的据业务构建。本课程主要介绍了阿里巴巴大数据技术发展历程与 DataWorks 几大模块的基本能力。 课程目标  通过讲师的详细讲解与实际演示,学员可以一边学习一边进行实际操作,可以深入了解DataWorks各大模块的使用方式和具体功能,让学员对DataWorks数据集成、开发、分析、运维、安全、治理等方面有深刻的了解,加深对阿里云大数据产品体系的理解与认识。 适合人群  企业数据仓库开发人员  大数据平台开发人员  数据分析师  大数据运维人员  对于大数据平台、数据中台产品感兴趣的开发者
相关文章
|
3月前
|
SQL DataWorks 安全
DataWorks产品使用合集之如何实现分钟级调度
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
SQL DataWorks 安全
DataWorks产品使用合集之调度资源组与集成资源内部的实例如何进行共用
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
分布式计算 DataWorks 安全
DataWorks产品使用合集之怎么配置跨业务流程的调度依赖
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
分布式计算 DataWorks 安全
DataWorks产品使用合集之任务自依赖该如何设置
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
DataWorks产品使用合集之任务自依赖该如何设置
|
3月前
|
分布式计算 DataWorks 安全
DataWorks产品使用合集之调度任务时怎么指定时间函数格式
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
数据采集 DataWorks 监控
DataWorks产品使用合集之如何实现跨工作空间的依赖调度
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
DataWorks Kubernetes 大数据
飞天大数据平台产品问题之DataWorks提供的商业化服务如何解决
飞天大数据平台产品问题之DataWorks提供的商业化服务如何解决
|
3月前
|
运维 DataWorks 监控
DataWorks产品使用合集之如何自定义UDTF
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
分布式计算 DataWorks API
DataWorks产品使用合集之如何设置把结果传入变量
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
DataWorks 安全 定位技术
DataWorks产品使用合集之怎么指定任务的执行时间
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。

相关产品

  • 大数据开发治理平台 DataWorks