开发者社区> Dataphin小助手> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Dataphin小时调度依赖关系及运行说明

简介: 介绍天任务依赖小时任务、小时任务依赖小时任务的依赖关系及运行条件
+关注继续查看

一、实例开始运行条件说明

  • 依赖的上游实例全部运行成功 -- 满足此条件,即变成“等待中”状态(可能在等待到达定时运行时间或者等待分配调度资源,后续版本拆分了“等待调度时间”和“等待调度资源”)
  • 到达当前实例的定时运行时间且已分配调度资源 -- 满足此条件,即变成“运行中”状态(但是如果因为没有足够的运行资源导致的运行无法进行,dataphin侧无法感知,需要通过在计算引擎侧查询)

二、调度依赖关系说明

case1:天任务依赖小时任务

【场景】:

  • 上游小时任务非自依赖(即小时任务本身未配置依赖上周期),彼此独立:

     - 每个小时跑全量数据:一般是维表场景,此时只要依赖最近一个调度周期的实例即可;但是维表一般变化较缓慢,较少设置为小时粒度的全量更新(当前不支持该种调度依赖策略)

     - 每个小时跑增量数据,但是周期间无依赖关系:一般是日志表,此时需要依赖上游全部实例(当前实现逻辑)

  • 上游小时任务自依赖(即小时任务本身配置了依赖上周期),即下一个小时依赖上一个小时的数据:

     - 每个小时跑全量数据:比如全量数据写入drds,为了防止重复写入,会设置依赖上周期

- 每个小时跑增量数据,但是周期间有依赖关系:比如merge,每个小时都要将前一个小时的数据merge到结果表;此时仅依赖最近一个调度周期的实例,具体需要依赖哪个周期,通过起调时间控制

【实现逻辑】:

1. 下游天任务和上游小时任务是同周期依赖:

  • 上游小时任务如果如果是自依赖(即小时任务本身配置了依赖上周期), 则会根据定时运行时间挂最近一个周期的上游小时任务
    • 依赖上游定时运行时间>=自己定时运行时间最近一个实例
    • 例:上游小时任务固定整点调度,下游天实例定时每日5点0分起调,则天实例会依赖上游5点0分的小时实例;如果下游天实例定时每日5点01分起调,则天实例会依赖上游6点0分的小时实例)

image

  • 上游小时任务如果不是自依赖(即小时任务本身没有配置依赖上周期), 则会依赖上游所有的小时实例

image

2. 下游天任务和上游小时任务是跨周期依赖(即下游天任务依赖上游小时任务的上周期):

  • 上游小时任务如果是自依赖, 则会依赖上游前一天最后一个小时实例

image

  • 上游小时任务如果不是自依赖,  则会依赖上游前一天所有的小时实例

image


case2:小时任务依赖小时任务

  • 依赖上游定时运行时间>=自己定时运行时间最近一个实例(考虑到每个小时实例跑的是前面小时的数据,从数据依赖合理性考虑)
  • 例1
    • 上游小时任务和下游小时任务同周期依赖,且都是每个整点起调,则下游1点的实例依赖上游1点的实例,下游2点的实例依赖上游2点的实例,依次类推

image

    • 如果需要实现下游2点的实例依赖上游1点的实例,可以通过配置下游任务依赖上游任务的上周期实现(默认子任务2点的实例依赖父任务2点的实例,设置为依赖上周期之后,即依赖父任务2点实例的上周期,也就是1点实例,以实现子任务2点的实例依赖父任务1点的实例的场景)

image

  • 例2:同周期依赖,上游小时任务是每个整点起调,下游小时任务是每小时的05分开始起调,则下游0点05分的实例依赖上游1点的实例,下游1点点15分的实例依赖上游2点的实例,依次类推

image

  • 例3:不同批次调度,同周期依赖,上游小时任务是每隔4个小时整点起调,下游小时任务是每个小时的15分开始起调,则下游0点15分、1点15分、2点15分、3点15分的实例,都依赖上游4点的实例,依次类推

image

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
基于Qt的网络音乐播放器(四)酷狗API接口获取歌曲的搜索列表和歌曲的播放
基于Qt的网络音乐播放器(四)酷狗API接口获取歌曲的搜索列表和歌曲的播放
365 0
在Dataphin中怎么配置Hadoop数据源的kerberos信息
目前Dataphin数据集成或数据服务支持Hadoop生态四种数据源类型:Hive,HDFS,Hbase,Impala。Kerberos认证是Hadoop生态使用较多一种安全认证协议,本文将说明如何在Dataphin中配置上述数据源的kerberos信息。
134 0
下列软件包有未满足的依赖关系,依赖: libxxx(= 2.2.10) 但是 2.3.0正要被安装
下列软件包有未满足的依赖关系,依赖: libxxx(= 2.2.10) 但是 2.3.0正要被安装
527 0
阿里DNS:用LibFuzzer照亮DNS代码的死角
【阿里DNS团队】在很久之前就已经认识到恶意报文防御在整个DNS系统安全稳定保障工作中的重要性,也花了非常大的精力在这个方面做了很多的研究和实践,今天我们就简要介绍一下我们在DNS代码白盒Fuzzing测试方面的一些工作,以供跟大家交流和学习。
2667 0
通过yum下载rpm包及其依赖包
yum是基于Red Hat系Linux系统(如CentOS、Fedora、RHEl等)上的默认包管理器,使用很方便。
1198 0
依赖包
Clean Blog 是 Start Bootstrap 提供的一个免费博客模板, bower install clean-blog --save Pickadate.js 是一个轻量级的 jQuery 日期时间选择插件,日期时间插件很多,选择使用  Pickadate.js 的原因是它在小型设备上也有很好的体验。
858 0
win10 Hyper-V 虚拟机 装 boot2docker
1.启动 Hyper-V 管理器 风来了.狐狸 如果开始菜单找不到此按钮或链接,请http://blog.csdn.net/fenglailea/article/details/45488187 此文中打开 如何安装(教程):http://jingyan.baidu.com/article/380abd0a7671071d90192cad.html 2.设置虚拟交换机管理器 2.
2224 0
键盘事件keydown、keypress、keyup随笔整理总结(摘抄)
原文1:http://www.cnblogs.com/silence516/archive/2013/01/25/2876611.html 原文2:http://www.cnblogs.com/leolai/archive/2012/08/01/2618386.
1574 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Dataphin产品白皮书
立即下载
2015网络可信身份发展年报
立即下载
Javascript中的函数
立即下载