[发明专利]一种数据处理方法及系统有效
申请号: | 201110160630.1 | 申请日: | 2011-06-15 |
公开(公告)号: | CN102831120B | 公开(公告)日: | 2017-07-21 |
发明(设计)人: | 张书彬;赵彦荣;郭玮;李均;赵伟;洪坤乾;徐钊 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙)44285 | 代理人: | 王仲凯 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据处理 方法 系统 | ||
1.一种数据处理方法,其特征在于,包括如下步骤:
在基于映射/化简Map/Reduce框架完成对查询的处理和计算的数据处理中,将数据表定义为采用哈希Hash分区的方式,并在Hash分区中存储数据,其中所述在Hash分区中存储数据包括:Map端根据自身对应的Map任务从外表读取数据,并根据Hash分区键确定读取到的数据行对应的Reduce任务;Reduce端根据自身对应的Reduce任务,从Map端拉取归其处理的键值对,抽取键值对中的Hash分区键,并根据该Hash分区键计算数据的Hash值,根据计算得到的Hash值确定数据所归属的Hash分区,将该数据写入到对应的分区目录;
在确定所需执行的查询为连接查询或分组查询,且源数据表为Hash分区数据表、连接键或分组键为分区列时,将该查询修改为在Map端以Hash分区为单位的连接查询或分组查询后执行查询。
2.如权利要求1所述的方法,其特征在于,在Hash分区中存储数据,包括:
将数据按照Hash分区键映射到不同的Hash分区保存,Hash分区键为连接键或分组键。
3.如权利要求1所述的方法,其特征在于,在Hash分区中存储数据时,进一步包括:
在入库的Map/Reduce作业中将Hash分区键设置为Map/Reduce任务的排序键。
4.如权利要求1所述的方法,其特征在于,进一步包括:
将同一Hash分区的数据或保存到不同列存储文件的同一逻辑文件的数据存放在相同的节点。
5.如权利要求1所述的方法,其特征在于,进一步包括:
将数据节点分为实节点和虚节点,一个实节点映射为多个虚节点;
对每个数据节点计算出该节点的Hash值,并将其配置到一个Hash环上,该Hash环的长度等于系统统一配置的Hash分区数;
在主节点分配数据块副本的存放位置时,确定该数据块的Hash值;
根据数据块的Hash值沿Hash环将数据块映射到距离其最近的节点上,在数据块需要保持多个副本时,则顺环选取与副本数相同的节点并将数据副本保存到这些节点上。
6.如权利要求1至5任一所述的方法,其特征在于,进一步包括:
在连接和分组查询的生命期中,首先优先调度执行数据所在节点有空闲Map任务槽的Map任务;
如果列表中的每个Map任务数据所在的节点都没有空闲的Map任务槽,则将逐个判断待调度Map任务数据所在节点正在执行的Map任务的执行进度;
如果执行进度高于特定阀值且预期任务完成时间早于特定阀值,则该Map任务将等待直到数据副本所在的节点空闲再调度到该节点上执行,否则,在其他邻近的空闲节点上调度执行该Map任务。
7.一种数据处理系统,其特征在于,包括:
存储引擎,用于在基于Map/Reduce框架完成对查询的处理和计算的数据处理中,将数据表定义为采用哈希Hash分区的方式,并在Hash分区中存储数据,其中所述在Hash分区中存储数据包括:Map端根据自身对应的Map任务从外表读取数据,并根据Hash分区键确定读取到的数据行对应的Reduce任务;Reduce端根据自身对应的Reduce任务,从Map端拉取归其处理的键值对,抽取键值对中的Hash分区键,并根据该Hash分区键计算数据的Hash值,根据计算得到的Hash值确定数据所归属的Hash分区,将该数据写入到对应的分区目录;
查询引擎,用于在确定所需执行的查询为连接查询或分组查询,且源数据表为Hash分区数据表、连接键或分组键为分区列时,将该查询修改为在Map端以Hash分区为单位的连接查询或分组查询后执行查询。
8.如权利要求7所述的系统,其特征在于,查询引擎进一步用于在Hash分区中存储数据时,将数据按照Hash分区键映射到不同的Hash分区保存,Hash分区键为常用的连接键或分组键。
9.如权利要求7所述的系统,其特征在于,查询引擎进一步用于在Hash分区中存储数据时,在入库的Map/Reduce作业中将Hash分区键设置为Map/Reduce任务的排序键。
10.如权利要求7所述的系统,其特征在于,存储引擎进一步用于将同一Hash分区的数据或保存到不同列存储文件的同一逻辑文件的数据存放在相同的节点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110160630.1/1.html,转载请声明来源钻瓜专利网。