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

实时转实例规则

  • 组合节点不支持实时转实例功能。
  • 全量转实例期间(23:30~24:00点期间)不能进行实时转实例,可以提交发布,但不会转出实例。
  • 已有的实例从T+1次日生成变更为发布后即时生成,会影响当天实例的产生情况。已运行的实例会保留,发布时间未运行的实例会被删除并替换为实时转出的实例。
  • 上游T+1形式生成实例,下游实时转实例节点会变成孤立节点,任务不会调度。
  • 上下游均为实时转实例节点,任务定时时间在发布时间点10分钟后的实例会正常转出。任务定时时间在发布时间点10分钟前,会生成已经完成的实例,节点实例属性为实时生成的过期实例,下游正常调度。
示例场景:假设任务调度时间设置18点执行,修改作业调度时间为17点(立即生成实例)。如果在16:50前发布任务,只会生成1个实例。如果在16:50后发布任务,会生成1个已完成的实例,节点实例属性为实时生成的过期实例查看

实例生成方式

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

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

  • 发布后即时生成
    实时转实例:发布代码10分钟后生成实例。
    说明 定时时间在发布时间点10分钟后的任务才会正常运行。

创建实时转实例的节点

  1. 新建业务流程。
    1. 登录DataWorks控制台,单击相应工作空间后的进入数据开发
    2. 鼠标悬停至新建,单击业务流程
    3. 新建业务流程对话框中,输入业务名称描述
    4. 单击新建
  2. 打开新建的业务流程,右键单击MaxCompute,选择新建 > ODPS SQL
  3. 新建节点对话框中,输入节点名称,并选择目标文件夹,单击提交
  4. 在代码编辑页面编辑代码后,单击右侧的调度配置,选择生成实例方式发布后即时生成

使用场景

实时转实例使用场景通常为:上游T+1形式生成实例,下游实时转实例,下图为节点间的依赖关系。实时转实例
实际应用时通常出现以下情况:
  • 上下游均为当天新增节点。
    • 下游天节点:下游天节点实时转出来的实例只有该节点的实例,并且没有上游节点的依赖。跨周期自依赖不影响当天的实例,跨周期自定义依赖可依赖到已有的实例上。
    • 下游小时或分钟节点:如果是跨周期自依赖,除第1个实例没有上游节点外,其它的实例都有上游节点。
    • 下游周或月节点:只会存在该节点对应的实例,没有上游节点。
      说明 由于上游天节点第2天才会产生实例,下游的实时转出的实例节点会变成孤立节点。孤立节点没有上游,所以不会被调度运行。

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

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

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

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

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

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