[发明专利]一种分布式数据仓库中实现计算均衡的方法及装置有效
| 申请号: | 201010566142.6 | 申请日: | 2010-11-23 |
| 公开(公告)号: | CN102479217A | 公开(公告)日: | 2012-05-30 |
| 发明(设计)人: | 李均;王有为;郭玮;洪坤乾;赵伟 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F9/50 |
| 代理公司: | 北京派特恩知识产权代理事务所(普通合伙) 11270 | 代理人: | 程立民;张颖玲 |
| 地址: | 518044 广东省深圳*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 分布式 数据仓库 实现 计算 均衡 方法 装置 | ||
技术领域
本发明涉及分布式数据仓库技术,尤其涉及一种分布式数据仓库中实现计算均衡的方法及装置。
背景技术
数据仓库之父Bill Inmon对数据仓库的定义为:数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。
随着网络的发展,互联网信息呈现爆炸式的增长,互联网用户也越来越庞大,一个基于互联网应用数据仓库的数据量通常都达到万亿字节(Trillion Byte,TB)级别。为了快速处理这些海量数据,人们提出了分布式数据仓库,分布式数据仓库采用了并行计算技术,可用于进行大规模数据的挖掘和统计,可将以前电信级别的数据仓库的运算速度提高很多倍。
基于Hadoop架构的分布式数据仓库采用基于谷歌文件系统(Google File System,GFS)和映射缩减(Map Reduce,MR)技术,GFS系统是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。MapReduce技术是一种编程模型,也是一个处理和生成超大数据集的算法模型,用于大规模数据集的并行运算,其包括映射(Map)函数和缩减(Reduce)函数处理过程,Map函数用来处理一个基于键值对(key value pair)的数据集合,输出中间的基于键值对的数据集合,Reduce函数用来合并所有的具有相同中间key值的中间value值。
在对分布式数据仓库进行优化时,针对计算均衡性的优化是一个主要目标,通常查询引擎利用统计信息来制定合理的查询计划,解决计算过程中的不均衡性问题。在采用Hadoop架构的分布式数据仓库中提供一种Hive数据仓库工具,该工具可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。
Hive现有方案提供了开启一阶段或者两阶段MR的机制,用户在提交的HiveQL使用注释的方式强制要求Hive对提交的HiveQL使用一阶段或者两阶段的MR查询计划。但只有非常明确知道需要处理的数据分布特征后才能决定是否开启该选项。对于高达数十亿条记录的表而言,在缺乏对表数据的全面了解的前提下,要做出正确的决策是及其困难的。如果Map阶段输出的大量Key被推向少数几个节点,可能导致超出这些节点的处理能力导致任务运行失败。Map/Reduce计算过程中由于数据自身的不均衡分布也会导致集群计算资源不均衡,从而导致无法充分发挥集群计算的整体性能。
发明内容
有鉴于此,本发明的主要目的在于提供一种分布式数据仓库中实现计算均衡的方法及装置,用于解决分布式数据仓库在执行Map/Reduce计算过程中由于数据自身的不均衡分布导致在执行结构化查询语句(SQL)时,集群计算资源使用不均衡的技术问题。
为达到上述目的,本发明的技术方案是这样实现的:
一种分布式数据仓库中实现计算均衡的方法,该方法包括:
在查询语句入口插入计算均衡性入口检测代码,通过该计算均衡性入口检测代码获得执行聚集操作的字段值分布情况;
若执行聚集操作的字段值分布不均衡,则对查询引擎翻译的映射缩减(MR)任务进行优化,增加一个或多个MR任务,对数据进行打散操作。
进一步地,获得执行聚集操作的字段值分布情况的方法包括静态方式和动态方式;
静态方式下,计算均衡性入口检测代码直接从数据字典表或表元数据表中读取所述执行聚集操作的字段的字段值分布情况;
动态方式下,计算均衡性入口检测代码在MR执行过程中对字段值分布规律进行统计,从而获得相应字段值的分布情况。
进一步地,采用动态方式获得执行聚集操作的字段值分布情况的方法具体为:
使用第一算子对输入数据进行全局信息统计,并从初始输入的数据中拆解出需要处理的字段;
使用第二算子对第一算子处理后的数据进行窗口采样;
将窗口采样获得的数据推送给多个映射器(Mapper),在每个Mapper上使用第三算子对输入的字段统计出常用值,并计算出直方图;
在缩减(Reduce)处理阶段对Mapper输出的部分统计值进行合并,最终完成所述执行聚集操作的字段的全局直方图的统计。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010566142.6/2.html,转载请声明来源钻瓜专利网。





