本文为您介绍导致删除或变更节点输出的操作,以及删除或变更节点输出的影响与解决方案。
注意事项
若本节点存在下游依赖,删除本节点的节点输出:
当下游仅存在一个父节点依赖,可能会导致下游节点成为场景:节点孤立不能正常调度。
当下游节点还未形成依赖,导致早于上游节点产出表数据,从而产生数据质量问题。
因此,存在输出变更的场景请评估影响并谨慎操作。
导致节点输出被删除或变更的操作
节点输出除了节点创建时自动生成两个节点输出外,您还可手动添加节点输出;或通过自动解析代码血缘,将节点产出表自动解析为节点输出。
如下操作可能导致节点输出被删除:
人为将手动添加的节点输出删除。
关闭自动解析功能后未检查节点输出,节点代码变更,导致节点不再产出某张表数据。
如果本节点存在下游依赖节点,变更本节点的节点输出可能导致严重影响。
删除或变更节点输出对下游节点的影响与解决方案
删除节点输出对本节点输出、产出无影响。节点输出仅用于挂载节点依赖,节点是否产出表数据与代码逻辑有关,与节点输出是否删除无关。
删除或变更本节点的节点输出,将导致下游节点不再周期性自动调度,或下游产生数据质量问题。若下游节点依赖关系较深,将会产生严重影响。当存在下游依赖的上游节点输出被删除时,DataWorks界面会给出如下提示,请确认影响后再操作!
下游任务仅依赖当前一个父节点时,下游任务将被孤立。 场景:节点孤立无法被调度运行。
下游任务依赖多个父节点时,可能存在数据质量问题。
若已存在下游依赖,此时删除节点输出(节点产出表数据变更导致节点输出变更,或直接修改了节点输出),可能会导致下游任务产生严重影响(任务不运行或产生数据质量问题)。
若产出表数据的节点发生变更,请重新为下游节点设置新的节点依赖。
自动解析根据代码血缘解析并配置节点调度依赖。若解析出节点产出A表数据,并且有下游任务B依赖A表,则会将A表自动解析为节点输出,同时,展示下游任务B的ID、节点名;若业务调整,导致节点不再产出A表数据时,您需确认A表数据从哪个节点产出,并且为下游节点B重新配置产出A表数据的节点依赖。
示例:上游产出表变更,导致下游依赖丢失
示例Node_A
产出表A数据,下游节点Node_B
需对表A的数据进行加工,自动解析将为Node_B
挂载依赖上游节点Node_A
。当业务变更,表A数据变更为由Node_C
产出,此时,自动解析将重新为下游Node_B
挂载此新节点Node_C
的依赖。
自动解析设置节点依赖,上下游调度正常。
业务变更,上游不再产出表A,由于自动解析,导致下游依赖关系丢失。
由于下游节点
Node_B
仅存在一个上游依赖,上游产出表变更导致依赖丢失,此时Node_B
变为孤立节点,不会自动调度。务变动后,节点A不再产出表A数据。
当下游B只依赖A时,失去A节点依赖,将导致下游B变成孤立节点,不会再调度。
当下游B任务有其他依赖时,B任务将正常调度,但数据可能出现问题。
由于B任务
SELECT A
数据,但没有依赖产出表A数据的节点。
业务变动后,节点B依赖节点A,该依赖被称为无效依赖。
现象:该条目无父节点ID,无父节点名称。
原因:未通过该表(父节点输出名)找到产出该表数据的上游节点。
业务原因:原上游节点产出表变更(不再产出表A数据),目前无法通过节点输出找到产出表A数据的上游。
为新节点
Node_C
增加表A作为该节点的节点输出,自动解析将重新为下游Node_B
挂载此新节点依赖。新节点添加输出后,请提交发布,确保下游节点可通过该输出挂载新节点的依赖。
- 本页导读 (1)
- 注意事项
- 导致节点输出被删除或变更的操作
- 删除或变更节点输出对下游节点的影响与解决方案
- 示例:上游产出表变更,导致下游依赖丢失