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
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。