[发明专利]一种消除大数据规范关系连接冗余的优化方法有效
申请号: | 201710638243.1 | 申请日: | 2017-07-31 |
公开(公告)号: | CN107506394B | 公开(公告)日: | 2020-05-29 |
发明(设计)人: | 刘黎志 | 申请(专利权)人: | 武汉工程大学 |
主分类号: | G06F16/2453 | 分类号: | G06F16/2453;G06F16/22;G06F16/2458;G06F16/28 |
代理公司: | 宁波市鄞州甬致专利代理事务所(普通合伙) 33228 | 代理人: | 李迎春 |
地址: | 430205 湖北省武*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明通过对二次排序算法进行优化,重新定义Map阶段的分区过程、Shuffle阶段的排序及分组过程,使得Map阶段的输出为包含一方关系属性值和多方关系排序值的组合键及包含多方关系属性值的集合,Reduce阶段将组合键进行分解,提取一方关系的主码作为HBase表的行键,并将组合键中一方关系的各个属性值,多方关系属性值集合及排序后的连接结果分别写入HBase表中对应的列,从而既实现了连接的语义,又消除了冗余,由于以HBase表存储连接结果,从而可以利用HBase提供的各类方法进行数据检索,提高了对连接结果的查询效率。 | ||
搜索关键词: | 一种 消除 数据 规范 关系 连接 冗余 优化 方法 | ||
【主权项】:
一种消除大数据规范关系连接冗余的优化方法,其特征在于,包括以下步骤:S1,自定义组合键的类型为{字符类型;数值类型;};设置{firstKey;secondKey;}为一组合键;设置M为一方关系,S为多方关系,所述的firstKey存储一方关系M的MKEY及各个MATT组成的字符串,所述的MKEY为firstKey中的第一个子字符串,所述的MATT为一方关系M的属性值;所述的secondKey存储多方关系S的SVALUE值,所述的SVALUE为多方关系S中需要排序的数值类型值;将一方关系M的格式存储为M(MKEY,MATT1,MATT2,...,MATTn),多方关系S的格式存储为S(SKEY,MKEY,SATT,SVALUE);其中MKEY为一方关系M的主键同时也是S的外键;将(mkey[m],matt1[m],matt 2[m],...,matt n[m])表示为一方关系M的一个元组,m∈[1,n],n为正整数,m表示一方关系M的一个元组,SKEY为多方关系S的主键,SATT为多方关系S的属性值,SATT的取值范围为{SATT1,SATT2,...,SATTn};SVALUE的取值范围为{SVALUE1,SVALUE2,...,SVALUEn},n为正整数,所述的SVALUE1,SVALUE2,...,SVALUEn为按序号1至n从小到大依次排序的数值类型值;S2,实现Map端的连接,首先将一方关系M的存储文件M.dat复制到执行Map任务的各个节点的内存中,M.dat文件的存储格式在Map节点内存中以HashMap结构保存;其次扫描多方关系S中的每一条记录,同时在HashMap中查找是否有相同的MKEY的记录,如果有,则进行连接后输出,输出结果的格式为<{组合键}、{属性值}>,该组合键存储了一方关系M的主键和M的所有属性值及与其相对应的多方关系S的SVALUE值,该属性值集合存储了多方关系S的属性值和SVALUE值;S3,重新定义分区函数、排序依据及分组函数;首先,定义分区函数,取MKEY的哈希值与最大的整数按位求与后,得到一个整数结果,将该整数与集群中Map结点的个数取余数,该余数的值就是MKEY对应的分区;其次,定义排序依据,在Map和Reduce阶段对处于同一个分区的连接结果排序时,首先按firstKey中的MKEY进行主键排序,主键排序以MKEY的字符串比较结果决定其大小,再按secondKey中的SVALUE值进行二次排序,SVALUE值比较以参与排序的两个svalue值的差值小于零、等于零、大于零来决定大小并进行依次排序;最后,定义分组函数,根据组合键中的firstKey的MKEY值,按字符串比较规则,相等的MKEY被分在同一个组,在Reduce阶段将具有相同组合键的连接结果分在同一组,形成<{组合键}、List{属性值}>;S4,将S3中Reduce阶段的连接结果写入HBase表中;首先对组合键进行分解,取出firstKey中的MKEY作为HBase表的行键;然后将firstKey中的其它属性值依次以M:MATT[m],m∈[1,n]列存储;将已经按SVALUE值排序好的集合List{属性值}以S:sattr[k]列存储为对应的svalue[k]值,k∈[1,n],n为正整数,将集合List{属性值}中的每一个属性值,以sattr[k]+“/t”+svalue[k]的字符串形式追加到字符串变量seq,字符串变量seq用于存储排序后的连接结果;最后增加M:seq列,存储seq字符串变量值,保存连接结果。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉工程大学,未经武汉工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710638243.1/,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置