[发明专利]面向海量分布式数据的非等值连接方法有效
| 申请号: | 201610312145.4 | 申请日: | 2016-05-12 |
| 公开(公告)号: | CN106021386B | 公开(公告)日: | 2019-02-05 |
| 发明(设计)人: | 刘文洁;李战怀;潘巍;张晓 | 申请(专利权)人: | 西北工业大学 |
| 主分类号: | G06F16/28 | 分类号: | G06F16/28 |
| 代理公司: | 西北工业大学专利中心 61204 | 代理人: | 王鲜凯 |
| 地址: | 710072 *** | 国省代码: | 陕西;61 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | 本发明公开了一种面向海量分布式数据的非等值连接方法,用于解决现有非等值连接方法效率低的技术问题。技术方案是在进行两表的非等值连接之前,首先根据连接条件选择合适的过滤规则,然后计算两表连接字段的最大值和最小值,根据最大值和最小值对两表中的所有记录进行扫描,将与输出结果无关的记录进行过滤,仅仅对过滤后的数据进行笛卡尔积的计算,最后根据连接条件对笛卡尔积的结果进行二次对比,筛选出符合连接条件的记录。该方法能够在做笛卡尔积之前,过滤掉大量的不符合连接条件的记录,可以有效地降低Reducer的工作量,提高了非等值连接的查询效率。 | ||
| 搜索关键词: | 面向 海量 分布式 数据 等值 连接 方法 | ||
【主权项】:
1.一种面向海量分布式数据的非等值连接方法,其特征在于包括以下步骤:步骤一、假设有两个关系表R(A,B)和S(B,C),函数θ属于{>,<,≥,≤},查询QB定义为R(A,B)∞R.BθS.B S(B,C),则QB称为关系表R和S之间通过字段B连接的一个非等值连接查询;符号说明:R(A,B)代表关系表R,A,B是R的属性,S(B,C)代表关系表S,B,C是S的属性;θ是R和S的连接函数;QB代表一个涉及R和S的查询,“∞”代表连接符号;由于在分布式环境下,数据的计算格式为key‑value形式,因此,字段B看作是R和S的key,字段A看作是关系表R中除了B以外的所有字段的组合,字段C看作是关系表S中除了B以外的所有字段的组合;从而将多字段表的连接转换为分布式计算环境中的key‑value形式;步骤二、假设R(A,B)和S(B,C)是两个待连接的表,连接属性是B,连接函数是θ,且θ∈{>,<,≤,≥},R.B记录中的最大值和最小值分别是R.Bmax和R.Bmin,S.B记录中的最大值和最小值分别是S.Bmax和S.Bmin,则得到如下定理:定理1:对于指定的两张表R(A,B)和S(B,C),连接属性为B,θ=“>”,那么
如果x>S.Bmin,则保留x,否则从关系表R的属性B中过滤掉该x;
如果y<R.Bmax,则保留y否则从关系表S的属性B中过滤掉该y;符号说明:S.Bmin代表关系表S中的属性列B的所有记录中的最小值,R.Bmax代表关系表R中的属性列B的所有记录中的最大值;x代表关系表R中的属性列B的任意值,y代表关系表S中的属性列B的任意值;定理2:对于指定的两张表R(A,B)和S(B,C),连接属性为B,θ=“<”,那么
如果x<S.Bmax,则保留x,否则从关系表R的属性B中过滤掉该x;
如果y>R.Bmin,则保留y否则从关系表S的属性B中过滤掉该y;符号说明:S.Bmax代表关系表S中的属性列B的所有记录中的最大值,R.Bmin代表关系表R中的属性列B的所有记录中的最小值;定理3:对于指定的两张表R(A,B)和S(B,C),连接属性为B,θ=“≥”,那么
如果x≥S.Bmin,则保留x,否则从关系表R的属性B中过滤掉该x;
如果y≤R.Bmax,则保留y否则从关系表S的属性B中过滤掉该y;定理4:对于指定的两张表R(A,B)和S(B,C),连接属性为B,θ=“≤”,那么
如果x≤S.Bmax,则保留x,否则从关系表R的属性B中过滤掉该x;
如果y≥R.Bmin,则保留y否则从关系表S的属性B中过滤掉该y;步骤三、非等值连接算法:算法输入:待连接的两个数据表R(A,B)和S(B,C),连接属性B,连接函数θ;算法输出:符合非等值连接条件的结果集T(R.A,R.B,S.B,S.C),对于T中的任意记录,都满足条件R.BθS.B;算法流程:Step1:从数据表R(A,B)中取出连接列R.B,对R.B排序,遍历R.B记录,找到R.B记录的最大值R.Bmax和最小值R.Bmin;从数据表S(B,C)中取出连接列S.B,对S.B排序,遍历S.B记录,找到S.B记录的最大值S.Bmax和最小值S.Bmin;Step2:判断连接条件θ,如果θ=“>”,根据定理1的过滤规则对R(A,B)和S(B,C)进行过滤,得到过滤后的数据集R'(A,B)和S'(B,C);符号说明:R'(A,B)代表关系表R(A,B)过滤后的一个子集,S'(B,C)代表关系表S(B,C)过滤后的一个子集;如果θ=“<”,根据定理2的过滤规则对R(A,B)和S(B,C)进行过滤,得到过滤后的数据集R'(A,B)和S'(B,C);如果θ=“≥”,根据定理3的过滤规则对R(A,B)和S(B,C)进行过滤,得到过滤后的数据集R'(A,B)和S'(B,C);如果θ=“≤”,根据定理4的过滤规则对R(A,B)和S(B,C)进行过滤,得到过滤后的数据集R'(A,B)和S'(B,C);Step3:将过滤后的R'(A,B)和S'(B,C)进行分布式计算,得到笛卡尔积结果集T'(R.A,R.B,S.B,S.C);符号说明:T'(R.A,R.B,S.B,S.C)代表对R'(A,B)和S'(B,C)进行笛卡尔积计算后的结果集,这里进行的全属性列的笛卡尔积,因此R和S的所有属性列都包含在内;Step4:根据连接条件θ,对T'(R.A,R.B,S.B,S.C)中的R.B和S.B进行二次筛选,删除不符合条件的记录,得到最终连接结果集T(R.A,R.B,S.B,S.C);符号说明:T(R.A,R.B,S.B,S.C)表示对笛卡尔积T'(R.A,R.B,S.B,S.C)进行二次筛选后的结果集,因为过滤规则不能保证筛选掉所有不符合连接条件的记录,为了保证结果的正确性,这里进行二次筛选;Step5:输出非等值结果集T(R.A,R.B,S.B,S.C)。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西北工业大学,未经西北工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610312145.4/,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





