The embodiment of the invention discloses a distributed connection method and system. The method includes: the target input table of each input table in the set of columns are sorted according to their respective reference; wherein, the input table reference column is the input table by the target connection predicate use column; on the basic unit of behavior, sorted each input table into blocks. Get the target input table corresponding to the set of all blocks; according to the numerical information of each block reference column, select effective blocks from the entire block in the block combination; effective combination refers to the numerical information contained in each block reference column blocks meet the target will join predicates; the effective combination of the selected block scheduling for each node in the distributed system, the connection procedure according to the target predicate connected to their corresponding effective blocks so that the nodes. The scheme of the invention can reduce the transmission cost of the network.
【技术实现步骤摘要】
一种分布式连接方法及系统
本专利技术涉及数据库
,尤其涉及一种分布式连接方法及系统。
技术介绍
连接(Join)操作是数据库系统中的一个基本操作,它将数据库中两个或多个表组合成一个结果表。连接操作的实现方法(即连接方法)直接影响了数据库系统的整体性能。目前,连接方法有多种分类方式,如下所述:(1)连接方法按照连接谓词可以分为通用连接方法和非通用连接方法,其中:通用连接方法:适用于各种Theta连接谓词(<、≤、=、≠、>、≥),常用的通用连接方法有嵌套循环连接(NestedLoopJoin)方法。非通用连接方法:只适用于等值(=)连接谓词,常用的非通用连接方法有排序合并连接(Sort-MergeJoin)方法和哈希连接(HashJoin)方法。(2)连接方法按照输入表的数量可以分为2路连接方法和多路连接方法,其中:2路连接方法:只支持两个表的连接,通常应用在在集中式运行环境中。多路连接方法:支持任意个数的表的连接,通常应用在分布式运行环境中。(3)连接方法按照运行环境可以分为分布式连接方法和集中式连接方法,其中:分布式连接方法:在分布式运行环境中使用的连接方法。集中式连接方法:在集中式运行环境中使用的连接方法。在上述介绍的多种连接方法中,通用的分布式多路连接方法的应用最为广泛,能够适应当今需要大数据处理的分布式计算需求。如图1所示,现有的通用的分布式多路连接方法可主要包括以下步骤:分块阶段:把每一个输入表Ri分成Si个大小近似的块,并且,所有输入表的块数目满足约束条件:S1*S2*...Sn=M,其中,M是分布式系统中的节点数量。一个块组合表示为:( ...
【技术保护点】
一种分布式连接方法,其特征在于,包括:将目标输入表集合中的每一个输入表按照各自的参考列进行排序;其中,所述输入表的参考列是所述输入表中被目标连接谓词使用的列;以行为基本单位,对排序后的每一个输入表进行分块,得到所述目标输入表集合对应的全部块组合;其中,一个块组合表示为:(K
【技术特征摘要】
1.一种分布式连接方法,其特征在于,包括:将目标输入表集合中的每一个输入表按照各自的参考列进行排序;其中,所述输入表的参考列是所述输入表中被目标连接谓词使用的列;以行为基本单位,对排序后的每一个输入表进行分块,得到所述目标输入表集合对应的全部块组合;其中,一个块组合表示为:(K1,K2,…,Kn),Km代表所述目标输入表集合中的输入表Rm中的任意一个块,m是正整数,m小于等于n;根据各个块的参考列的数值信息,从所述全部块组合中筛选出有效块组合;所述有效块组合是指各个块的参考列的数值信息满足所述目标连接谓词的块组合;将筛选出的有效块组合调度给分布式系统中的各个节点,使得所述各个节点根据所述目标连接谓词对各自对应的有效块组合执行连接操作。2.如权利要求1所述的方法,其特征在于,所述将目标输入表集合中的每一个输入表按照各自的参考列进行排序,包括:对于每一个输入表,将所述输入表的行按照所述输入表的参考列的数值大小进行升序或降序排序。3.如权利要求1所述的方法,其特征在于,所述对排序后的每一个输入表进行分块,包括:根据预先设定的块大小B对排序后的每一个输入表进行分块,其中,|R|是输入表R的大小,是取上限整数符号。4.如权利要求1所述的方法,其特征在于,所述将筛选出的有效块组合调度给分布式系统中的各个节点,包括:确定出所述各个节点的负载;一个节点的负载是指所述节点需要运行的块组合个数;从所述有效块组合中选取出所述各个节点各自对应的块组合集合;一个节点对应的块组合集合中的块组合个数与所述节点的负载一致。5.如权利要求4所述的方法,其特征在于,所述分布式系统中的节点个数是M,筛选出的所述有效块组合的个数是N;所述确定出所述各个节点的负载,包括:在M个节点中,将N%M个节点的负载确定为将(M-N%M)个节点的负载确定为是取下限整数符号。6.如权利要求4所述的方法,其特征在于,所述从所述有效块组合中选取出所述各个节点各自对应的块组合集合,包括:对于所述分布式系统中的任意一个节点A,通过下述步骤得到节点A对应的块组合集合:步骤一:确定当前剩余的有效块组合,从当前剩余的有效块组合中选取出一个有效块组合作为节点A对应的初始的块组合集合;步骤二:确定当前剩余的有效块组合,从当前剩余的有效块组合中,将与节点A对应的块组合集合的相似度最高的有效块组合添加到节点A对应的块组合集合中;重复执行所述步骤二直到节点A对应的块组合集合中的块组合个数与节点A的负载一致;其中,所述当前剩余的有效块组合是指所述有效块组合中当前还未被调度的块组合。7.如权利要求1-6中任一项所述的方法,其特征在于,所述目标输入表集合中,每一个输入表的参考列是所述输入表中被所述目标连接谓词使用次数最...
【专利技术属性】
技术研发人员:王国平,朱俊华,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。