周期调度中存在的特殊场景包含节点成环与节点孤立,这两种节点都会导致任务调度出现问题,以下将为您介绍这两种场景,以及解决方法。
场景一:节点成环
节点成环产生原因与解决方案
当某节点为上游节点但又同时依赖了自己的下游节点,导致依赖关系成环,您需要分析业务流程,及时去除成环依赖。
例如,当下游节点依赖某上游节点上一周期产出的表数据,并且将加工结果写回该表时,若下游节点依赖上游节点同周期而非上一周期,将导致上下游节点依赖关系成环。请明确业务场景后,将下游节点从依赖上游同周期转变为依赖上一周期。
场景示例:如下图场景,若上游节点A查询表C数据并产出表A数据,下游节点B对表A数据进行清洗写入表B,紧接着节点C对表B数据进行清洗又重新写回表C,这种情况下自动解析会生成环。
解决方案:分析业务流程,去除成环依赖。如下图案例,如果下游表要对上游表上周期数据进行清洗,则设置下跨周期,A节点应该跨周期依赖C节点。
成环节点的监控报警
为保障周期任务可以正常产生周期实例并且自动调度运行,DataWorks内置了报警规则来对周期任务进行定期监控扫描,如有异常便会自动报警。节点成环后会自动报警,如果收到节点成环报警请及时处理。
DataWorks每天定时9点、12点、16点、20点和22点对周期任务状态进行扫描,如有异常将会自动发送报警。扫描时间点前10分钟内产生的异常不会纳入本次扫描,该异常将会被纳入下一个周期的任务状态进行扫描。
节点成环报警为系统内置报警规则,您无须手动新建,默认以短信、邮件的方式报警给节点责任人。但您可以在规则管理页面中针对全局规则修改报警接收人,详情请参见规则管理。
场景二:孤立节点
孤立节点介绍
孤立节点指节点在周期任务或周期实例处展开父节点时,没有依赖任何父节点,这类型节点在自动调度时不会被调起,所以孤立节点不会自动调度运行,如果该孤立节点下游依赖较多,可能会造成比较严重的后果。孤立节点产生后会自动报警,如果收到孤立节点告警请及时处理。
在DataWorks上,除了工作空间根节点外,自定义的每个周期调度的节点都需要有父节点依赖才可以被正常调度运行。
如何处理孤立节点?
场景 | 描述 | 解决方案 |
场景 | 描述 | 解决方案 |
上下游节点实例生成方式不一致。 | 当上下游均为新建节点时,上游实例生成方式为T+1次日生成,下游实例生成方式为发布后即时生成且只有该一个上游依赖时,由于上游节点当天未生成实例,导致下游节点成为孤立节点。 | 请调整上游实例生成方式后重新发布。关于该场景的具体说明,详情请参见场景三:上下游任务实例生成方式不一致。 |
上游节点不在节点有效时间内。 | DataWorks上不在有效期内的节点不会生成实例。当上游节点不在节点有效时间内,若下游节点仅依赖该上游节点时,下游节点会成为孤立节点。 | 请前往节点调度配置界面修改上游节点生效日期。 |
上游节点的节点输出变更。 | 上游业务变更会导致上游节点输出变更,进而导致下游依赖关系丢失。若下游节点仅依赖该一个上游时,下游节点将成为孤立节点。 | 请重新为下游节点设置节点依赖关系。 |
跨工作空间依赖,上游节点所在工作空间未开启调度。 | 当前节点跨工作空间依赖某节点时,若上游节点所在工作空间未开启调度,且当前节点仅依赖该一个上游时,当前节点将变成孤立节点。 | 请找到对应空间负责人开启调度或去除该跨项目节点依赖。 |
中间任务不在补数据指定周期范围内。 | 执行补数据时,如果调度依赖关系中的中间任务(即依赖于上游节点,且存在下游依赖)不在补数据的周期范围内,则可能导致依赖该中间任务的下游节点孤立。 示例场景:
对A、C任务执行补指定周期 | 请在周期范围内对中间任务一并执行补数据操作。详情请参见执行补数据。 本示例则需在 |
孤立节点监控报警
DataWorks每晚根据周期任务生成第二天待自动调度运行的周期实例,所以为保障周期任务可以正常产生周期实例并且自动调度运行,DataWorks内置了报警规则来对周期任务进行定期监控扫描,如有异常便会自动报警。孤立节点产生后会自动报警,如果收到孤立节点报警请及时处理。具体如下:
DataWorks每天定时9点、12点、16点对周期任务状态进行扫描,如有异常将会自动发送报警,但在扫描时间点前10分钟内产生异常不会纳入本次扫描,该异常将会被纳入下一个周期的任务状态扫描中进行扫描。
节点孤立报警为系统内置报警规则,您无须手动新建,默认以短信、邮件的方式报警给节点责任人。但您可以在规则管理页面中针对全局规则修改报警接收人。详情请参见规则管理。
定位孤立节点
您可以前往运维中心,在运维大屏页面重点关注区域,查看孤立节点数量与明细。
- 本页导读 (1)
- 场景一:节点成环
- 节点成环产生原因与解决方案
- 成环节点的监控报警
- 场景二:孤立节点
- 孤立节点介绍
- 如何处理孤立节点?
- 孤立节点监控报警
- 定位孤立节点