1.DataWorks 调度依赖的基本使用(二)|学习笔记

本文涉及的产品
云解析DNS-重点域名监控,免费拨测 20万次(价值200元)
大数据开发治理平台DataWorks,资源组抵扣包 750CU*H
简介: 快速学习1.DataWorks 调度依赖的基本使用

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

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


1.DataWorks 调度依赖的基本使用(二)

三、常见问题

1、问题

这个表数据是我本地上传的,自动解析将他解析出来了,但是提交报错依赖的父节点输出不存在,自动解析的依赖关系这里不能删除,该怎么

(1)方式一:代码中编辑输入输出

--@extra_ input=表名--添加输入

-- @extra_ output=表名--添加输出

--@exclude_ input= 表名--删除输入

--@exclude_ output =表名--删除输出

假设当前ods_log_info_d表,它是本地上传的表数据,这时可以在代码中选中表,右键删除输入后,在右侧的父节点依赖这里就不会有这个表了。假设info_d_1表是本地上传的表数据,现在需要将它删除,因为现在提交会报错,看一下自动解析,这里是不能够直接被删除的。先看报错,先来解析报错,当前节点依赖的不节点输出名不存在。不是表不存在,而是没有任何一个节点将表作为节点输出了。因为假设info_d_1表是本地上传的,那是不能够被设置节点依赖的,因为没有任何一个表调度节点去产出表数据,所以将它删除输入,在代码中右键选中表,删除输入,先确认一定是 exclude input 等于 ods_user_info _d,有注释以后,再重新解析输入输出,这时没有父节点ID的依赖,已经被去掉了,这里有一个血缘关系不一致的提示。

(2)输入与代码血缘关系不匹配的提示

为什么会出现该提示?

代码中删除输入输出→找不到产出该表数据的节点任务>表数据是固定的? 也就是在代码中 select 表或者是 insert 的表,但是在节点的依赖关系这里没有将它作为输入或者输出,通过代码的解析和配置的节点依赖不匹配,所以会出现提示。

需要我们关注什么?

确认这张表的数据源来源,本地上传的表数据,可忽略血缘关系不一致的提示,是DataWorks周期调度产出的表数据,请务必再次确认产出该表数据的节点是否有将该表作为节点输出。因为通过表没有找到这产出表数据的节点方式。

(3)方式二:手动添加上游依赖

场景一:需要依赖某个表数据。

场景二:需要依赖某个节点,不一定存在表血缘依赖。那需要依赖某个节点可以输入那个节点的输出,如果需要依赖某个表数据,那可以直接在依赖的上游这里直接输入表名,但是前提是要确认它表是每天周期调度产出的表。有两个项目,两个项目都是上海 region,右边的项目会依赖左边的节点,知道要依赖哪一个表,所以直接输入表明,会列出所有工作空间下有表的输出,手动添加,这时候能够解析出父节点ID,说明这个表是有节点,并且节点将表作为节点输出了。如果需要依赖节点,可以复制节点的任意的输出,进行添加。添加完成,同样也有父节点ID,这样依赖关系是没有问题的,提交也不会报错,这样就可以实现同一种跨项目的依赖。

(4)方式三:自动推荐

自动推荐:

当自动解析选择为否时,您可以使用自动推荐功能自定义添加需要依赖的上游节点。自动推荐功能会自动解析出所有已经提交并发布至生产环境,并且实际运行产出该表的节点。

  1. 说明:由于需要提交发布至生产环境并真实产出该表数据的节点,才会被解析出来,所以此处解析的节点有T+ 1的延迟。

2、拉线设置依赖

在业务流程面板连线形成依赖关系后,系统会自动将上游节点的输出名称作为下游节点的上游依赖(输入) ,即上游节点自带的out输出名称作为下游节点的上游依赖(输入)。

注意:拉线设置依赖的时候自动解析是默认打开的

在拉线,后台已经默认将上游节点的下划线out输出作为下游节点的输入,这样形成的依赖关系,输入输出是默认加上的,注意拉线设置依赖关系,自动解析是默认打开的,这部分最佳实践。

3、最佳实践

(1)产出表数据的节点将该表作为节点输出。因为要避免下游去取表数据,自动解析将它挂为父节点,依赖的父节点,但是通过表又没有找到产出表数据的节点,提交下游节点去用表提交会报错,等协同开发,避免要出现这种情况。

  1. 一张表数据由一个节点产出,保证节点输出同region下唯一。

