欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于混合粒度分布式內存網(wǎng)格索引的knn查詢方法

文檔序號:9417439閱讀:1105來源:國知局
一種基于混合粒度分布式內存網(wǎng)格索引的knn查詢方法
【技術領域】
[0001] 本發(fā)明涉及信息檢索領域,具體地說是一種實用性強、基于混合粒度分布式內存 網(wǎng)格索引的KNN查詢方法。
【背景技術】
[0002] 隨著互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、大數(shù)據(jù)等技術的快速發(fā)展,KNN查詢作為一種基礎性操作被 廣泛的用于各種基于位置的應用中。但是,隨著數(shù)據(jù)量的不斷增長,傳統(tǒng)集中式KNN查詢以 及基于MapReduce架構的KNN查詢方法不能有效的對海量數(shù)據(jù)進行快速處理。如何在大數(shù) 據(jù)環(huán)境下,結合內存集群特性、索引技術以及分布式內存計算技術對傳統(tǒng)集中式KNN查詢 算法進行擴展是解決該問題的根本途徑。
[0003] 索引技術是KNN查詢算法的關鍵組成部分,其基本思想是利用劃分、定位、映射等 方法對數(shù)據(jù)對象進行排序組成新的索引數(shù)據(jù)結構,利用索引技術可以提高數(shù)據(jù)的檢索效 率。索引技術在KNN查詢算法中的應用已經(jīng)十分廣泛,在集中式環(huán)境下:①基于Voronoi圖 的特性建立的索引結構,在空間數(shù)據(jù)的KNN查詢中得到了廣泛應用。②基于樹形結構的KNN 查詢主要有:基于R樹建立的索引結構已成熟應用于空間數(shù)據(jù)的KNN查詢、基于TPR樹建立 的索引結構被應用于移動數(shù)據(jù)對象的KNN查詢、數(shù)據(jù)劃分結合B+樹建立的索引結構被應用 于時空數(shù)據(jù)的KNN查詢。③基于網(wǎng)格索引結構的KNN查詢主要有:基于等分網(wǎng)格建立的索 引結構廣泛應用于無線廣播環(huán)境的KNN查詢、基于樹和網(wǎng)格混合結構建立的索引結構被應 用于移動數(shù)據(jù)對象的KNN查詢、基于主存的網(wǎng)格索引結構被廣泛應用于持續(xù)KNN查詢;在分 布式環(huán)境下,基于MapReduce架構的KNN查詢也有了一些成果,主要有:基于R樹的并行KNN 查詢、基于倒排索引的并行KNN查詢、基于Voronoi圖的并行KNN查詢等。
[0004] 大數(shù)據(jù)環(huán)境下KNN查詢方法效率比較低下,缺乏有效的索引結構以及該結構下 支持的KNN查詢算法是導致該問題的關鍵,主要體現(xiàn)在:①集中式環(huán)境下的索引結構研 究已經(jīng)相對成熟,基于這些索引結構也提出很多相對有效KNN算法,但是隨著數(shù)據(jù)量呈爆 炸式的增長,集中式環(huán)境下單機處理性能成為了不可調和的瓶頸;②分布式環(huán)境下基于 MapReduce架構的索引結構及相關的KNN查詢算法也有一些研究,但是由于MapReduce架構 是批處理模型,中間結果需要寫回磁盤,增加了 1/0,這就導致了查詢的實時性較差,而且 現(xiàn)有算法,沒有考慮數(shù)據(jù)分布情況,容易導致集群的數(shù)據(jù)傾斜問題。
[0005] 針對當前大數(shù)據(jù)環(huán)境下KNN查詢效率低下問題以及現(xiàn)有技術的缺點,我們提出一 種基于混合粒度分布式內存網(wǎng)格索引的KNN查詢方法,結合內存集群的特性,我們通過對 整體數(shù)據(jù)進行概要估計,建立粗-細混合粒度的分布式內存網(wǎng)格索引結構,以減小數(shù)據(jù)傾 斜和提高數(shù)據(jù)檢索效率;設計無丟失的近鄰細粒度網(wǎng)格搜索算法,以保障快速、準確的定位 查找對象的近鄰網(wǎng)格,最終,基于所建立的索引結構和無丟失的近鄰細粒度網(wǎng)格搜索算法, 結合分布式內存計算模型,對傳統(tǒng)集中式KNN算法進行可分布式擴展,以消除集中式KNN算 法的單機性能瓶頸和基于MapReduce架構KNN算法的I/O瓶頸,進而對海量數(shù)據(jù)進行快速 KNN查詢。

