开发者学堂课程【DataWorks 一站式大数据开发治理平台精品课程:2.DataWorks 调度依赖之跨周期依赖】与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/81/detail/1239
2.DataWorks 调度依赖之跨周期依赖(二)
四、典型场景
1、[典型场景一] “一层子节点"应用场景:对本节点的结果表进行清洗,查看是否正常产出最终结果
2、[典型场景二] Q:天任务依赖小时任务,不想等24个小时任务实例跑完才跑天任务,天任务希望尽量按定时时间12:00跑 A:上游小时任务配置"依赖上-周期"选"本节点"; 下游天任务定时调度时间选12:00,天任务不需要设置跨周期 依赖。这样天任务就会在12点开始跑,且依赖最新跑完的那个小时任务实例的数据(下有图解)
3、[典型场景三] Q:天任务依赖小时任务昨天的数据 A:下游天任务配置"依赖上一周期“选"自定义",填上游小时任务的id
4、[典型场景四] Q:小时任务依赖天任务,上游天任务跑完,下游小时任务多个周期定时时间已到,导致小时任务多周期并发调起 怎么办 A:下游小时任务配置"依赖上- -周期"选"本节点" (下有图解)
5、[典型场景五] Q:本节点依赖自己的上一周期产出的数据,不知上一周期何时产出 A:本节点配置"依赖上一周期"选"本节点" 五、实操 1、实操配置场景三,进入datastudio,新建一个业务流程,需要一个start节点,也就是虚拟节点,新建一个小时任务,新建一个天任务。场景的需求是天任务依赖小时任务昨天的数据,配置方法就是下游天任务配置依赖上一周期,选择自定义填小时任务,填写小时任务的ID。即可能开始配置虚拟节点,调度配置两处,一个是上游属性,本周期依赖是选择使用工作空间跟节点作为上游,保存提交。
五、实操
1、实操配置场景三,进入 datastudio,新建一个业务流程,需要一个 start 节点,也就是虚拟节点,新建一个小时任务,新建一个天任务。场景的需求是天任务依赖小时任务昨天的数据,配置方法就是下游天任务配置依赖上一周期,选择自定义填小时任务,填写小时任务的ID。即可能开始配置虚拟节点,调度配置两处,一个是上游属性,本周期依赖是选择使用工作空间跟节点作为上游,保存提交。
2、配置小时任务,选择重跑属性,调度周期它是小时的,所以选择小时任务,开始时间不做改动,0点开始23:59结束,每小时一个,一共24个实例,要挂在虚拟节点下面,所以到虚拟节点复制它的本节点输出名,只有被提交过的任务,才可以搜索到添加、保存、提交。
3、配置天任务,一样的重跑属性,调度周期不做改动,它是天任务,注意实例生成方式,三个都是t+1次生成的,注意配置跨周期依赖,所以选择依赖上一周期,选择自定义,需要获取小时任务的节点ID,小时任务的节点ID同样也是需要提交以后才可以获取到的。这时跨周期配置好了,发现本周期这里一个上游都没有,这样是不允许被提交的。建议是配置一个虚拟节点,挂在虚像刚配置虚拟节点,配置一个虚拟节点,挂载在虚拟节点上面,使用工作空间跟节点,配置完成保存提交。 4、进入任务发布界面,这三个节点就是刚刚提交的节点,跨周期依赖所填的节点ID必须保证线上存在,那现在只是提交,所以线上都还不存在,如果这时提交天任务就会报错,那需要先把虚拟节点和小时任务先发布,再发布天任务。
5、先发布两个。这时小时任务线上已经存在,再发布天任务,不会报错,复制天任务的节点ID,进入运维中心,查看周期任务的关系图。这就是刚发布的三个节点,天任务依赖小时任务,是跨周期依赖且挂载在工作空间跟节点下面。
6、由于是t+1次生成的,所以次日生成,现在是看不到实例的效果图,只能找一个已经存在的来看效果。获取它的节点ID,复制到运维中心,周期实例,这是最后会产生的一个效果图,是24个小时任务,昨天的实例,加一个虚拟节点,今天的实例,都是虚线,唯独这虚节点是实线,下游是天任务,符合预期,实操结束回到PPT界面。
六、Tips
1、tip1: 跨周期依赖中容易遇到提交报错无上游的情况,可以新建一个虚拟节点作为上游。虚拟节点的作用就是如果全部都配置在工作空间跟节点下面,不便于日后管理节点,虚拟节点就是为了方便管理,可以帮助更好的管理节点。
2、tip2 : 跨周期依赖和本周期依赖不重复配置依赖。依赖一个自定义节点,假如重复配置,那上游小时任务就有48个实例了,天任务不运行,这就是重复配置依赖了,所以要注意。
3、tip3: 上游为分支节点,分支配置了跨周期依赖建议勾选"上游空跑属性不进行跨周期传导”。比如上游分支节点,第一天运行时命命中了左侧分支,那右侧就会空跑。假如第二天命中了右侧,它也是不会运行的,它还是会空跑,因为空跑属性会向下传导,这时需要勾选空跑属性不向下传,不进行跨周期传导,这样就可以避免那个问题。