(3)建议任务名称和输出表名保持一致。但是由于DataWorks将节点中insert表作为节点的输出,所以产出一张表的数据。

4、同步任务调度依赖配置因为同步任务是不支持调度依赖自动解析的,所以同步任务配置调度依赖需要手动配置一下。可以先看dataworks在节点输出,这里会默认加两个输出,一个是下划线out输出,还有一个是节点名的输出。刚到的下划线out输出会在拉线设置依赖关系,默认给用户在后台加上,平台会自动加上节点名的输出,因为数据集成任务是不能够自动解析的,所以在数据集成节点里面产出表数据,需要手动的将表作为节点的输出,或者因为DataWorks会自动加上节点名的输出,所以可以将产出表,节点名和表名,产出表名配置一样的,所以就可以避免再单独操作节点输出。

5、血缘关系

出现血缘关系不正确的原因如下:

根据自动解析我们可以知道,当下游查询该表的数据时,自动解析会将该表作为当前节点的上游依赖,但在一开始并未将该表作为节点的输出,导致提交任务时报错依赖的父节点输出不存在,没有根据该表找到产出该表数据的上游任务。如果出现血缘关系不匹配的提示,那再三确认一下代码中用到的表是不是本地上传的,还是周期调度每天调度产出的,如果是周期调度产出的,那一定要再确认一下。产出表数据的节点,有没有将表作为节点输出?

6、依赖的父节点输出不存在

(1)报错场景:

当前节点产出dw_user_info_all _d表数据,依赖ods_log _info _d , ods_ user._info_ d_ 1表,其中ods_ user_info_d _1表提交报错。

  1. 自动解析设置为否(不推荐x)

自动解析设置为否---血缘关系不一致---当前节点提交正常---下游

节点select表dw_ user, _info. all _d表---提交报错:dw_ _user, _info_ all d不存在-数据质量问题? 首先要明确的是依赖的父节点输出不存在,并不是表不存在,只是没有通过表找到产出表数据的节点,也就是没有任何一个节点的输出是表如果需要提交节点提交不上去,有两个解决方案,一个就是直接将自动解析设置否,不推荐,因为会导致血缘关系不匹配,也会导致下游去用当前节点产出的表数据,提交会报错,因为通过自动解析关掉以后,它不会将当前节点insert表作为节点的输出,下一步再去用表,提交仍然会报错。

  1. 确认该表数据来源:

场景一:本地上传的数据,代码中删除输入,忽略血缘关系提示,提交任务。

场景二:找到产出表ods_ user_ jinfo_ _d. _1数据的节点,将该表作

为节点输出。

在调度依赖的父节点依赖,这里没有解析出父节点ID,这种依赖关系提交肯定会报错的,所以需要确认表是本地上传的,还是调度每天产出的。

7、节点输出相同,提交失败

(1)同region下同名节点需要修改一个节点的输出。

(2)一个表数据由一个节点产出。

因为dataworks是需要保障节点输出唯一,因为它需要通过唯一的输出定位到唯一的节点上,所以建议一个表数据有一个节点产出,如果有同名节点的情况,那也需要更改其中一个节点的输出。

8、删除节点失败,当前节点存在下游

节点没有下游依赖,但是删除仍然报错说节点存在下游,这时该怎么办?

(1)检查需要删除的节点调度配置界面

(2)打开下游节点去除依赖

(3)提交下游节点至开发环境

(4)发布下游节点至生产环境

需要删除的节点,它的调度配置界面是否还有下游节点依赖它,或者是在运维中心直接去打开搜索节点,看它有没有下游任务,Dag图上有没有下游任务依赖它,找到下游节点去掉依赖关系,提交下游节点到开发环境,将开发环境依赖键给去掉,将下游节点再发布到生产环境,将生产环境依赖下限节点的依赖线也去掉,这时节点才能够没有其他下游再去依赖它,才能被下线。这种场景就是本地上传的表数据。为什么要删除输入?为什么提交会报错?因为DataWorks上是针对调度产出的表做依赖关系,因为平台是不知道这个表是什么时候产出的数据,但是DataWorks 是通过节点的状态判断表数据是要依赖的是否已经产出,所以本地上传的表数据在任何时候去取数都是没有问题的,所以是不需要设置调度依赖的。如果是每天调度产出的表数据,那肯定需要去确保它下个月去取数据,它的表数据已经准备就绪了,已经可以让下游正确的取到数据了。如果没有设置调度依赖,那可能会导致下游取数出现数据质量问题或者是任务直接报错,所以如果是调度每天产出的表数据,那一定要设置表的依赖关系,节点依赖关系如果是本地上传的,那平台是无法去判断表数据是什么时候更新,所以调度依赖也是不需要去设置的。如果遇到是本地上传的表数据自动解析将它解析出来,需要在代码中选中表,右键删除输入,这样去将没有解析初步解析ID的输入给删除,将节点提交发布,再演示删除的场景,删除节点的操作。

