任务配置上下游节点依赖前,您需先确认当前节点的表血缘关系(例如,表数据间的血缘关系、表产出的分区数据),基于血缘关系配置节点的调度依赖。本文为您介绍如何确认表血缘,以及未基于表血缘配置节点依赖的影响。
背景信息
确认表血缘,以及未基于表血缘配置节点依赖的影响,说明如下表。
类别 | 说明 |
确认表血缘 | 依赖同工作空间的表数据:通过上下游节点参数配置及实例替换情况,确认上游每日产出的分区数据。 |
依赖跨工作空间的表数据:通过数据地图产出信息确认上游表每日产出的分区数据。 | |
未基于表血缘配置节点依赖的影响 | 存在血缘依赖关系但未设置节点依赖关系,导致下游取数出现问题。 |
存在血缘依赖且设置了节点依赖但依赖的时间有误,导致下游取数出现问题。 |
使用说明
DataWorks上,节点读取或产出的表分区均通过调度参数实现。若上游节点产出的表分区值与下游节点依赖的表分区不匹配,您可根据业务需要综合考量,是否需要修改节点的调度参数配置,以此方式实现节点产出的表分区与节点依赖的表分区数据相匹配。
若需依赖上游节点上一周期产出的表分区数据,您可考虑设置跨周期依赖,即本节点依赖上一周期该上游节点。
说明 分区表场景下,需保证上游节点产出的表分区为下游节点所需依赖的表分区数据。
确认表血缘
同空间下确认上游表血缘
节点周期写入某张表某个分区的数据,大部分场景都是采用调度参数来动态实现,您可参考调度参数,了解调度参数的替换原理。若您需要依赖同工作空间某节点,则可检查其调度参数的配置情况。- 开发环境确认上下游表数据依赖
您可进入上游节点的编辑界面,查看上游节点调度参数配置与节点代码详情。
- 生产环境确认上下游表数据产出
跨空间依赖确认上游表血缘
若您需依赖其他工作空间的节点,可通过数据地图确认表数据每日写入情况。例如:确认上游该节点每日写入的表分区为昨天还是今天。未基于表血缘配置节点依赖的影响
场景一:存在强血缘依赖但未设置节点依赖,导致下游取数出现问题
若当前节点Job_B
代码中配置了依赖A表的数据,但未将产出A表数据的节点Job_A
作为当前节点依赖的上游,则可能会出现A表数据未产出,当前节点便开始执行,最终导致Job_B
节点产出的表数据出现问题。虽然Job_A
的定时时间早于Job_B
,若Job_A
无法在2点前完成数据产出,将导致Job_B
取数出现问题。Job_A
定时时间1点未产出数据的可能原因如下:- Job_A的上游节点运行出错,或执行变慢。
- Job_A及其上游节点出现等待资源情况。
- job_A的上游节点某天被冻结。
场景二:设置了调度依赖,但由于参数配置导致下游取上游表数据早于上游表数据产出
同周期依赖配置情况下,由于上游产出的表分区与下游取表数据的分区匹配不上,可能会导致下游取数出现质量问题,或下游任务报错。如下图所示。说明 MaxCompute节点使用max_pt函数时,请确认上游表数据每日产出无误。