【發(fā)明內容】

[0006] 本發(fā)明的技術任務是針對以上不足之處,提供一種實用性強、基于混合粒度分布 式內存網(wǎng)格索引的KNN查詢方法。
[0007] -種基于混合粒度分布式內存網(wǎng)格索引的KNN查詢方法,其具體實現(xiàn)過程為:
[0008] -、進行數(shù)據(jù)預處理的步驟:基于網(wǎng)格和密度,將整體數(shù)據(jù)進行空間劃分,得到總 體數(shù)據(jù)分布的概要估計;
[0009] 二、進行數(shù)據(jù)查詢的步驟:
[0010] 建立混合粒度的分布式內存網(wǎng)格索引結構,即建立非等分粗粒度網(wǎng)格索引和等分 細粒度網(wǎng)格索引;
[0011] 基于上述索引結構設計分布式KNN查詢算法,實現(xiàn)對海量數(shù)據(jù)的快速KNN查詢:即 基于非等分粗粒度網(wǎng)格索引,通過搜索待查詢對象所在非等分粗粒度網(wǎng)格的鄰接粗粒度網(wǎng) 格集合,確定鄰接粗粒度網(wǎng)格集合中的各個粗粒度網(wǎng)格所在的Slave節(jié)點;在這些Slave節(jié) 點上,基于等分細粒度網(wǎng)格索引,通過搜索待查詢對象所在等分細粒度網(wǎng)格的鄰接細粒度 網(wǎng)格集合,對鄰接細粒度網(wǎng)格集合中每個細粒度網(wǎng)格包含的各個對象與待查詢對象的距離 進行對比,進而得到查詢的k個最近鄰對象。
[0012] 所述整體數(shù)據(jù)空間劃分的具體過程為:
[0013] 將全數(shù)據(jù)空間的各維按照等步長δ進行等分細粒度劃分,形成細粒度網(wǎng)格空間;
[0014] 將數(shù)據(jù)對象ρ映射到相應的網(wǎng)格;
[0015] 每個網(wǎng)格用特征向量g(gid,num)表示,記錄每個網(wǎng)格的編號以及包含的數(shù)據(jù)對 象個數(shù),其中gid表示網(wǎng)格的編號,具有唯一性,num表示該網(wǎng)格所包含的數(shù)據(jù)對象的個數(shù)。
[0016] 所述混合粒度的分布式內存網(wǎng)格索引結構的建立過程為:
[0017] 根據(jù)步驟一得出的數(shù)據(jù)分布的概要估計,對全數(shù)據(jù)空間進行非等分粗粒度的網(wǎng)格 劃分,建立全數(shù)據(jù)空間的非等分粗粒度網(wǎng)格索引,內存集群的Master節(jié)點維護全數(shù)據(jù)空間 的粗粒度的分布式內存網(wǎng)格索引結構CGGI,該Master節(jié)點負責向集群各個SIave節(jié)點分發(fā) 數(shù)據(jù);
[0018] 對上述劃分的每個粗粒度網(wǎng)格的所表示的子數(shù)據(jù)空間進行等分細粒度的劃分,建 立各個子數(shù)據(jù)空間的細粒度的網(wǎng)格索引,內存集群的每個Slave節(jié)點維護一個或者幾個子 數(shù)據(jù)空間的細粒度的分布式內存網(wǎng)格索引結構FGGI,每個Slave節(jié)點維護的細粒度網(wǎng)格索 引互不重疊即維護的子空間互不重疊。
[0019] 所述非等分粗粒度分布式內存網(wǎng)格索引結構的具體建立過程為:
[0020] 根據(jù)步驟一的處理,統(tǒng)計各維各個劃分所包含的數(shù)據(jù)對象的個數(shù);
[0021] 令每一維每一個劃分至少包含Θ個數(shù)據(jù)對象,當某個劃分中的數(shù)據(jù)對象個數(shù)小 于Θ時,則將其與相鄰的劃分合并,直到其包含的數(shù)據(jù)對象個數(shù)據(jù)大于Θ或者數(shù)據(jù)空間已 經(jīng)沒有剩余的劃分;
[0022] 經(jīng)過上述的計算與合并,全數(shù)據(jù)空間被劃分為一個非等分粗粒度網(wǎng)格空間,每個 粗粒度網(wǎng)格包含的數(shù)據(jù)對象基本均勻;
[0023] 建立全數(shù)據(jù)空間粗粒度的網(wǎng)格索引CGGI,CGGI的每個粗粒度網(wǎng)格用一個三元組 〈Cgid,Cgnum,SIP>表示,其中,Cgid表示粗粒度網(wǎng)格的編號,用(〈lbp Ub1X <lb2, ub2>,…, 〈lb;,ubi>,…,<lbn,ubn>)表示,〈lb;,lib;〉表示該網(wǎng)格在第i維的劃分的下界和上界; Cgnum表示該粗粒度網(wǎng)格中數(shù)據(jù)對象的個數(shù);SIP表示該粗粒度網(wǎng)格所對應的Slave節(jié)點地 址。
[0024] 所述等分細粒度的分布式內存網(wǎng)格索引結構的建立過程為:基于建立的非等分粗 粒度分布式內存網(wǎng)格索引結構,對每個粗粒度網(wǎng)格〈Cgid,Cgnum,SIP>對應的子數(shù)據(jù)空間 進行進一步的細分,取固定步長λ作為每一維進行劃分的粒度,這樣每個粗粒度網(wǎng)格將被 劃分為一個等步長的細粒度網(wǎng)格空間,基于該細粒度網(wǎng)格空間建立等分細粒度分布式內存 網(wǎng)格索引FGGI,F(xiàn)GGI的每個細粒度網(wǎng)格用一個三元組仆 8丨(1^81111111,1^8〇表示,其中^81(1 表示細粒度網(wǎng)格的編號,用〈1:,I 2,…,I3,…,ln>表示,具有唯一性,F(xiàn)gnum表示該細粒度 網(wǎng)格中數(shù)據(jù)對象的個數(shù),List表示該細粒度網(wǎng)格所包含的數(shù)據(jù)對象。
[0025] 所述CGGI、FGGI的數(shù)據(jù)對象均可插入與刪除,其中:
[0026] CGGI數(shù)據(jù)對象的插入過程為:對于數(shù)據(jù)對象p (山,d2,…...,dn)的插入,通過計 算山所在的劃分(i = 1,2,3,……,η),即可確定ρ所在的粗粒度網(wǎng)格,更新該粗粒度網(wǎng)格 的Cgnum,將其增長1 ;
[0027] 同時,對該粗粒度網(wǎng)格對應的細粒度網(wǎng)格索引FGGI進行插入更新:首先,Master 節(jié)點通過CGGI的插入操作,將數(shù)據(jù)對象ρ分發(fā)到相應的粗粒度網(wǎng)格及Slave節(jié)點;其次,對 于數(shù)據(jù)對象Pdd2,…...,dn)的插入,通過計算
即可確 定P所在細粒度網(wǎng)格索引的Fgid,更新該細粒度網(wǎng)格的Fgnum,將其增長1,同時,將數(shù)據(jù)對 象P插入List ;
[0028] CGGI的數(shù)據(jù)對象的刪除過程為:對于數(shù)據(jù)對象ρ (山,d2,…...,dn)的刪除,通過 計算Cl1所在的劃分(i = 1,2,3,……,η),即可確定ρ所在的粗粒度網(wǎng)格,更新該粗粒度網(wǎng) 格的Cgnum,將其減少1 ;
[0029] 同時,對該粗粒度網(wǎng)格對應的細粒度網(wǎng)格索引FGGI進行刪除更新:首先,Master 節(jié)點通過CGGI的刪除操作,找到數(shù)據(jù)對象ρ所在的粗粒度網(wǎng)格及Slave節(jié)點;其次,對于數(shù) 據(jù)對象Pdd2,…...,dn)的刪除,通過計算:1
4即可確定P 所在細粒度網(wǎng)格索引的Fgid,更新該細粒度網(wǎng)格的Fgnum,將其減少1,同時,將數(shù)據(jù)對象ρ 從List中刪除。
[0030] 所述KNN查詢過程即為查找對象q的k個最近鄰對象,其具體查詢過程為:
[0031] Master節(jié)點首先運行數(shù)據(jù)對象映射算法MOG算法,將數(shù)據(jù)對象映射到粗粒度網(wǎng)格 索引CGGI,確定q在CGGI所在的粗粒度網(wǎng)格Cg q;
[0032] 其次運行鄰接網(wǎng)格搜索算法SNNG算法搜索粗粒度網(wǎng)格的鄰接網(wǎng)格,即搜索Cgq的 鄰接網(wǎng)格,判斷Cg q以及其鄰接網(wǎng)格中的對象個數(shù)總和是否大于k,如果小于k,繼續(xù)搜索其 鄰接網(wǎng)格的鄰接網(wǎng)格,直到對象的總數(shù)量大于k或者搜索完整個粗粒度網(wǎng)格空間,最終得 到Cg q的鄰接粗粒度網(wǎng)格集合C q,確定Cq中粗粒度網(wǎng)格所在的Slave節(jié)點;
[0033] 在包含Cq中粗粒度網(wǎng)格的Slave節(jié)點運行SDKNN算法,每個Slave節(jié)點輸出查詢 結果;
[0034] 將每個Slave節(jié)點輸出的結果歸約到一個Slave節(jié)點,得到結果集S,對S進行升 序排序,取前k個對象作為最終結果輸出。
[0035] 所述的MOG算法在Master節(jié)點運行,其具體實現(xiàn)過程為:輸入待查詢數(shù)據(jù)對象 q (山,d2,…· · ·,dn)、粗粒度網(wǎng)格集合C,確定q每一維所在的粗粒度網(wǎng)格的劃分,將q映射 到CGGI中,確定q所在的粗粒度網(wǎng)格Cg\
[0036] 所述SNNG算法在Master節(jié)點運行,依據(jù)"鄰接網(wǎng)格"的定義計算q所在粗粒度網(wǎng) 格Cg q的鄰接網(wǎng)格,得到粗粒度鄰接網(wǎng)格集合C '統(tǒng)計Cq中粗粒度網(wǎng)格中的對象個數(shù)總和 num,如果num> = k,則輸出Cq,否貝lj,對于Cq中的每個粗粒度網(wǎng)格執(zhí)行SNNG算法,直到Cq中 粗粒度網(wǎng)格中的對象個數(shù)num> = k或者搜索完整個粗粒度網(wǎng)格空間,輸出C\
[0037] 所述SDKNN算法為分布式、可擴展KNN算法,該算法分布式的運行于存儲待查詢對 象q所在的粗粒度網(wǎng)格Cg q以及C q中粗粒度網(wǎng)格的各個Slave節(jié)點,每個Slave節(jié)點返回 q的最近鄰的k個對象;
[0038] 基于Slave節(jié)點,該算法的具體實現(xiàn)過程為:
[0039] 令Slave節(jié)點1存儲粗粒度網(wǎng)格Cgj,且Cgj e C q,Cgj在該Slave節(jié)點
當前第1頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
达日县| 临漳县| 洛南县| 门头沟区| 利津县| 台北市| 宜兰市| 黄骅市| 项城市| 祁东县| 泊头市| 鹤岗市| 威宁| 阿拉善左旗| 娄烦县| 平遥县| 嵊泗县| 南澳县| 普定县| 五莲县| 桐庐县| 淳化县| 阳高县| 万载县| 读书| 彭山县| 普定县| 浦江县| 大港区| 汉寿县| 乐昌市| 合山市| 保山市| 涡阳县| 和林格尔县| 华蓥市| 雷波县| 辛集市| 清镇市| 灌云县| 延边|