任务配置上下游节点依赖前,您需先确认当前节点的表血缘关系(例如,表数据间的血缘关系、表产出的分区数据),基于血缘关系配置节点的调度依赖。本文为您介绍如何确认表血缘,以及未基于表血缘配置节点依赖的影响。

背景信息

确认表血缘,以及未基于表血缘配置节点依赖的影响,说明如下表。
类别 说明
确认表血缘 依赖同工作空间的表数据:通过上下游节点参数配置及实例替换情况,确认上游每日产出的分区数据。
依赖跨工作空间的表数据:通过数据地图产出信息确认上游表每日产出的分区数据。
未基于表血缘配置节点依赖的影响 存在血缘依赖关系但未设置节点依赖关系,导致下游取数出现问题。
存在血缘依赖且设置了节点依赖但依赖的时间有误,导致下游取数出现问题。

使用说明

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函数时,请确认上游表数据每日产出无误。
上下游参数不一致