依赖上一周期是指依赖某个节点的上一周期实例,即跨周期依赖某节点上一周期实例是否正常执行。

DataWoks支持以下三种跨周期依赖形式:

  • 一层子节点
    • 节点依赖关系:依赖当前节点的下游。例如节点A存在B、C、D三个下游节点,依赖一层子节点是指节点A依赖B、C、D三个节点的上一周期,即本次节点是否运行取决于上一周期下游节点是否运行成功。
    • 业务场景:本次(本周期)节点的运行,依赖下游节点上一周期对本节点上一周期结果表(即本节点输出表)的数据清洗结果是否成功(如果需要查看下游节点对当前节点数据清洗结果是否符合预期,可以对下游节点产出的结果表配置数据质量规则)。
  • 本节点
    • 节点依赖关系:跨周期自依赖(依赖当前节点的上一周期),即本次节点是否运行取决于上一周期本节点是否运行成功。
    • 业务场景:本周期节点运行依赖上一周期该节点业务数据的产出情况。(如果需要查看节点数据清洗结果是否符合预期,可以对节点产出的结果表配置数据质量监控规则。)
  • 自定义:手动输入需要依赖的其他节点,此处需要输入节点ID。如果存在多个节点,需用逗号(,)分隔,例如12345,23456。
    • 节点依赖关系:手动输入需要依赖的节点,本周期节点运行取决于自定义依赖的节点上一周期该是否运行成功。
    • 业务场景:业务逻辑上需要依赖其他业务的数据正常产出,但本节点中没有操作该业务数据。
说明 依赖上一周期和依赖本周期的区别:在运维中心中查看节点依赖关系时,所有跨周期依赖的节点都会以虚线的形式展示。
下线节点时需要删除节点依赖关系,需要下线的依赖关系包括同周期依赖及跨周期依赖。下线按业务需求选择需要依赖的上游节点的周期,同周期依赖和跨周期依赖通常只需要选择一个,自动解析默认依赖上游同周期,若需要修改,请参考自定义添加或删除依赖将同周期依赖去除,再添加跨周期依赖。
下图为业务流程节点的依赖关系。依赖关系
运维中心页面为您展示业务流程的依赖关系。依赖关系
以配置xc_create节点代码为例。节点

如上图中的SQL节点内容所示,xc_create节点创建xc_1、xc_2两张表(或产出两张表的数据),并将xc_1、xc_2作为本节点的输出。

以配置xc_select节点代码为例。节点示例

如上图中的SQL节点内容所示,xc_select节点查询xc_create节点中的表数据,通过自动解析功能,自动将xc_create节点解析为本节点依赖的上游。

依赖上一周期:一层子节点

节点依赖:依赖当前节点的下游,本周期该节点是否运行取决于。例如,下游节点的上一周期是否运行成功例如节点A存在下游节点B、C、D三个节点,依赖一层子节点是节点A依赖B、C、D三个节点的上一周期。

业务场景:本周期该节点是否进行数据清洗取决于下游节点上一周期对本节点的结果表(即本节点输出表)数据清洗的结果。如果下游节点的上一周期运行成功,本周期的节点实例开始运行,否则将不能运行。

xc_create选择依赖一层子节点。一层子节点
运维中心页面为您展示各节点的依赖关系。依赖关系

依赖上一周期:本节点

节点依赖:本周期节点是否运行取决于上一周期本节点是否运行成功,如果上一周期本节点未完成,将阻碍本周期节点运行。

业务场景:本次节点是否进行数据清洗取决于上一周期本节点数据清洗情况。此处将节点设置为小时调度以便查看。小时调度
您可以进入运维中心 > 周期任务运维 > 周期实例页面,查看节点的依赖情况。查看情况
说明 小时节点设置自依赖(依赖上一周期:本节点)的情况下,如果本节点上一周期实例未成功运行,那么该节点下一个小时实例也将不会执行。

例如:每小时调度的任务,如果第一个实例执行失败了或者未运行,那么当天该节点的其他小时实例也将不会运行。

依赖上一周期:自定义节点

节点依赖:代码中没有用到1000374815节点的产出表,但业务上需要依赖该1000374815节点的上一周期是否正常产出数据。从节点关系来说,xc_create节点需要依赖1000374815节点的上一周期。

业务场景:业务逻辑上需要依赖1000374815节点正常产出的业务数据,但本节点(xc_create)中没有操作该业务数据(没有select1000374815节点产出的结果表)。

下图中的节点ID为1000374815。节点ID
xc_create节点依赖的上游自定义选择1000374815节点。节点
您可以进入运维中心 > 周期任务运维 > 周期实例页面,查看节点的依赖情况。周期实例

跨周期依赖典型场景

实时场景一
  • 场景:天任务依赖小时任务,不想等24个小时任务实例跑完才跑天任务,天任务希望尽量按定时时间12:00跑。
  • 解决方案:上游小时任务配置“依赖上一周期”选“本节点”;下游天任务定时调度时间选12:00,天任务不需要设置跨周期依赖。
  • 效果:等待上游小时任务定时时间12点的实例运行成功后,下游天任务便会执行。
实时场景二
  • 实时场景:天任务依赖小时任务昨天的数据
  • 解决方案:下游天任务配置“依赖上一周期”选“自定义”,填上游小时任务的id。
实时场景三
  • 实时场景:小时任务依赖天任务,上游天任务跑完,下游小时任务多个周期定时时间已到,导致小时任务多周期并发调起怎么办。
  • 解决方案:下游小时任务配置“依赖上一周期”选“本节点”。
实时场景四
  • 实时场景:本节点依赖自己的上一周期产出的数据,不知道上一周期什么时候产出。
  • 解决方案:本节点配置“依赖上一周期”选“本节点”。