依赖某节点同周期指本节点本周期运行,依赖上游节点当前周期的数据产出情况(即任务执行情况),待上游当前周期实例执行成功后,本节点才会运行。通常,若本节点需依赖上游节点今天产出的数据,可设置同周期依赖。本文为您介绍同周期依赖的配置原理及方式。

为保障调度依赖配置过程流畅,您需先了解调度依赖配置原因与基本原则不支持调度依赖的场景(非周期性调度产出数据的表)

背景信息

DataWorks通过节点的输入输出设置调度依赖,建议您根据节点查询及写入的表血缘关系设置节点的调度依赖关系。

DataWorks提供了自动解析机制,可根据血缘关系自动快速解析节点的输入输出;并支持通过拉线方式设置依赖关系,配置节点输入输出。当使用拉线或自动解析方式配置的依赖关系不符合预期,您可手动编辑节点依赖,删除或添加某节点的输入输出。

配置节点输出请着重注意:
类别描述
节点名与节点产出表名一致对同步任务的产出表进行加工时,可通过自动解析正常依赖离线同步任务。

您需手动将离线同步节点的产出表配置为节点输出,否则下游SQL节点提交时可能报错当前节点依赖的父节点输出名${projectname.tablename}不存在,不能提交本节点,请确保拥有该输出名的父节点:已被提交

保障节点输出在同地域下唯一由于DataWorks通过输出名称定位节点,因此,为保障节点输出名称唯一,如下情况您需要注意。
说明 节点输出的格式为projectname.tablename。若节点输出已产生,仅修改节点名称,节点输出不会变更。因此,您需直接修改节点输出的名称。

注意事项

配置同周期调度依赖的注意事项。
类别描述相关参考
同周期依赖图例展示同周期依赖在DataWorks的DAG图中以实线的形式展示。附录:DAG图功能介绍
同周期依赖无法满足的复杂场景部分场景下,当同周期依赖不满足预期时,您可设置跨周期依赖。例如,天任务依赖小时任务的场景下,天任务默认依赖小时任务当天所有实例。您可通过小时任务自依赖,实现天任务依赖小时任务指定周期。必读:复杂依赖场景调度配置原则与示例
预览节点依赖关系为避免生产调度任务由于依赖关系不符合预期导致生产调度延迟,建议在发布任务前,通过该功能确认各周期实例关系是否符合预期。预览依赖关系

配置界面

进入数据开发节点的编辑页面,单击右侧导航栏的调度配置,在调度依赖 > 同周期(区域1)配置节点的依赖关系。调度依赖界面功能介绍如下表。
功能描述注意事项及相关参考
自动解析(区域2)您可单击修改默认配置通过调度设置页面控制单个节点是否启用该功能,也可通过系统配置页面管控空间级别是否开启该功能。修改默认设置
依赖的上游节点(区域3)用于定义本节点的上游节点,依赖配置后,上游节点运行成功后本节点才具备运行条件。此处需填写上游节点的节点输出,作为本节点的输入。
依赖的上游节点配置方式如下图。上游节点输出
说明 自动推荐方式:

提交发布至生产环境,并真实产出该表数据的节点才会被解析。被推荐的节点需在前一天提交至调度系统,待第二天数据产出后,才可被自动推荐功能识别。因此,自动推荐的节点存在T+1的延迟。

  • 所有节点都需配置依赖的上游节点

    建议根据表血缘关系配置,若无表血缘关系,可基于业务需求选择依赖工作空间根节点或虚拟节点,详情请参见调度依赖配置指引

  • 确保上游节点已提交

    提交任务时,若报错依赖的上游节点输出不存在,请确保需依赖的上游节点已提交。

本节点的输出(区域4)其他节点与本节点建立依赖关系的媒介。

其他节点可通过本节点的输出名称找到本节点,并通过调度依赖配置,将本节点设置为他的上游节点。下游节点设置当前节点依赖后,待下游节点提交完成,当前节点对应的节点输出将展示该下游节点名称。DataWorks不支持手动在节点输出界面编辑下游节点。

