[发明专利]一种数据仓库的自适应动态调度方法及系统有效
| 申请号: | 201810285072.3 | 申请日: | 2018-04-02 |
| 公开(公告)号: | CN108509603B | 公开(公告)日: | 2019-01-29 |
| 发明(设计)人: | 房鹏展;陈静 | 申请(专利权)人: | 焦点科技股份有限公司 |
| 主分类号: | G06F16/28 | 分类号: | G06F16/28;G06F16/25 |
| 代理公司: | 南京瑞弘专利商标事务所(普通合伙) 32249 | 代理人: | 陈建和 |
| 地址: | 210003 江苏省南京市高新*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 可执行 优先度 动态调度 数据仓库 自适应 调度 数据表信息 任务完成 循环步骤 依赖关系 优先执行 状态日志 初始化 衡量 更新 成功 | ||
一种数据仓库的自适应动态调度方法及系统,包括如下步骤:步骤一:定义ETL任务优先函数F(E),计算每个ETL任务对应的F(E),F(E)衡量ETL任务的调度优先度,优先度大的ETL任务则需要优先执行。步骤二:定义ETL任务可执行标记R(E),根据ETL中表依赖关系及表状态日志初始化R(E)。ETL任务可执行需其依赖的所有表都已成功执行,否则需继续等待。步骤三:针对R(E)中可执行的ETL,选择F(E)最大的ETL任务并启动任务。步骤四:任务完成后,更新相关元数据表,计算待执行ETL任务对应的R(E),并循环步骤三、步骤四,直到所有的任务都执行完毕。本发明先根据元数据表信息计算每个ETL任务的调度优先度,大大降低了ETL任务的总调度时间。
技术领域
本发明涉及数据库技术领域,特别是涉及一种数据仓库的自适应动态调度方法及系统。
背景技术
在企业大数据分析中,随着业务的不断开展,数据分析背后所依赖的表和ETL任务也逐渐增多。当ETL任务达到一定数量时,数据仓库的调度任务就显得极其重要。
传统的数据仓库调度往往是按指定顺序进行调度,如按照ODS(操作数据存储)、DW(数据仓库)、DM(数据集市)的顺序,或者按照主题进行分包调度。此时,任务和任务之间往往不能无缝衔接,一个时间过长的任务可能会让许多依赖他的任务一直处于等待状态,而导致服务器资源不能充分利用,引起总调度时间过长。这时数据仓库管理员需要不断的调整,而有的调整可能又会带来新的问题,调度往往很难达到最优状态。
因此,需要一种可以高效智能的完成调度任务,缩短ETL任务总调度时间的数据仓库调度方法或系统。
发明内容
本发明所要解决的技术问题是克服现有技术的不足,提供一种数据仓库的自适应动态调度方法及系统。
为解决上述技术问题,本发明提供一种数据仓库的自适应动态调度方法,其特征在于,包括如下步骤:
步骤一:定义ETL任务优先函数F(E),计算每个ETL任务对应的F(E),用F(E)衡量ETL任务的调度优先度,调度优先度高的ETL任务则需要优先执行。
步骤二:定义ETL任务可执行标记R(E),根据ETL中表依赖关系及表状态日志初始化R(E)。ETL任务可执行需其依赖的所有表都已成功执行,否则需继续等待。
步骤三:针对R(E)中可执行的ETL任务,选择F(E)最大的ETL任务并启动任务。
步骤四:任务完成后,更新相关元数据表,计算待执行ETL任务对应的R(E),并循环步骤三、步骤四,直到所有的任务都执行完毕。
所述步骤一中,包括如下表字段:
其中表权重,根据项目的级别来确定,项目级别越高,权重越高。下面是对于第i个ETL任务,如何计算优先函数F(Ei):
8)对于第i个ETL任务Ei来说,根据表和ETL对应关系,得到Ei处理的是Ti表;
9)根据表依赖关系,得到k1个表Tik1,是依赖Ti表的,也就是说,这k1个表对应的ETL需要等Ti表更新完才能执行,从表权重中得到Tik1权重分别为Wik1,权重相加和为Wi1,这个是第一层依赖(直接依赖)的表权重之和;
10)对于这Tik1个表,可以得到k2个表Tik2是依赖Tik1,也就是间接依赖Ti表,这里称为第二层依赖,Tik2表权重之和为Wi2;
11)按照第3步,依次循环下去,得到最后一层(第s层)依赖表的权重和Wis;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于焦点科技股份有限公司,未经焦点科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810285072.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种污水智能监测系统
- 下一篇:一种多个标签页之间共享数据duke组的方法





