時間:2022-12-27 16:30:01 | 來源:信息時代
時間:2022-12-27 16:30:01 來源:信息時代
基于 CMD并行連接算法 : 基于多維數(shù)據(jù)分布方法CMD的一種并行連接算法。算法分為兩個階段。在第一階段,每個關(guān)系的連接無關(guān)區(qū)域?qū)⒈惶蕹?只需考慮相關(guān)區(qū)域。算法的第二階段進(jìn)行相關(guān)連接區(qū)域的連接處理。在連接處理的過程中,一個關(guān)系的連接區(qū)域僅需要和另一個關(guān)系的連接相關(guān)區(qū)域進(jìn)行連接操作,不需要與其他連接區(qū)域進(jìn)行連接操作。算法可以采用Hash、sort_merge和nested loop方法完成兩個連接相關(guān)區(qū)域的連接操作。以下介紹基于Hash方法的連接算法。算法的輸入為: 按照CMD方法分布的關(guān)系R和S,它們的連接屬性分別為a和b。算法的輸出是R與S的連接結(jié)果。算法的主要思想如下: 使用R和S的劃分向量確定R和S的連接相關(guān)區(qū)域:JR(R,a,x),JR(R,a,x+1),…,JR(R,a,y),JR(S,b,z),JR(S,b,z+1) ,…,JR(S,b,w)。對從x到y(tǒng)的每個連接相關(guān)區(qū)域JR(R,a,i)和從z到w的每個連接相關(guān)區(qū)域JR(S,b,j),首先,P個處理機(jī)并行地讀取JR(R,a,i),并用Hash函數(shù)分布JR(R,a,i)到所有可用處理機(jī),同時接收其他處理機(jī)傳來的JR(R,a,i)子集合并為其建立Hash表。然后,P個處理機(jī)并行地對JR(S,b,j)和JR(R,a,i)連接相關(guān)的部分進(jìn)行計算。在計算過程中,若JR(S,b,j)是第一次被訪問,則處理機(jī)使用Hash函數(shù)將其分布到JR(R,a,i)所在處理機(jī)集合。隨后每個處理機(jī)用JR(S,b,j)子集搜索匹配JR(R,a,i)子集的Hash表完成JR(S,b,j)子集與JR(R,a,i)子集的Hash連接。由于R和S的劃分點(diǎn)可能不同,所以最后需要考慮若JR(S,b,j-1)與JR(R,a,i+1)連接相關(guān),則JR(S,b,j-1)需再與JR(R,a,i+1)進(jìn)行連接。該算法不同于其他并行Hash_join算法,它不需要對整個連接關(guān)系進(jìn)行Hash劃分,可節(jié)省大量的I/O和通信時間。
關(guān)鍵詞:數(shù)據(jù),連接,并行
客戶&案例
關(guān)于我們
微信公眾號
版權(quán)所有? 億企邦 1997-2022 保留一切法律許可權(quán)利。