9、示例

dw_user_info_all_d 这个节点为例,现在需要删除这个节点。首先需要在运维中心找到这个节点,进入到开发环境中心,开发选择周期任务,找到要下线的开发,开发节点任务,也发现它只有一个下游任务,可以再打开下游节点,先将依赖关系去掉,打开这一个节点,把依赖线去掉,再将它提交,先让它不再依赖需要下线的那个节点。

image.png

发布。现在提交只是将它开发环节的依赖关系去掉,可以先检查,开发环境还有没有依赖要下线的节点。没有去成功,再提交,现在依赖的上游是没有要删除的节点。再提交一遍。

看开发环境应用中心还有没有依赖要下线的任务。这是开放环境应用中心,现在看已经没有依赖要下线任务了。

生产环境还是有的。生产环境还依赖了需要下线的节点,现在将更新操作发布到生产环节,发布成功。搜索,现在节点已经没有去依赖要下线的那个节点。

这时如果开发环境和生产环境运维中心都看到这个节点没有再依赖要下线的节点,那再检查要下线的节点,它还有没有下游任务再依赖它,进入到开发,进入到生产环境为中心,它已经没有下游任务了。

再进入到生产环境的中心,生产环境也没有任务依赖它,这时就可以就可以下线任务,确保它在开发环境和生产环境都没有节点去依赖它,这时候下线成功。

image.png

相关实践学习
基于Hologres轻量实时的高性能OLAP分析
本教程基于GitHub Archive公开数据集,通过DataWorks将GitHub中的项⽬、行为等20多种事件类型数据实时采集至Hologres进行分析,同时使用DataV内置模板,快速搭建实时可视化数据大屏,从开发者、项⽬、编程语⾔等多个维度了解GitHub实时数据变化情况。
相关文章
|
11月前
|
SQL 分布式计算 DataWorks
如何让DataWorks调度依赖一个非DataWorks的任务结点,如数据上传任务?
如何让DataWorks调度依赖一个非DataWorks的任务结点,如数据上传任务?创建一个表的空分区,然后通过DataWorks去检查这个分区。
211 7
|
SQL DataWorks 安全
DataWorks产品使用合集之如何实现分钟级调度
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
SQL DataWorks 安全
DataWorks产品使用合集之调度资源组与集成资源内部的实例如何进行共用
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
184 1
|
分布式计算 DataWorks 安全
DataWorks产品使用合集之怎么配置跨业务流程的调度依赖
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
132 1
|
分布式计算 DataWorks 安全
DataWorks产品使用合集之任务自依赖该如何设置
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
155 0
DataWorks产品使用合集之任务自依赖该如何设置
|
分布式计算 DataWorks 安全
DataWorks产品使用合集之调度任务时怎么指定时间函数格式
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
11月前
|
DataWorks 监控 数据建模
DataWorks产品体验评测
DataWorks产品体验评测
|
11月前
|
分布式计算 DataWorks 搜索推荐
DataWorks 产品评测与最佳实践探索!
DataWorks 是阿里巴巴推出的一站式智能大数据开发治理平台,内置15年实践经验,集成多种大数据与AI服务。本文通过实际使用角度,探讨其优势、潜力及改进建议。评测涵盖用户画像分析、数据治理、功能表现等方面,适合数字化转型企业参考。
256 1
|
12月前
|
数据采集 人工智能 DataWorks
DataWorks产品最佳实践测评
DataWorks产品最佳实践测评
|
11月前
|
数据采集 机器学习/深度学习 DataWorks
DataWorks产品评测:大数据开发治理的深度体验
DataWorks产品评测:大数据开发治理的深度体验
467 1