本节点的输出配置方式如下图。本节点输出
附录:删除或变更节点输出的影响
预览依赖关系(区域5)节点上下游依赖关系配置完成后,可通过此功能预览依赖关系情况,若不符合预期请及时调整,以免影响任务运行。预览依赖关系

配置原理

调度依赖配置是将上游节点的输出作为下游节点的输入,形成节点依赖。配置完成后,上游节点运行完成且运行成功,下游节点才会启动运行,保障调度任务在运行时能取到正确的数据。您可通过三种方式配置,无论哪种方式,其原理不变。配置原理

配置方式

通过业务流程面板拉线设置节点依赖

业务流程面板使用拉线方式设置依赖关系时,DataWorks将自动为下游节点添加上游节点_out格式的输出,形成节点依赖。拉线方式
说明 当业务流程面板中的依赖连线删除后,节点调度配置中也会同步删除该依赖关系。

通过调度配置界面手动添加上游节点依赖

在调度配置界面,通过输入某节点的节点输出,手动添加依赖的上游节点,格式为projectname.tablename手动删除

通过自动解析功能基于表血缘设置节点依赖

说明 目前仅MaxCompute引擎支持该功能。

DataWorks支持通过节点代码中的表血缘,快速设置节点依赖。开启自动解析后,节点产出的表将被自动添加为projectname.tablename格式的节点输出;节点查询的表将被自动添加为节点输入。

  • 不纳入自动解析的场景

    DataWorks中的临时表(即工作空间表管理中定义的固定格式的表。例如,t_开头的表),不会被自动解析为本节点的输出或依赖的上游节点。

  • 通过自动解析配置节点依赖
    自动解析方式配置节点依赖如下图。自动解析各类型节点自动解析支持的关键字,详情请参见各类型节点自动解析场景
  • 修改自动解析的依赖关系
    说明
    修改自动解析的依赖,具体如下。
    场景及方式描述操作及结果示例
    开启自动解析时,通过代码删除输入输出在代码中执行删除或添加操作,并重新解析。
    删除或添加后,自动添加相应注释至自动解析的结果中:
    • --@exclude_input=删除输入
    • --@exclude_output=删除输出
    • --@extra_output=添加输出
    • --@extra_input=添加输入
    删除输入输出
    关闭自动解析时,编辑自动解析的输入输出DataWorks不支持直接删除已存在下游依赖的节点输出,直接删除将导致下游任务执行或取数异常。

    建议您先调整下游业务,在下游节点移除该上游依赖,再在上游节点删除该节点输出。

    编辑输入输出

后续:确认依赖是否符合预期

配置完成后,为保障任务可以顺利调度执行,建议您执行如下操作:
  • 预览依赖:避免依赖关系不符合预期导致任务调度延迟。
  • 提交检查:提交节点时确认依赖变更是否符合预期。
  • 周期任务依赖确认:节点发布后,需在运维中心确认生产调度任务的依赖是否符合预期。周期任务为生产环境该任务的最新状态,同时,周期实例的实例依赖关系与实例生成方式有关。
详情请参见确认依赖关系配置是否符合预期

常见问题

更多常见问题,请参见调度依赖

最佳实践

跨工作空间,同工作空间跨业务流程设置节点依赖,详情请参见场景3:如何配置跨业务流程、跨工作空间的调度依赖

附录:删除或变更节点输出的影响

  • 删除节点输出对节点产出的表数据无直接影响,详情请参见注意事项
  • 已存在下游依赖,删除或变更节点输出,可能会对下游任务产生严重影响(例如,任务不运行、产生数据质量问题)。详情请参见删除或变更节点输出的影响
    说明 变更节点输出:指节点产出的表数据变更导致节点输出变更,或直接修改节点输出。
  • 自动解析会将节点产出表以projectname.tablename格式设置为节点输出,若产出表变更,可能会导致下游变为孤立节点不被调度,请谨慎操作。若当前节点产出的表需转移至其他节点,请参考删除或变更节点输出的影响
  • 删除存在下游依赖的节点或节点输出前,需先调整业务代码,移除当前节点的下游依赖。