您可以通过实时转实例功能,发布代码后即时生成实例,然后在运维中心实时查看任务的调度依赖情况。

实例生成方式

目前有以下两种实例生成方式:

  • T+1次日生成

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

  • 发布后即时生成

    实时转实例:发布代码后立即生成实例。

创建实时转实例的节点

  1. 新建业务流程。
    1. 进入数据开发页面,右键单击数据开发下的业务流程,选择新建业务流程
      新建业务流程
    2. 新建业务流程对话框中,填写业务流程名称描述
    3. 单击新建
  2. 打开新建的业务流程,右键单击数据开发,选择新建数据开发节点 > ODPS SQL
    节点
  3. 新建节点对话框中,填写节点名称,单击提交
  4. 在代码编辑页面编辑代码后,单击右侧的调度配置,选择节点生成实例方式为发布后即时生成
    发布后即时生成
    说明
    • 组合节点不支持实时转实例功能。
    • 全量转实例期间(23:30~24:00点期间)不能进行实时转实例,可以提交发布,但不会转出实例。
    • 已有的实例从T+1次日生成变更为发布后即时生成,会影响当天实例的产生情况。已运行的实例会保留,发布时间未运行的实例会被删除并替换为实时转出的实例。
    • 上游T+1形式生成实例,下游实时转实例节点会变成孤立节点,任务不会调度。
    • 上下游均为实时转实例节点,任务定时时间在发布时间点10分钟后的实例会正常转出。任务定时时间在发布时间点10分钟前,会生成已经完成的实例,节点实例属性为实时生成的过期实例,下游正常调度。
      示例场景:假设任务调度时间设置18点执行,修改作业调度时间为17点(立即生成实例)。如果在16:50前发布任务,只会生成1个实例。如果在16:50后发布任务,会生成1个已完成的实例,节点实例属性为实时生成的过期实例。
      详情

使用场景

实时转实例使用场景通常为:上游T+1形式生成实例,下游实时转实例,节点间的依赖关系如下图所示。
通用场景

实际应用时通常出现以下情况:

  • 上下游均为当天新增节点
    • 下游天节点:下游天节点实时转出来的实例只有该节点的实例,并且没有上游节点的依赖。跨周期自依赖不影响当天的实例,跨周期自定义依赖可依赖到已有的实例上。
    • 下游小时/分钟节点:如果是跨周期自依赖,除第1个实例没有上游节点外,其他的实例都有上游节点。
    • 下游周/月节点:只会存在该节点对应的实例,没有上游节点。
      说明 由于上游天节点第2天才会产生实例,下游的实时转出的实例节点会变成孤立节点。孤立节点没有上游所以不会被调度运行。

      如果下游新增节点为跨周期自依赖,则第2天上游实例产生时,下游会由于跨周期自依赖到前1天的孤立节点上,从而导致整个任务被孤立且不被调度运行。

    总结:新增跨周期自依赖的实时转实例节点,除第1个实例没有自依赖的上游外,其它实例依赖关系正常,但整个任务无法正常调度运行。

  • 上游实例已经产生,下游新增实时转实例节点
    • 下游天节点:产生的实例会依赖原有的上游天节点实例,跨周期自依赖不影响当天的实例。
    • 下游小时/分钟节点:产生的实例会依赖原有的上游天节点实例,如果跨周期自依赖,第1个实例不会有自依赖的上游,而其他实例则会正常自依赖。
    • 下游周/月节点:产生的实例会依赖原有的上游天节点实例,跨周期依赖不影响当天的实例。自依赖情况下,如果前1天有节点产生,则会相应进行依赖。

    总结:任何跨周期自依赖的调度是否成立,都需要以前1天该节点是否可以正常调度运行作为依据。

  • 上游天节点实例已经产生,下游小时节点更新为实时转实例的天节点
    • 变更前任务情况:上下游均为(T+1)的小时节点。
      变更前
    • 更新操作:将依赖上游天节点的小时节点变更为实时转出实例的天节点。
    • 变更后实例生成与节点依赖情况:假设在上图虚线所示时间点提交发布,则该实例会删除原有该时间点10分钟后此节点的实例,并且产生1个新的天节点实例。该节点下游的小时节点会全部依赖到新产生的天节点,如果是跨周期自依赖的节点变更,产生的天节点实例会依赖上T+1次实例生成的实例。
      变更后
    • 变更后当天实例情况:发布前的实例为小时节点,发布后为天节点。

    总结:变更节点的原有上下游依赖关系不变,当天的实例情况会受到影响。