两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種云環(huán)境中基于分片位圖索引的查詢方法

文檔序號:6369902閱讀:213來源:國知局
專利名稱:一種云環(huán)境中基于分片位圖索引的查詢方法
技術(shù)領(lǐng)域
本發(fā)明屬于信息技術(shù)領(lǐng)域,涉及一種云環(huán)境中的分布式位圖索引方法以及利用該方法對數(shù)據(jù)進行查詢。
背景技術(shù)
云計算環(huán)境以及數(shù)據(jù)管理云計算技術(shù)的快速發(fā)展為海量數(shù)據(jù)的存儲和管理提供了可能。相比傳統(tǒng)的單機計算環(huán)境,云環(huán)境可以有效地利用分布式集群的龐大計算資源來滿足海量數(shù)據(jù)管理對計算資 源和存儲資源的需求,并且擁有易于維護、易于擴展和易于管理等優(yōu)良特性。面對數(shù)據(jù)量的快速增長,云計算技術(shù)能夠快速調(diào)整并分配所需資源以適應(yīng)數(shù)據(jù)的瘋狂膨脹;同時能夠為非機構(gòu)化數(shù)據(jù)提供具有彈性的、松散組織的存儲模式以及建立在這種存儲模式之上的分布式并行計算資源。隨著網(wǎng)絡(luò)時代數(shù)據(jù)的迅速膨脹,管理大規(guī)模數(shù)據(jù)成為了一個非常迫切的需求。云環(huán)境在計算資源與存儲資源方面的優(yōu)勢使其具備了存儲和管理大規(guī)模數(shù)據(jù)的能力。位圖索引位圖索引是一種使用位圖的特殊的數(shù)據(jù)庫索引技術(shù)。在位圖索引中,位圖中每個位的取值為0或1,表示對應(yīng)的元組在是否在被索引屬性上取得某項給定的取值。因此位圖的長度等于元組總數(shù)。屬性A上的位圖索引將為該屬性上所有可能的取值建立一個位圖,用以指示各元組在該屬性上的取值情況。如果屬性A上可能的取值較多,將產(chǎn)生較多個位圖。在這種情況下,可以使用B+樹來組織這些位圖。B+樹可以保證快速定位所欲查找的位圖。位圖索引的優(yōu)勢在于,可以利用傳統(tǒng)計算機高效的按位邏輯操作來快速處理復(fù)合的查詢條件。例如,將在屬性A1上檢索得到的位圖和在屬性A2上檢索得到的位圖執(zhí)行邏輯按位與即可得到同時滿足這兩個屬性上的查詢條件的結(jié)果。云環(huán)境中索引的集中式管理方案在集中式方案中,被索引字段上的所有值被全局排序并集中管理。具體而言,每條記錄對應(yīng)的索引項將包含被索引的字段的值以及該記錄對應(yīng)的主鍵值。在索引結(jié)構(gòu)中,這些索引項按照被索引字段的值全局排序。系統(tǒng)處理被索引字段上的查詢請求的過程分為兩個步驟。首先在全局排序的索引結(jié)構(gòu)中找到符合條件的索引項,從而得知相應(yīng)記錄的主鍵值。然后,依據(jù)主鍵值訪問聚集索引從而定位完整的記錄。集中式方案的最大挑戰(zhàn)莫過于全局排序了的索引項的管理。一個最直接的方法是將這些索引項如同其他一般數(shù)據(jù)一樣分布式的存儲在數(shù)據(jù)管理系統(tǒng)中。以開源項目HBase中的主鍵檢索機制為例,圖I展示了集中式方案中索引結(jié)構(gòu)的構(gòu)成與訪問方式,其中根表記錄了目標(biāo)元組應(yīng)當(dāng)對應(yīng)于哪一個元數(shù)據(jù)表,而元數(shù)據(jù)表則記錄了目標(biāo)元組在數(shù)據(jù)表中真實的位置。檢索過程中,首先通過第1,2,3步獲得目標(biāo)元組所對應(yīng)的主鍵值,然后經(jīng)過第5,6,7步根據(jù)主鍵值找到目標(biāo)元組。通過這種方式,龐大的索引結(jié)構(gòu)也可以享受到海量數(shù)據(jù)管理系統(tǒng)提供的可靠性、可擴展性和易管理性。但是,整個訪問過程中的每一個步驟僅有一個單獨的數(shù)據(jù)節(jié)點參與完成,這并沒有有效利用分布式計算資源帶來的優(yōu)勢。從而,查詢的響應(yīng)時間將會非常長。云環(huán)境中索引的分布式管理方案在分布式方案中,各數(shù)據(jù)節(jié)點上獨立建立各自管理的局部數(shù)據(jù)上的索引。分布式方案沒有維護索引值的全局排序,而是將其局部化到每個單獨的數(shù)據(jù)節(jié)點上。從而,數(shù)據(jù)節(jié)點相互之間不存在依賴關(guān)系,這為查詢請求的并發(fā)執(zhí)行帶來了便利。當(dāng)被索引鍵值上的查詢請求到達時,檢索任務(wù)將被分發(fā)到所有的 數(shù)據(jù)節(jié)點上并以并發(fā)方式執(zhí)行,最終的查詢結(jié)果是所有數(shù)據(jù)節(jié)點上返回結(jié)果的并集。每個數(shù)據(jù)節(jié)點上數(shù)據(jù)的索引將被獨立維護,因此其局部的索引結(jié)構(gòu)具有很強的靈活性各節(jié)點使用的索引技術(shù)可以是同構(gòu)的,例如均使用B+樹索引;也可以使異構(gòu)的,例如有的節(jié)點上使用B+樹索引,而其他的節(jié)點上則使用位圖索引等等。異構(gòu)的局部索引允許各數(shù)據(jù)節(jié)點依據(jù)自身的計算資源來選擇所使用的索引技術(shù),例如,主存資源不充足的節(jié)點可以使用B+樹索引并僅在主存中維護B+樹靠近根部兩層的節(jié)點。而CPU計算能力較差的節(jié)點則可以使用位圖索引,從而利用位圖上的邏輯操作來降低計算量。圖2展示了分布式方案中索引結(jié)構(gòu)的構(gòu)成與訪問方式。通過這種方式,索引結(jié)構(gòu)依附于數(shù)據(jù)本身而被分散到各個節(jié)點中。節(jié)點之間具有獨立性。檢索任務(wù)也分配到各節(jié)點中獨立執(zhí)行,從而,并行計算資源得到很好地利用。但是,特別以最常用到的等值條件為代表,由于絕大多數(shù)檢索任務(wù)的目標(biāo)記錄數(shù)量很少,在分布式集群中并行地執(zhí)行該任務(wù)往往造成很多未存儲任何目標(biāo)記錄的數(shù)據(jù)節(jié)點也觸發(fā)了檢索過程,而最終將返回空集。在檢索任務(wù)頻繁的情況下,這一并行執(zhí)行過程將會耗費大量的不必要的計算資源,最終將會降低系統(tǒng)的吞吐量。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種云環(huán)境中的分布式位圖索引方法——分片位圖索引(Regional Bitmap Index,RBI)以及利用該方法對大規(guī)模數(shù)據(jù)進行高效查詢。本發(fā)明吸取了集中式索引方案和分布式索引方案中各自的優(yōu)點,提出分片位圖索引結(jié)構(gòu)通過屬性值的全局排序機制而建立指示位圖使得各數(shù)據(jù)節(jié)點可以了解局部數(shù)據(jù)在全局數(shù)據(jù)中的分布情況;通過將索引結(jié)構(gòu)局部化,使得數(shù)據(jù)節(jié)點之間盡可能相互獨立從而便于并行檢索的實施。本發(fā)明中的方法充分利用了云環(huán)境中的并行計算資源顯著提高的查詢的響應(yīng)時間,同時各數(shù)據(jù)節(jié)點利用值域上的數(shù)值分布信息避免了在大量無命中的數(shù)據(jù)節(jié)點中進行檢索而引起的不必要的計算代價和開銷,從而查詢吞吐量也獲得了提高。本發(fā)明提出一種云環(huán)境中基于分片位圖索引的查詢方法,其步驟包括I)建立分片位圖索引,I. I)對云環(huán)境中每個元組的屬性值進行值域劃分,生成屬性值的全局排序表,所述全局排序表對元組用設(shè)定的規(guī)則排序;I. 2)根據(jù)值域劃分結(jié)果,在每個分布式數(shù)據(jù)節(jié)點上建立指示位圖,所述指示位圖記錄局部屬性值存儲情況;I. 3)根據(jù)云環(huán)境構(gòu)架在各分布式數(shù)據(jù)節(jié)點上建立局部位圖索引,完成分片位圖索弓I的創(chuàng)建;2)輸入查詢條件,主節(jié)點根據(jù)查詢條件建立條件位圖,并分發(fā)至各個數(shù)據(jù)節(jié)點,所述條件位圖覆蓋查詢條件所包含所有可能;各數(shù)據(jù)節(jié)點并發(fā)執(zhí)行檢索任務(wù),主節(jié)點收集各個數(shù)據(jù)節(jié)點的查詢結(jié)果,并向用戶返回各數(shù)據(jù)節(jié)點上查詢結(jié)果的并集。用長為Zi1C,的位串表示每個元組,其中,元組的屬性i的值域被切割為Ci個子域,f是參與切割的屬性的個數(shù),I彡i彡f。所述Ci個子域構(gòu)成集合Ci,并用笛卡爾積Des1^f=C1XC2XC3X…Cf表示,所述笛卡爾積的大小為=n: I Ci O所述位串進行全局排序,得到的排序值與任意元組在被查詢字段上的取值唯一對應(yīng),所述元組對應(yīng)位串的所有可能取值按照從小到大的順序排序。所述指示位圖的長度等于該元組屬性值域被劃分子域的個數(shù),與笛卡爾積的大小·B相同。步驟3)中建立位圖索引的方法是對該節(jié)點上存在的元組所對應(yīng)的位串的全局排序值建立B+樹,樹的葉節(jié)點中的每一個鍵對應(yīng)于一個排序值;為B+樹的葉子節(jié)點上的各個鍵附加一個長度為本數(shù)據(jù)節(jié)點所管理的元組總數(shù)的位圖作為相應(yīng)排序值所對應(yīng)的元組位圖。當(dāng)查詢條件為單個查詢條件時,a)各計算節(jié)點分別將條件位圖拆分為屬性笛卡爾積內(nèi)的元素所對應(yīng)的位串,并將拆分得到的位串轉(zhuǎn)換為相應(yīng)的排序值建立一目標(biāo)排序值集合;b)生成長度等于B的全0位串cb,并將屬于目標(biāo)排序值集合內(nèi)的位置為I ;c)檢查邏輯按位與eb&cb的計算結(jié)果是否為0,其中eb表示該計算節(jié)點上的指示位圖,cb是元組位串;d)如果為0則在該計算節(jié)點上直接返回空集作為計算結(jié)果;e)否則,搜索該計算節(jié)點的局部B+樹并找到對應(yīng)的葉子節(jié)點及其上附著的元組位圖,一一檢查元組位圖中被置為I的位所對應(yīng)的元組是否滿足條件。當(dāng)查詢條件為多個查詢條件時,i )依照單個查詢條件情況執(zhí)行查詢;ii )將步驟i )中各查詢條件的查詢結(jié)果按照原查詢中條件的復(fù)合方式執(zhí)行相應(yīng)的按位邏輯操作,一一檢查計算結(jié)果中被置為I的位所對應(yīng)的元組是否滿足條件;iii )最后向主節(jié)點返回所有滿足條件的結(jié)果作為查詢結(jié)果。條件位圖是元組屬性位串笛卡爾積內(nèi)符合條件的元素所對應(yīng)的位串的邏輯按位與。查詢請求到達分布式數(shù)據(jù)節(jié)點時,通過比對指示位圖來確定本數(shù)據(jù)節(jié)點是否包含目標(biāo)元組,如果不存在,則直接返回空值作為該數(shù)據(jù)節(jié)點的查詢結(jié)果,而無需執(zhí)行檢索任務(wù)。本發(fā)明的有益效果在于本發(fā)明在分析對比集中式方案與分布式方案的差異基礎(chǔ)上設(shè)計出了結(jié)合二者優(yōu)勢的索引機制。該方法可以充分利用了云環(huán)境中的可配置的并行計算資源,能夠為以比較大小為條件的數(shù)據(jù)查詢請求提供快速相應(yīng)。得益于指示位圖的使用,本發(fā)明有效地避免了不必要的計算資源開銷。本發(fā)明被部署于云環(huán)境中,面對大規(guī)模數(shù)據(jù),本發(fā)明提供的檢索方法具有良好的可擴展性。


