本文将为您介绍依赖关系的相关问题。

为什么会出现自动解析后提交本节点失败,报错依赖的父节点输出不存在的情况?

提交失败
出现上述情况有以下两种原因:
  • 上游节点未提交,提交后可以再次尝试。
  • 上游节点已经提交,但上游节点的输出名不是workshop_yanshi.tb_2
说明 通常通过自动解析得到的父节点输出名、本节点输出名会根据INSERT、CREATE、FROM后的表名获取,请确保配置方式与自动解析依赖关系所介绍的方式一致。

本节点的输出中,下游节点名称、下游节点ID都是空且不能填写内容吗?

如果本节点下游无子节点,则无内容。待本节点下游配置子节点后,便会自动解析出内容。

节点的输出名称的作用是什么?

节点的输出名称用于建立节点间的依赖关系。假设节点A的输出名称是ABC,而节点B将ABC作为它的输入,则节点A与节点B之间便建立了上下游关系。

一个节点可以有多个输出名称吗?

可以。下游节点引用本节点的任何一个输出名称作为下游节点的父节点输出名称,都将与本节点建立依赖关系。

多个节点可以有相同的输出名称吗?

不可以。每个节点的输出名称必须在阿里云账号中是唯一的。如果需要多个节点产出数据至同一张MaxCompute表,则这些节点的输出建议用表名_分区标识。

使用自动解析依赖关系时,如何不解析到中间表?

在SQL代码中选中中间表名并右键单击删除输入删除输出,再次执行自动解析输入输出即可。

最上游任务应如何配置依赖关系?

通常可以选择依赖在本工作空间根节点上。

为什么在节点A搜索上游节点输出名时,搜索到了节点B不存在的输出名?

因为搜索功能是基于已经提交的节点信息来进行搜索,如果节点B提交成功后,您又删除了节点B的输出名称且未提交至调度系统,则在节点A上仍然能搜到节点B已删除的输出名。

有A、B、C三个任务,如何实现每个小时执行一次A->B->C(A执行完了B再执行,B执行完了C再执行)的任务流程?

将A、B、C的依赖关系设置为A的输出为B的输入,B的输出为C的输入,同时设置A、B、C的调度周期都为小时即可。

如何处理依赖的上游没有解析到父节点ID,提交报错的情况?

该报错并不是指该表不存在,只是在说明该表不是某个节点的本节点输出,无法通过此表去找到产出这个表数据的节点,从而与该节点挂上依赖。

通过上游节点的本节点输出作为下游节点的本节点输入,根据上文自动解析的原理可知,在SQL中查询xc_demo_partition表,但自动解析时没有通过此表找到上游节点,说明没有一个节点将这个表xc_demo_partition作为本节点输出。报错
您可以通过下述方法解决该问题:
  1. 找到产出该表的节点任务,查看该节点任务的本节点输出。
    如果不知道哪个节点中有操作该表,可以使用代码搜索功能,通过关键字进行模糊查找。代码搜索
  2. 如果是本地上传的表数据,或者无需依赖该节点,您可以选择在代码区右键,选择删除输入删除输入
说明 为保证代码血缘的准确性,建议减少使用自定义依赖的次数。

天任务依赖小时任务,不想等24个小时任务实例跑完才跑天任务,天任务希望尽量按定时时间12:00跑。

解决方案:上游小时任务配置“依赖上一周期”选“本节点”;下游天任务定时调度时间选12:00,天任务不需要设置跨周期依赖。

效果:等待上游小时任务定时时间12点的实例运行成功后,下游天任务便会执行。

天任务依赖小时任务昨天的数据

下游天任务配置“依赖上一周期”选“自定义”,填上游小时任务的id。

本节点依赖自己的上一周期产出的数据,不知道上一周期何时产出。

本节点配置“依赖上一周期”选“本节点”。

小时任务依赖天任务,上游天任务跑完,下游小时任务多个周期定时时间已到,导致小时任务多周期并发调起怎么办。

下游小时任务配置“依赖上一周期”选“本节点”。