本發(fā)明涉及計算機數(shù)據(jù)庫領(lǐng)域中度量空間下的連接處理技術(shù),特別是涉及一種基于MapReduce的度量空間相似連接處理方法。
背景技術(shù):
度量空間相似連接是指:在給定的度量空間中兩個數(shù)據(jù)集之間的笛卡爾積中找到所有相似性高于(或者距離小于)給定閾值的數(shù)據(jù)對。度量空間相似連接處理被廣泛地應(yīng)用在社會的各個領(lǐng)域中,其中包括重復(fù)數(shù)據(jù)檢測和刪除。
隨著以社交網(wǎng)絡(luò)、電子商務(wù)為代表的新型信息發(fā)布方式的不斷涌現(xiàn),以及云計算、物聯(lián)網(wǎng)計算機技術(shù)的興起,數(shù)據(jù)正以前所未有的速度不斷地增長和累積,隨之而來是以MapReduce為代表的各類大數(shù)據(jù)分布式系統(tǒng)蓬勃發(fā)展,大數(shù)據(jù)的時代已經(jīng)到來。在這樣一個大數(shù)據(jù)時代,傳統(tǒng)集中式的相似連接算法已經(jīng)漸漸滿足不了當(dāng)前快速地對海量數(shù)據(jù)進行重復(fù)數(shù)據(jù)檢測和刪除的要求。因此,設(shè)計一個具有高可擴展性、高效率的分布式相似連接處理方法成為了學(xué)術(shù)界與工業(yè)界的迫切需求。
針對基于MapReduce的度量空間相似連接處理方法,目前國內(nèi)外學(xué)者已經(jīng)做出了一些工作。其中,最具代表性的算法是基于球形劃分技術(shù)的MAPSS方法和基于二分超平面劃分技術(shù)的ClusterJoin方法。然而,這些方法主要有兩個缺陷:(1)這些方法隨機地選擇劃分的中心點,這可能導(dǎo)致數(shù)據(jù)劃分不均衡,需要對數(shù)據(jù)進行進一步的重劃分;(2)這些方法只關(guān)注數(shù)據(jù)劃分方案,而忽略了數(shù)據(jù)劃分完成后,對各劃分內(nèi)部數(shù)據(jù)之間進行相似度計算時,設(shè)計剪枝策略以提高效率的方式。我們的方法很好地彌補了上述兩個缺陷,提升了相似連接處理的效率,高效地對重復(fù)數(shù)據(jù)進行檢測和刪除。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)的不足,本發(fā)明提供一種基于MapReduce的度量空間相似連接處理方法,該方法基于MapReduce分布式計算框架,先在Map階段對給定的數(shù)據(jù)集進行劃分,而后在Reduce階段進行相似性計算以得到重復(fù)數(shù)據(jù)結(jié)果,進而進行刪除。
為了達到上述目的,本發(fā)明所采用技術(shù)方案如下:一種基于MapReduce的度量空間相似連接處理方法,具體包括如下步驟:一種基于MapReduce的度量空間相似連接處理方法,該方法的步驟如下:
(1)對應(yīng)用中給定的度量空間數(shù)據(jù)集進行隨機采樣,得到樣本數(shù)據(jù);
(2)對得到的樣本數(shù)據(jù)進行支樞點選擇;
(3)將應(yīng)用中給定的整個數(shù)據(jù)集(包括樣本數(shù)據(jù))從度量空間映射至向量空間;
(4)利用步驟(3)中得到的映射到向量空間的樣本數(shù)據(jù)構(gòu)建KD樹,得到相應(yīng)的空間劃分;
(5)在Map階段,根據(jù)步驟(4)中得到的空間劃分,對步驟(3)中得到的整個數(shù)據(jù)集進行劃分;
(6)在Reduce階段對劃分后的數(shù)據(jù)進行相似度計算,得到相似連接的處理結(jié)果。
進一步的,所述步驟(2)具體為:
(2.1)在樣本數(shù)據(jù)中找出離群點作為支樞點的備選集合;
(2.2)根據(jù)支樞點的選擇目標(biāo),對備選集合中的點進行增量式的貪心選擇。
進一步的,所述步驟(3)具體為:對于每一個在度量空間中的數(shù)據(jù),計算與步驟(2)中得到的支樞點之間的距離,并以求得的距離作為向量空間中各維度的坐標(biāo)值,以得到度量空間數(shù)據(jù)在向量空間中的坐標(biāo)。
進一步的,所述的步驟(4)具體為:對步驟(3)中得到的樣本數(shù)據(jù),構(gòu)建KD樹,得到的KD樹中包含數(shù)據(jù)點個數(shù)相等的葉子節(jié)點,各葉子節(jié)點對應(yīng)的空間區(qū)域即為空間劃分的結(jié)果。
進一步的,所述的步驟(5)在Map階段,將步驟(3)中得到的映射至向量空間后的整個數(shù)據(jù)集劃分至步驟(4)中得到的相應(yīng)空間劃分中去。
進一步的,所述步驟(6)具體為:
(6.1)在Reduce階段,對于每個劃分,將各劃分內(nèi)部的數(shù)據(jù)在隨機選定的一個維度上,使用快速排序算法進行排序整理;
(6.2)利用平面掃描法,對排序后的數(shù)據(jù)集進行度量空間距離計算以驗證結(jié)果,并結(jié)合區(qū)域過濾技術(shù)對距離計算進行剪枝。
進一步的,所述區(qū)域過濾技術(shù)是指:若兩個數(shù)據(jù)對象在向量空間任意維度上的差值大于給定的距離閾值,則它們不可能成為最終結(jié)果,從而可以不經(jīng)過度量空間距離計算就被剪掉。
本發(fā)明具有的有益效果是:本發(fā)明在MapReduce分布式計算框架下,充分利用了計算機數(shù)據(jù)庫領(lǐng)域中與度量空間相似連接處理相關(guān)的技術(shù),在Map階段中保證結(jié)果正確的前提下,對數(shù)據(jù)集進行了盡可能均勻的劃分,并在Reduce階段設(shè)計了有效的剪枝策略,進行相似度計算;大大降低了CPU時間、網(wǎng)絡(luò)通信開銷和I/O開銷,提供了高效的相似連接處理性能,以實現(xiàn)快速地對海量數(shù)據(jù)進行重復(fù)檢測和刪除。
附圖說明
圖1是本發(fā)明的實施步驟流程圖;
圖2為基于KD樹的空間劃分示意圖;
圖3為基于KD樹的數(shù)據(jù)劃分示意圖;
圖4為Reduce階段相似連接處理示意圖。
具體實施方式
現(xiàn)結(jié)合附圖和具體實施對本發(fā)明的技術(shù)方案作進一步說明:
如圖1所示,本發(fā)明具體實施過程和工作原理如下:
步驟(1):對應(yīng)用中給定的度量空間數(shù)據(jù)集進行隨機采樣,得到樣本數(shù)據(jù)。
步驟(2):對得到的樣本數(shù)據(jù)進行支樞點選擇;選出的支樞點要求保證數(shù)據(jù)在向量空間中相互之間的距離與其在原度量空間中的距離盡可能的接近,其選擇的具體步驟包括:
1)在樣本數(shù)據(jù)中找出離群點作為支樞點的備選集合;
2)根據(jù)樞紐點的選擇目標(biāo),對備選集合中的點進行增量式的貪心選擇。
步驟(3):將應(yīng)用給定的整個數(shù)據(jù)集(包括樣本數(shù)據(jù))從度量空間映射至向量空間;向量空間映射的方式是對于每一個在度量空間中的數(shù)據(jù),計算與步驟(2)中得到的支樞點之間的距離,并以求得的距離作為向量空間中各維度的坐標(biāo)值,得到度量空間數(shù)據(jù)在向量空間中的坐標(biāo)。
步驟(4):利用步驟(3)中得到的樣本數(shù)據(jù)構(gòu)建KD樹,得到相應(yīng)的空間劃分;具體如下:對步驟(3)中得到的樣本數(shù)據(jù)建立KD樹,得到的KD樹中包含數(shù)據(jù)點個數(shù)相等的葉子節(jié)點,各葉子節(jié)點對應(yīng)的空間區(qū)域即為空間劃分的結(jié)果;下面以圖2為例對KD樹的構(gòu)建進行說明,其中樣本數(shù)據(jù)為{q2,o3,q4,o4,o5,q5,o7,q8}:
1)在一個隨機選擇的維度上,圖2(a)中選到維度y,將所有的采樣數(shù)據(jù)進行排序,進而將樣本數(shù)據(jù)等分為A、B兩個節(jié)點,即A={q2,o3,q4,o4}和B={o5,q5,o7,q8};
2)分別對A、B兩個節(jié)點進行迭代劃分,最終得到圖2(b)所示的四個節(jié)點,即P1={q2,o4},P2={o3,q4},P3={o5,q5}和P4={o7,q8};
3)最終得到各葉子節(jié)點對應(yīng)的空間劃分,即為圖2(b)中節(jié)點P1、P2、P3和P4對應(yīng)的包圍盒BB(P1)、BB(P2)、BB(P3)和BB(P4)。
步驟(5):在Map階段,根據(jù)步驟(4)中得到的空間劃分,對步驟(3)中得到的整個數(shù)據(jù)集進行劃分;具體如下:所述的步驟(5)在Map階段,將步驟(3)中得到的映射至向量空間后的整個數(shù)據(jù)集,劃分至相應(yīng)的步驟(4)中得到的空間劃分中去,以圖3為例,假定應(yīng)用給定的數(shù)據(jù)集為Q={q1,q2,…,q8}、O={o1,o2,…,o8},具體劃分步驟如下:
1)如圖3(a)所示,將數(shù)據(jù)集Q劃分至對應(yīng)的劃分中,得到四個數(shù)據(jù)集Q的劃分P1Q={q1,q2},P2Q={q3,q4},P3Q={q5}以及P4Q={q6,q7,q8};
2)如圖3(a)所示,在得到的劃分PiQ后,計算能將PiQ中所有數(shù)據(jù)對象包圍住的最小包圍盒MBB(P1Q)、MBB(P2Q)、MBB(P3Q)以及MBB(P4Q);
3)計算各劃分PiQ的搜索范圍,劃分PiQ的搜索范圍為其對應(yīng)包圍盒范圍外擴距離閾值大小對應(yīng)的區(qū)域,如圖3(b)所示,虛線所示區(qū)域即為MBB(P2Q)的搜索范圍SR(P2Q);
4)根據(jù)得到的各個劃分的搜索范圍,將數(shù)據(jù)集O劃分至對應(yīng)劃分的搜索范圍中,如圖3(b)所示,數(shù)據(jù)集O劃分的結(jié)果為P1O={o2},P2O={o2,o3,o5,o6},P3O={o3,o5}和P4O={o3,o6,o7}。
步驟(6):在Reduce階段對劃分后的數(shù)據(jù)進行相似度計算,得到相似連接的處理結(jié)果;具體步驟包括:
1)在Reduce階段,對于每個劃分,各劃分內(nèi)部的數(shù)據(jù)在隨機選定的一個維度上,使用快速排序算法進行排序整理,如圖4所示,對劃分P2進行處理時,選定了維度x對數(shù)據(jù)進行排序;
2)利用平面掃描法,對排序后的數(shù)據(jù)集進行度量空間距離計算以驗證結(jié)果,并結(jié)合區(qū)域過濾技術(shù)對距離計算進行剪枝;如圖4(a)所示,有一掃描平面從左掃描到右,現(xiàn)在掃描至數(shù)據(jù)對象q2,需為現(xiàn)在處于掃描平面的q2驗證處于掃描平面右方距離閾值以內(nèi)的數(shù)據(jù)對象o5,o2和o3;另外,根據(jù)區(qū)域過濾技術(shù),如圖4(b)所示,o5和o3因為處于q2的搜索范圍SR(q2)之外可以被剪去,最終只需要為q2驗證其與o2的距離。