圖I是現(xiàn)有技術(shù)中的集中式方案示意圖;圖2是現(xiàn)有技術(shù)中的分布式方案示意圖;
圖3是本發(fā)明云環(huán)境中基于分片位圖索引的查詢方法在響應(yīng)時間方面與現(xiàn)有技術(shù)檢索方法的比較示意圖;圖4是本發(fā)明云環(huán)境中基于分片位圖索引的查詢方法在查詢吞吐量方面與現(xiàn)有技術(shù)檢索方法的比較示意圖;圖5是本發(fā)明云環(huán)境中基于分片位圖索引的查詢方法一實施例中在某數(shù)據(jù)節(jié)點上的元組及其位串值與排序值;圖6是本發(fā)明云環(huán)境中基于分片位圖索引的查詢方法一實施例中的局部B+樹結(jié)構(gòu)以及元組位圖的示意圖;圖7是本發(fā)明云環(huán)境中基于分片位圖索引的查詢方法查詢步驟流程圖。
具體實施例方式在一個具有4. 5億條元組,大小為52GB的記錄Twitter微博轉(zhuǎn)發(fā)關(guān)系的數(shù)據(jù)集上進行實驗的結(jié)果表明,本發(fā)明中提出的索引方法在響應(yīng)時間和查詢吞吐量上均具有良好的表現(xiàn)。圖3和圖4列出了集中式方案索引的基本實現(xiàn)(Global Approach, GA),分布式方案索引的基本實現(xiàn)(DistributedApproach, DA)與本方法提出的分片位圖索引(RegionalBitmap Index,RBI)的對比實驗結(jié)果。實驗使用了由4臺機器構(gòu)成的一個分布式集群作為實驗環(huán)境。以下結(jié)合附圖7詳細介紹本發(fā)明提出的分片位圖索引的構(gòu)建過程中的各個步驟首先,生成數(shù)據(jù)在被索引屬性上的值進行全局排序表。全局排序表的生成方法如下I.在數(shù)值屬性為A1, A2, A3, . . .,Af共f個數(shù)據(jù)列上建立位圖索引;首先將各屬性A1的值域切割為Ci個子域(如果屬性取值為離散值,則可將每一個取值單獨劃分為一個子域),設(shè)這些子域構(gòu)成的集合為Ci,那么子域的笛卡爾積Des1...^C1 XC2XC3X的大小為B = n;, c.2.使用一個長為,的位串來表示每個元組,其中Ci是值域集合的大小。設(shè)元組t的屬性Ai的第j個子域?qū)?yīng)的位為,那么規(guī)定該元組所對應(yīng)的位串可為
' ' ^!,C1 ^2,1^2.2^2,3 . . ^2-C, Pf f f ,3 .. ■ ,Cf。3.給定任意元組t所對應(yīng)的位串,Vi G [1,/]有且僅有唯一的一個i G [1,Ci]使得bq= I。因此該位串的所有可能取值可一一對應(yīng)于上述子域笛卡爾積Des1...f中的元素。從而,任意元組所對應(yīng)的位串將擁有A = ,個可能的取值。同一張數(shù)據(jù)表中的不同的元組擁有相同的表模式,表模式?jīng)Q定了表所擁有的屬性,在給定屬性列及其上的子域劃分的情況下,將元組對應(yīng)的位串的所有可能取值按照從小到大的順序排序。位串的所有可能的取值均一一對應(yīng)到一個排序值re [1,B]上。這樣,任意元組在被檢測的數(shù)據(jù)字段上的取值均對應(yīng)于一個唯一的排序值r。至此,完成了對所有元組上的索引值的全局排序。下面以為某公司員工信息表中的兩個屬性建立組合索引為例,介紹從元組生成對應(yīng)的位串,進而計算對應(yīng)的排序值的過程。例I :給定某公司的員工信息表,設(shè)該表屬性A1指示員工性別,包含男male和女female兩個取值;屬性A2記錄員工薪水,取值為
范圍內(nèi)的整數(shù)。首先,屬性AjA值域被分割為兩個子域,分別僅包括取值男male和女female ;屬性A2的值域被分割為三個子域
,(1000,2000]和(2000, 3000] o考慮員工1,設(shè)其性別為男性,薪水為1300,那么該員工I對應(yīng)的位串為‘10010’。其中前兩位‘10’表示屬性A1上取值為male,后三位‘010’表示其薪水在范圍(1000,2000]內(nèi)。再考慮員工2,設(shè)其性別為女性,薪水為2600,那么該員工對應(yīng)的位串為‘01001’。其中前兩位‘01’表示屬性A1上取值為male,后三位‘001’表示其薪水在范圍(2000,3000]內(nèi)。根據(jù)以上對屬性值域的劃分,可知屬性子域的笛卡爾積的大小為B=2X3=6。任意元組所對應(yīng)的位串可能的取值有6個,將其按照從小到大的順序排列可得‘01001,,‘01010,,‘01100,,‘10001,,‘10010,以及 ‘10100,。對比可知,員工I對應(yīng)的位串排在第5位,而員工2對應(yīng)的位串排在第I位。因此,員工I和員工2對應(yīng)的位串的排序值分別為5和I。接下來,在各數(shù)據(jù)節(jié)點分別生成指示位圖。指示位圖是一個長度為子域笛卡爾積的大小B的位串。如果該數(shù)據(jù)節(jié)點上存在排序值為r的元組,則該數(shù)據(jù)節(jié)點上指示位圖的第r位為1,如果該數(shù)據(jù)節(jié)點上不存在排序值為r的元組(大于或小于I■元組),則該數(shù)據(jù)節(jié)點上指示位圖的第I■位為O。指示位圖反映了局部數(shù)據(jù)在屬性的整體值域中的分布情況。它將被存儲于數(shù)據(jù)節(jié)點的內(nèi)存中。例2 :關(guān)于員工信息表的假設(shè)同例I。如圖5所示,設(shè)該表在某個數(shù)據(jù)節(jié)點上共有7條記錄。由于B=6,因此該數(shù)據(jù)節(jié)點上的指示位圖長度為6。又由于該數(shù)據(jù)節(jié)點僅包含排序值為1、3、4和5的元組,因此其指示位圖應(yīng)為101110。指示位圖記錄了局部屬性值的存在情況。查詢請求到達分布式數(shù)據(jù)節(jié)點時,首先通過比對指示位圖來確定本數(shù)據(jù)節(jié)點是否包含目標(biāo)元組,如果不存在,則直接返回空值,而不執(zhí)行檢索任務(wù)。對指示位圖的比對通過位串的按位邏輯與操作來完成。
例3 :關(guān)于員工信息表的假設(shè)同例I。如圖5所示,設(shè)該表在某個數(shù)據(jù)節(jié)點上共有7條記錄。由例3可知其指示位圖為101110。假設(shè)用戶發(fā)出了查詢性別為女性且薪水范圍在(1000,2000]內(nèi)的員工,據(jù)此可生成目標(biāo)記錄的對應(yīng)的位串為01010,其排序值為2。從而,構(gòu)造位串01000與存在101110進行邏輯按位與01000&101110=0,結(jié)果為全零,因此該節(jié)點上不存在目標(biāo)元組,可直接返回空集作為本節(jié)點的查詢結(jié)果。最后,在各數(shù)據(jù)節(jié)點為局部管理的數(shù)據(jù)建立位圖索引。類似于前文所述分布式方案,本方法同樣采用數(shù)據(jù)節(jié)點獨立管理局部數(shù)據(jù)上的索引的方式,以便提高執(zhí)行檢索時的并行度。在每個數(shù)據(jù)節(jié)點上,并行執(zhí)行以下步驟I.對該節(jié)點上存在的元組所對應(yīng)的位串的全局排序值建立B+樹,樹的每個葉節(jié)點對應(yīng)于一個排序值。B+樹的構(gòu)建過程如 Goetz Graefe and Harumi A. Kuno. Modern B-Treetechniques. (In ICDE, pages 1370-1373, 2011.)中所述。2.為B+樹的各個葉子節(jié)點附加一個長度為本數(shù)據(jù)節(jié)點所管理的元組總數(shù)的位圖作為該葉子節(jié)點對應(yīng)的數(shù)據(jù)。位圖中擁有該排序值的元組所對應(yīng)的位被置為I其他位被置為O。該位圖被稱為元組位圖。易見,單個數(shù)據(jù)節(jié)點上的B+樹最多擁有B個葉子節(jié)點,因此最多存在B個元組位圖。
繼續(xù)例I中的假設(shè),下面的例子介紹了某個數(shù)據(jù)節(jié)點上的局部位圖索引的生成過程。例4 :關(guān)于員工信息表的假設(shè)同例I。如圖5所示,設(shè)該表在某個數(shù)據(jù)節(jié)點上共有7條記錄。其中位串Bit String和排序值Rank不是原表中的屬性,而是由性別和薪水兩個屬性上的值生成的位串及其對應(yīng)的排序值。依據(jù)各記錄的排序值建立的B+樹結(jié)構(gòu)如圖6所示(該B+樹中的每個節(jié)點至多含有3個孩子節(jié)點)。以下結(jié)合附圖7詳細介紹給定查詢條件,以分布式方式執(zhí)行檢索任務(wù)的步驟首先,主節(jié)點根據(jù)查詢條件生成條件位圖,并將其分發(fā)至各個數(shù)據(jù)節(jié)點。條件位圖是屬性笛卡爾積內(nèi)符合條件的元素所對應(yīng)的位串的邏輯按位與。例如,查詢女性薪水為1500到1800之間的員工將得到條件位圖01010 ;又如,查詢條件薪水低于1300的男性員工 將被轉(zhuǎn)換為條件位圖10110。注意,生成的條件位串應(yīng)當(dāng)覆蓋查詢條件所包含的所有可能性。另外,如果查詢條件是涉及與多個索引結(jié)構(gòu)相關(guān)的屬性上的多個查詢條件的復(fù)合條件,那么應(yīng)當(dāng)為各個條件生成獨立的條件位圖。然后,各數(shù)據(jù)節(jié)點并行執(zhí)行檢索任務(wù)。對于單個查詢條件和多個查詢條件組成的復(fù)合查詢條件,以下分情況介紹I.單個查詢條件的情況a)將條件位圖拆分為屬性笛卡爾積內(nèi)的元素所對應(yīng)的位串,并將拆分得到的位串轉(zhuǎn)換為相應(yīng)的排序值。這些排序值組成了的一個目標(biāo)排序值的集合。b)接著生成長度等于B的全0位串cb,并將屬于目標(biāo)排序值集合內(nèi)的位置為I。c)檢查邏輯按位與eb&cb的計算結(jié)果是否為O。其中eb表示該數(shù)據(jù)節(jié)點上的指示位圖。d)如果為0則在該數(shù)據(jù)節(jié)點上直接返回空集作為計算結(jié)果。e)否則,搜索該數(shù)據(jù)節(jié)點的局部B+樹并找到對應(yīng)的葉子節(jié)點及其上附著的元組位圖,一一檢查元組位圖中被置為I的位所對應(yīng)的元組是否滿足條件。最后向主節(jié)點返回所有滿足條件的結(jié)果作為查詢結(jié)果。2.多個查詢條件組成的復(fù)合查詢條件的情況a)對于各個單獨的查詢條件,依次執(zhí)行以下步驟i各數(shù)據(jù)節(jié)點分別將條件位串轉(zhuǎn)換為對應(yīng)的排序值的范圍。ii接著生成長度等于B的全0位串cb,并將屬于排序值范圍內(nèi)的位置為I。iii檢查按位邏輯與eb&cb的計算結(jié)果是否為O。iv如果為0則在該數(shù)據(jù)節(jié)點上直接生成長度等于該數(shù)據(jù)節(jié)點管理的局部元組數(shù)量的全0位圖作為該查詢條件的查詢結(jié)果。V否則,搜索該數(shù)據(jù)節(jié)點的局部B+樹并找到對應(yīng)的葉子節(jié)點及其上附著的元組位圖作為該查詢條件的查詢結(jié)果。b)將步驟a)中各查詢條件的查詢結(jié)果按照原查詢中條件的復(fù)合方式執(zhí)行相應(yīng)的按位邏輯操作,一一檢查計算結(jié)果中被置為I的位所對應(yīng)的元組是否滿足條件。c)最后向主節(jié)點返回所有滿足條件的結(jié)果作為本數(shù)據(jù)節(jié)點上的查詢結(jié)果。最后,主節(jié)點收集各數(shù)據(jù)節(jié)點返回的查詢結(jié)果,并取并集作為最終結(jié)果。
權(quán)利要求
1. 一種云環(huán)境中基于分片位圖索引的查詢方法,其步驟包括 1)建立分片位圖索引, 1.1)對云環(huán)境中每個元組的屬性值進行值域劃分,生成屬性值的全局排序表,所述全局排序表對元組用設(shè)定的規(guī)則排序; I. 2)根據(jù)值域劃分結(jié)果,在每個分布式數(shù)據(jù)節(jié)點上建立指示位圖,所述指示位圖記錄局部屬性值存儲情況; 1.3)根據(jù)云環(huán)境構(gòu)架在各分布式數(shù)據(jù)節(jié)點上建立局部位圖索引,完成分片位圖索引的創(chuàng)建; 2)輸入查詢條件,主節(jié)點根據(jù)查詢條件建立條件位圖,并分發(fā)至各個數(shù)據(jù)節(jié)點,所述條件位圖覆蓋查詢條件所包含所有可能;各數(shù)據(jù)節(jié)點并發(fā)執(zhí)行檢索任務(wù),主節(jié)點收集各個數(shù)據(jù)節(jié)點的查詢結(jié)果,并向用戶返回各數(shù)據(jù)節(jié)點上查詢結(jié)果的并集。
2.如權(quán)利要求I所述的云環(huán)境中基于分片位圖索引的查詢方法,其特征在于,用長為
3.如權(quán)利要求2所述的云環(huán)境中基于分片位圖索引的查詢方法,其特征在于,所述Ci個子域構(gòu)成集合Ci,并用笛卡爾積Des1... ^C1 X C2 X C3 X…Cf表示,所述笛卡爾積的大小為
4.如權(quán)利要求2所述的云環(huán)境中基于分片位圖索引的查詢方法,其特征在于,對所述位串進行全局排序,得到的排序值與任意元組在被查詢字段上的取值唯一對應(yīng),所述元組對應(yīng)位串的所有可能取值按照從小到大的順序排序。
5.如權(quán)利要求I或3所述的云環(huán)境中基于分片位圖索引的查詢方法,其特征在于,所述指示位圖的長度等于該元組屬性值域被劃分子域的個數(shù),與笛卡爾積的大小B相同。
6.如權(quán)利要求I所述的云環(huán)境中基于分片位圖索引的查詢方法,其特征在于,步驟3)中建立位圖索引的方法是對該節(jié)點上存在的元組所對應(yīng)的位串的全局排序值建立B+樹,樹的葉節(jié)點中的每一個鍵對應(yīng)于一個排序值 ’為B+樹的葉子節(jié)點上的各個鍵附加一個長度為本數(shù)據(jù)節(jié)點所管理的元組總數(shù)的位圖作為相應(yīng)排序值所對應(yīng)的元組位圖。
7.如權(quán)利要求I所述的云環(huán)境中基于分片位圖索引的查詢方法,其特征在于,當(dāng)查詢條件為單個查詢條件時, a)各計算節(jié)點分別將條件位圖拆分為屬性笛卡爾積內(nèi)的元素所對應(yīng)的位串,并將拆分得到的位串轉(zhuǎn)換為相應(yīng)的排序值建立一目標(biāo)排序值集合; b)生成長度等于B的全O位串cb,并將屬于目標(biāo)排序值集合內(nèi)的位置為I; c)檢查邏輯按位與eb&cb的計算結(jié)果是否為0,其中eb表示該計算節(jié)點上的指示位圖; d)如果為0則在該計算節(jié)點上直接返回空集作為計算結(jié)果; e)否則,搜索該計算節(jié)點的局部B+樹并找到對應(yīng)的葉子節(jié)點及其上附著的元組位圖,一一檢查元組位圖中被置為I的位所對應(yīng)的元組是否滿足條件。
8.如權(quán)利要求I或7所述的云環(huán)境中基于分布式位圖索引的查詢方法,其特征在于,當(dāng)查詢條件為多個查詢條件時,i)依照單個查詢條件情況執(zhí)行查詢; ii )將步驟i )中根據(jù)各查詢條件檢索得到的元組位圖按照原查詢中條件的復(fù)合方式執(zhí)行相應(yīng)的按位邏輯操作,一一檢查計算結(jié)果中被置為I的位所對應(yīng)的元組是否滿足條件; iii)最后向主節(jié)點返回所有滿足條件的結(jié)果作為查詢結(jié)果。
9.如權(quán)利要求I所述的云環(huán)境中基于分片位圖索引的查詢方法,其特征在于,條件位圖是元組屬性位串笛卡爾積內(nèi)符合條件的元素所對應(yīng)的位串的邏輯按位與。
10.如權(quán)利要求I所述的云環(huán)境中基于分片位圖索引的查詢方法,其特征在于,查詢請求到達分布式數(shù)據(jù)節(jié)點時,通過比對指示位圖來確定本數(shù)據(jù)節(jié)點是否包含目標(biāo)元組,如果不存在,則直接返回空值作為該數(shù)據(jù)節(jié)點的查詢結(jié)果,而無需執(zhí)行檢索任務(wù)。
全文摘要
本發(fā)明提出一種云環(huán)境中基于分片位圖索引的查詢方法,1)建立分片位圖索引,1.1)對云環(huán)境中數(shù)據(jù)表上的索引屬性進行值域劃分,生成屬性值的全局排序表,全局排序表對元組用設(shè)定的規(guī)則排序;1.2)根據(jù)值域劃分結(jié)果建立每個數(shù)據(jù)節(jié)點上的指示位圖,指示位圖記錄局部屬性值存儲情況;1.3)根據(jù)云環(huán)境構(gòu)架在各數(shù)據(jù)節(jié)點上建立局部位圖索引,完成分片位圖索引的創(chuàng)建;2)輸入查詢條件,主節(jié)點根據(jù)查詢條件建立條件位圖,并分發(fā)至各個數(shù)據(jù)節(jié)點,條件位圖覆蓋查詢條件所包含所有可能;各數(shù)據(jù)節(jié)點并發(fā)執(zhí)行檢索任務(wù),主節(jié)點收集各個數(shù)據(jù)節(jié)點的查詢結(jié)果,并向用戶返回各數(shù)據(jù)節(jié)點上查詢結(jié)果的并集。通過建立分片位圖索引可以充分利用了云環(huán)境中的可配置的并行計算資源,能夠為以比較大小為條件的數(shù)據(jù)查詢請求提供快速響應(yīng)。
文檔編號G06F17/30GK102722531SQ20121015525
公開日2012年10月10日 申請日期2012年5月17日 優(yōu)先權(quán)日2012年5月17日
發(fā)明者唐世渭, 孟必平, 李紅燕, 楊冬青, 王騰蛟, 高軍 申請人:北京大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
新巴尔虎左旗| 萨迦县| 二连浩特市| 方山县| 蒲江县| 南丹县| 柯坪县| 伊通| 佳木斯市| 寿光市| 崇礼县| 大庆市| 新兴县| 三明市| 凤凰县| 南乐县| 禹城市| 连江县| 盈江县| 泌阳县| 兴业县| 滨海县| 英山县| 灌云县| 岗巴县| 大安市| 云南省| 临海市| 田东县| 观塘区| 古丈县| 柯坪县| 旬阳县| 大洼县| 湘乡市| 镇雄县| 滨州市| 临颍县| 漯河市| 文昌市| 滕州市|