一種基于分布式計算框架下海量數(shù)據(jù)加權(quán)top-k查詢方法
【技術領域】
[0001] 本發(fā)明涉及一種數(shù)據(jù)查詢方法,特別是一種海量數(shù)據(jù)集中加權(quán)的top-k查詢方 法。
【背景技術】
[0002]top-k查詢又被稱作序敏感查詢(rank-aware query),是數(shù)據(jù)庫中一個最基本的 操作,同時也是數(shù)據(jù)分析重要工具,尤其在商業(yè)分析中,往往只需要關注最有用的數(shù)據(jù),而 不是整個數(shù)據(jù)集。
[0003] top-k查詢的定義如下:用D = {1\,T2,…,TJ表示所有數(shù)據(jù)對象的集合,凡表 示其中第i個數(shù)據(jù)對象,每個數(shù)據(jù)對象有d維,且都是空間中的一個點。對于一個top-k 查詢Q(f,k),f表示評分函數(shù),k表示返回滿足查詢要求的k個結(jié)果。f為加權(quán)和函數(shù),即 對于樣本中的一個數(shù)據(jù)對象 T (ti,t2,…,td),用戶給該數(shù)據(jù)對象的每個屬性賦予一個權(quán)重 W( Wl,w2,…,wd),每個數(shù)據(jù)對象的得分是通過各個屬性值加權(quán)求和得到的,即得分函數(shù)為:
【主權(quán)項】
1. 一種基于分布式計算框架下海量數(shù)據(jù)加權(quán)t〇p-k查詢方法,其特征在于:包括順序 執(zhí)行的以下步驟: 步驟1、建立數(shù)據(jù)空間 首先將所有包含d個屬性的數(shù)據(jù)對象的屬性值都轉(zhuǎn)化為非負值,并且對屬性值進行歸 一化處理;建立d維坐標系,坐標系的軸與數(shù)據(jù)對象的屬性一一對應,將所有數(shù)據(jù)對象放置 于坐標系中形成數(shù)據(jù)空間; 步驟2、數(shù)據(jù)劃分 以坐標系的原點為起點,將整個坐標系由內(nèi)向外劃分為m個區(qū)域,將每個區(qū)域從外向 內(nèi)順序編號為1,2,……,m,且第1區(qū)域的邊界與坐標軸一起共同將所有數(shù)據(jù)對象都包括進 去,對任意一個區(qū)域,該區(qū)域的每種屬性的最大值相同,且每個區(qū)域的外圍邊界的坐標滿足 至少有一個軸的坐標值為該區(qū)域的屬性的最大值,在設定第1區(qū)域的屬性的最大值為^的 前提下,則第i個區(qū)域的屬性的最大
= 1,2,……,m; 除最外面一個區(qū)域,對其余每個區(qū)域,將屬于該區(qū)域的且各個軸的屬性均為最大值的 點作為基點,將整個坐標系中的所有屬性值都大于等于基點處的相應屬性值的區(qū)域均劃分 出來,按照從外向內(nèi)的順序編號為1,2,……,m-l,將上述新劃分出來的區(qū)域作為判斷區(qū)進 行如下操作判斷: 按照從小到大的編號順序,依次判斷隊多k是否成立,其中\(zhòng)為i號判斷區(qū)中的數(shù)據(jù) 對象的個數(shù),k為算法返回的結(jié)果集中數(shù)據(jù)對象的個數(shù);當i號判斷區(qū)域滿足上式成立,則 結(jié)束判斷,并將從外向內(nèi)的i個區(qū)域作為搜索區(qū)域進行搜索。
2. 根據(jù)權(quán)利要求1所述的基于分布式計算框架下海量數(shù)據(jù)加權(quán)top-k查詢方法,其特 征在于:對作為搜索區(qū)域中最內(nèi)側(cè)的一個區(qū)域進行細分,該區(qū)域編號為i,細分方法如下: 將該區(qū)域劃分為d+1塊,其中d塊為待選檢索區(qū)域,除待選檢索區(qū)域外的其余區(qū)域為必 檢索區(qū)域; 將待選檢索區(qū)域編號為n= 1,2,……,d,其中第n個待選檢索區(qū)域中的任意一個數(shù)據(jù) 點Tnj (tnl,tn2,?,tnd),這里tnj表示數(shù)據(jù)點Tnj的j軸對應的屬性值,tnj滿足下列2個不等 式: 0 <tnj< 2ai+1-ai,這里 1 <j<d且j辛n (1) &廠已1+1彡tnj<a!,這里j=n (2) 第n個待選檢索區(qū)域中,若數(shù)據(jù)點tn2,…,tnd)滿足其中一個軸對應的屬性值為 %且其余軸對應的屬性值為2ai+1-ai,則將該數(shù)據(jù)點作為第n個待選檢索區(qū)域的最大邊界 占. 遍歷用戶賦予給每個待選檢索區(qū)域的最大邊界點處的各個屬性權(quán)重%是否滿足
若存在滿足上述條件的最大邊界點的屬性權(quán)重%,則搜索區(qū)域范圍縮小為包括從外向 內(nèi)的i-1個區(qū)域、第i個區(qū)域中的必檢索區(qū)以及該最大邊界點所屬的待選檢索區(qū)域; 若不存在滿足上述條件的最大邊界點的屬性權(quán)重%,則搜索區(qū)域范圍縮小為包括從外 向內(nèi)的i-1個區(qū)域以及第i個區(qū)域中的必檢索區(qū)。
【專利摘要】本發(fā)明公開了一種基于spark分布式計算框架下海量數(shù)據(jù)的top-k查詢優(yōu)化方法,將海量數(shù)據(jù)集預先進行數(shù)據(jù)分割,主要采用的是類似網(wǎng)格的數(shù)據(jù)分割方法。將原始數(shù)據(jù)集劃分為不同的子數(shù)據(jù)集,然后根據(jù)用戶對數(shù)據(jù)對象的每個屬性賦予的權(quán)重以及查詢k值,選取少量合適的子數(shù)據(jù)集代替整個數(shù)據(jù)集進行查詢。實驗結(jié)果證明本文提出的方法查詢速度較快,而且具有良好的可擴展性。與傳統(tǒng)top-k查詢方法以及基于角度和距離數(shù)據(jù)分割方法進行對比,提高了查詢速度,能夠在短時間內(nèi)及時反饋給用戶需要查詢的信息。
【IPC分類】G06F17-30
【公開號】CN104809210
【申請?zhí)枴緾N201510209691
【發(fā)明人】何潔月, 羅浩
【申請人】東南大學
【公開日】2015年7月29日
【申請日】2015年4月28日