DataWorks会为您的节点自动生成实例,用于运行实例任务等操作。您可以在调度配置中指定实例在T+1次日生成或即时生成。指定发布后即时生成时,系统会立即生成实例,完成后您可进入运维中心查看实例生成状态。本文为您介绍即时转实例的规则及配置使用要点。

发布后即时生成实例规则

  • 节点提交发布的时间早于23:30(23:30~24:00点期间为全量转实例期间)时,则DataWorks会即刻为您生成实例。
    • 任务定时运行时间在提交发布时间的10分钟之后(例如提交发布时间是18:00,定时运行时间是18:30),则DataWorks会正常生成实例运行任务,您可以在实例列表中找到对应的实例。
    • 任务定时运行时间距离提交发布时间不足10分钟(例如提交发布时间是18:00,定时运行时间是18:05),则DataWorks会生成一个已完成的实例,节点实例状态为实时生成的过期实例,过期实例不会真实跑数据。过期实例
  • 节点提交发布的时间晚于23:30(23:30~24:00点期间为全量转实例期间)时,则发布后即时生成实例功能不生效,您在实例列表中找不到对应的实例,需要等到提交发布后的第三天实例才生效。
  • 节点如果是孤立节点时(即节点的调度依赖中,没有任何依赖的上游节点),则无法正常生成实例。

    例如,新增节点时,上游节点的实例生成方式配置为T+1次日生成,下游节点的实例生成方式配置为发布后即时生成时,下游节点实例即时生成后,上游节点实例还未生成,此时下游节点无法根据依赖关系找到上游节点实例,会变成孤立节点,无法自动调度。

  • 已有的实例从T+1次日生成变更为发布后即时生成,会影响当天实例的产生情况。
    • 任务的定时时间(t1)在修改发布时间点(t2)的十分钟后:已生成的节点实例会被删除并替换为实时转出的实例。
    • 任务的定时时间(t1)是不在修改发布时间点(t2)的十分钟后:已生成的节点实例会保留。
  • 组合节点(例如PAI节点、do-while节点、for-each节点等包含内部节点逻辑的节点)不支持将实例生成方式配置为发布后即时生成,即不支持实时转实例功能。

实例生成方式

目前有以下两种实例生成方式:
  • T+1次日生成

    全量任务转实例:23:30之前提交发布的任务,第2天实例生效。23:30~00:00提交发布的任务,第3天实例生效。

  • 发布后即时生成
    实时转实例:发布代码即生成实例,生成实例时需满足实例生成规则,详情可参见发布后即时生成实例规则
    说明 定时时间在发布时间点10分钟后的任务才会真实跑数据、产出数据。

常见使用场景:上游节点实例为T+1次日生成,下游节点实例为即时生成

实时转实例使用场景通常为上游节点实例的生成方式配置为T+1次日生成,下游节点实例的生成方式配置为发布后即时生成。以下图为例,上下游节点间的依赖关系如图所示。实时转实例由于上游节点发布后第二天才会生成实例,而下游节点的实例为提交发布节点后即时生成,所以下游节点提交发布后,下游实时转实例任务是否正常执行,取决于上游节点当天的实例是否已经存在。细分场景及影响如下表所示。
细分场景 调度运行的影响 总结
上下游节点均为当天新增节点。

即下游节点提交发布时,上游节点的实例还未生成。

  • 下游节点即刻产生实例,而上游节点实例在第2天才会产生,因此当天提交发布上下游节点后,下游节点的实例会变成孤立节点。
  • 如果下游节点的调度配置中勾选了依赖上一周期,且依赖项选择为本节点,则即使第2天上游节点的实例成功产生了,但是下游节点由于跨周期自依赖到前1天的产生的下游上,从而导致整个任务被孤立且不被调度运行。
建议您修改上游节点的实例生成方式为发布后即时生成,则所有实例可正常生成,任务可正常调度运行。
上游实例已经产生,下游节点为新增实时转实例的节点。

即下游节点提交发布时,上游节点已有成功生成的实例。

  • 下游节点在提交发布后即刻开始产生实例,产生的实例会依赖此前已有的上游节点的实例。
  • 如果下游节点的调度配置中:
    • 调度周期小时分钟时,产生的下游节点的实例会依赖此前已有的上游节点的实例。
    • 勾选了依赖上一周期,且依赖项选择为本节点,则下游节点生成的第一个实例没有自依赖的上游实例,后续生成的实例可正常自依赖上一调度周期生成的实例,任务执行无影响。
任何跨周期自依赖的调度是否成立,都需要以前一天该节点是否可以正常调度运行作为依据。

常见使用场景:节点从T+1次日生成实例的小时节点变更为即时生成实例的天节点

已提交发布的业务流程中,上游节点的实例为T+1次日生成,且调度周期为日,如下图Day1中的shili_1;下游节点的实例为T+1次日生成,调度周期为小时,如下图中Day1中的shili_2和shili_3。场景01

当天节点实例已经正常产出并运行,运行一段时间后,在T1时刻将shili_2节点的调度周期从小时调度改为天调度,并且选择发布后及时生成实例。场景如下图所示。

更改节点
变更后:
  • 如上图所示,在T1所示时间点修改节点shili_2并提交发布后,则原本已生成的、用于T1时间点之后任务运行的小时节点实例会被删除,并且产生1个新的天节点实例,即提交发布前,shili_2为小时节点,发布后为天节点。
  • 在T1提交发布后,shili_2节点的下游节点shili_3会依赖到新产生的天节点上。
  • 如果shili_2的调度配置中勾选了依赖上一周期,且依赖项选择为本节点,则变更后,新产生的第一个天节点实例会依赖上个运行周期里的小时节点实例。