依赖同周期某节点,是指本节点本周期运行,依赖上游节点当前周期的数据产出情况(即任务执行情况),待上游当前周期实例执行成功后,本节点才会运行。通常,若当前任务需依赖上游任务同周期产出的表数据时,可为当前任务设置依赖该上游任务的同周期任务。DataWorks提供多种同周期依赖配置方式,并支持依赖预览功能,您可及时查看并调整有误依赖,保障任务调度符合预期。本文为您介绍同周期依赖的注意事项、配置原理、配置方式等内容。
注意事项
为保障调度依赖过程流畅,您需先了解调度配置。
同周期依赖在DataWorks的DAG图中以实线的形式展示。
部分复杂场景下,当同周期依赖不满足预期时,您可设置跨周期依赖。例如,天任务依赖小时任务的场景下,天任务默认依赖小时任务当天所有实例。您可通过小时任务自依赖,实现天任务依赖小时任务指定周期。更多复杂场景依赖介绍,详情请参见复杂依赖场景调度配置原则与示例。
配置原则
为提升任务开发效率,建议您在实际开发中使用自动解析依赖功能快速为节点设置依赖关系。基于自动解析进行实际开发时,请遵循以下原则:
节点创建:建议节点名称与节点产出表名称一致。
代码开发:避免多个节点写入数据至同一张表。
依赖配置:建议将节点产出表配置为节点的输出。
配置入口及配置说明
进入数据开发节点的编辑页面,单击右侧导航栏的调度配置,在调度依赖区域配置节点的依赖关系。
配置节点同周期依赖关系时,需在依赖的上游节点区域,定义当前任务需要依赖哪些上游任务;在本节点输出名称区域,定义其他任务可通过本节点的哪些节点输出挂载当前节点的依赖关系。
在代码编辑时,默认基于节点查询及写入的表血缘快速为节点设置依赖关系,并且会在节点提交时自动检测与识别当前依赖关系是否符合数据血缘。您也可根据业务需要,选择是否启用提交任务前进行代码自动解析功能。
平台提供基于代码血缘自动解析、业务流程面板拉线、手动添加等多种方式配置依赖关系,您可按需选择。
若本节点需依赖上游昨天产出的数据,或小时、分钟任务依赖自己上一小时或分钟实例,可设置跨周期依赖。
依赖的上游节点
用于定义本节点的上游节点,依赖配置后,上游节点运行成功后本节点才具备运行条件。此处需填写上游节点的节点输出,作为本节点的输入。配置依赖的上游节点时请注意:
所有节点都需要配置依赖的上游节点:建议根据表血缘关系配置,若无表血缘关系,可基于业务需求选择依赖工作空间根节点或虚拟节点。
请确保依赖的上游节点已提交:提交任务时,若报错依赖的上游节点输出不存在,请确保所需依赖的上游节点已提交。
配置方式:
方式一:自动解析依赖
DataWorks从代码解析输出表名projectName.tableName,系统根据对应输出表名搜索并推荐需要依赖的节点。
方式二:手动添加
单击新增依赖按钮,选择不同的依赖方式后,根据名称、输出名或调度任务ID来手动搜索对应的上游依赖。
使用自动解析依赖时,需确保依赖的上游任务已提交发布至生产环境,并真实产出该表数据。被推荐的节点需在前一天提交至调度系统,待第二天数据产出后,才可被自动推荐功能识别。因此,自动推荐的节点存在T+1的延迟。
本节点输出
本节点的输出是其他节点与本节点建立依赖关系的媒介。其他节点可通过本节点的输出名称找到本节点,并通过调度依赖配置,将本节点设置为它的上游节点。下游节点设置当前节点依赖后,待下游节点提交完成,当前节点对应的节点输出将展示该下游节点名称。DataWorks不支持手动在节点输出界面编辑下游节点。配置方式如下图。
若工作空间存在同名节点,可能导致节点输出同名而提交失败。删除已存在下游依赖的节点输出可能造成严重影响,详情请参见:删除或变更节点输出的影响。
方式一:默认生成
DataWorks会默认生成一个节点输出,可通过单击修改对输出表名进行修改。
输出名为全局唯一,不支持修改或删除,通过工作流面板拉线设置依赖时,DataWorks将自动生成一个输出表名与输出名作为下游节点的输入。
方式二:手动添加
在节点输出配置模块,单击添加输出,可手动新增一条本节点输出,并自行配置输出名与输出表名。
输出名以空间名.自定义配置
样式命名,需保证全局唯一性。
配置原理
调度依赖配置是将上游节点的输出作为下游节点的输入,形成节点依赖,建议您根据节点查询及写入的表血缘设置节点的调度依赖关系。配置完成后,上游节点运行完成且运行成功,下游节点才会启动运行,保障调度任务在运行时能获取到正确的数据。
您可通过如下三种方式配置,无论哪种方式,其原理不变。
配置方式 | 说明 |
该方式下,DataWorks将自动为下游节点添加上游节点的默认输出,形成节点依赖。 | |
该方式下,DataWorks将自动解析节点代码中的表血缘,通过血缘关系配置调度依赖。 | |
通常,当通过自动解析生成的节点调度依赖配置与实际应用不符时,您可使用该方式修改调度依赖。 |
配置方式
通过工作流程面板拉线设置节点依赖
通过调度配置界面手动添加上游节点依赖
通过自动解析功能基于设置节点依赖
后续:确认依赖是否符合预期
配置完成后,为保障任务调度符合预期,您可通过以下操作验证配置是否正确:
提交检查:提交节点时确认依赖变更是否符合预期。
周期任务依赖确认:节点发布后,需在运维中心确认生产调度任务的依赖是否符合预期。周期任务为生产环境该任务的最新状态,同时,周期实例的实例依赖关系与实例生成方式有关。