基于標(biāo)識(shí)符空間映射的大數(shù)據(jù)二級(jí)索引構(gòu)建方法
【專利摘要】本發(fā)明提出了一種基于標(biāo)識(shí)符空間映射的大數(shù)據(jù)二級(jí)索引構(gòu)建方法,包括:根據(jù)查詢屬性生成索引條目,利用Baton協(xié)議組織索引節(jié)點(diǎn)及索引條目,建立Baton索引組織;數(shù)據(jù)處理節(jié)點(diǎn)在查詢非Rowkey屬性時(shí),將查詢所需數(shù)據(jù)請(qǐng)求發(fā)送給索引節(jié)點(diǎn),索引節(jié)點(diǎn)通過(guò)Baton路由協(xié)議將數(shù)據(jù)檢索請(qǐng)求發(fā)送到需檢索索引條目所在的索引節(jié)點(diǎn),所述索引節(jié)點(diǎn)通過(guò)物理地址獲取所需數(shù)據(jù),并發(fā)送給相應(yīng)的數(shù)據(jù)處理節(jié)點(diǎn)。本發(fā)明有益效果:二級(jí)索引構(gòu)建技術(shù)改進(jìn)了HBase不支持索引構(gòu)建與使用的缺點(diǎn);利用云計(jì)算資源管理大量的屬性索引,滿足大量數(shù)據(jù)分析處理的二級(jí)索引需求;數(shù)據(jù)的檢索與獲得由索引節(jié)點(diǎn)完成,減輕了數(shù)據(jù)處理節(jié)點(diǎn)的負(fù)擔(dān),提高數(shù)據(jù)處理的效率。
【專利說(shuō)明】基于標(biāo)識(shí)符空間映射的大數(shù)據(jù)二級(jí)索弓I構(gòu)建方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及大數(shù)據(jù)處理領(lǐng)域,尤其涉及一種大數(shù)據(jù)二級(jí)索引構(gòu)建方法。
【背景技術(shù)】
[0002]在企業(yè)信息化與智能化過(guò)程中,數(shù)據(jù)量快速增長(zhǎng),業(yè)務(wù)數(shù)據(jù)種類也呈現(xiàn)多樣化趨勢(shì)。建立高效的企業(yè)智能決策支持系統(tǒng),需要一種大數(shù)據(jù)管理系統(tǒng),將各類業(yè)務(wù)數(shù)據(jù)統(tǒng)一存儲(chǔ),并提供正確、快速數(shù)據(jù)分析處理能力。HBase是一個(gè)高可靠性、高性能、面向列、可伸縮的分布式存儲(chǔ)系統(tǒng),為大數(shù)據(jù)存儲(chǔ)與分析處理提供較為完備的解決方案。
[0003]然而,HBase不支持二級(jí)索引,當(dāng)需要查詢非Rowkey屬性時(shí)只能通過(guò)全表掃描方式,數(shù)據(jù)分析效率嚴(yán)重降低。為大數(shù)據(jù)建立索引,需要管理大量的索引條目,這需要利用云計(jì)算資源完成。而且,HBase的存儲(chǔ)單位為HFile,HFile是一種分布式存儲(chǔ),不同于傳統(tǒng)的磁盤存儲(chǔ),所以原有的磁盤索引不再適用。因此,結(jié)合大數(shù)據(jù)特征,本文給出一種HBase 二級(jí)索引構(gòu)建方法。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的就是為了支持大數(shù)據(jù)在HBase的高效數(shù)據(jù)分析處理,提出了一種基于標(biāo)識(shí)符空間映射的大數(shù)據(jù)二級(jí)索引構(gòu)建方法,該方法能夠滿足以下需求:1)可管理多種業(yè)務(wù)數(shù)據(jù)的索引及大量的索引條目;2)索引查詢操作時(shí)間高效;3)適應(yīng)HBase的分布式存儲(chǔ)結(jié)構(gòu);4)利用云計(jì)算資源管理二級(jí)索引,并保證負(fù)載均衡。
[0005]為了解決上述問(wèn)題,本發(fā)明采用如下技術(shù)方案:
[0006]一種基于標(biāo)識(shí)符空間映射的大數(shù)據(jù)二級(jí)索引構(gòu)建方法,包括以下步驟:
[0007](I)根據(jù)查詢屬性生成索引條目,利用Baton協(xié)議組織索引節(jié)點(diǎn)及索引條目,建立Baton索弓I組織;
[0008](2)查詢操作:數(shù)據(jù)處理節(jié)點(diǎn)在查詢非Rowkey屬性時(shí),將查詢所需數(shù)據(jù)請(qǐng)求發(fā)送給索引節(jié)點(diǎn),索引節(jié)點(diǎn)通過(guò)Baton路由協(xié)議將數(shù)據(jù)檢索請(qǐng)求發(fā)送到需檢索索引條目所在的索引節(jié)點(diǎn),所述索引節(jié)點(diǎn)通過(guò)物理地址獲取所需數(shù)據(jù),并發(fā)送給相應(yīng)的數(shù)據(jù)處理節(jié)點(diǎn)。
[0009]所述步驟(I)中建立索引組織的方法包括:
[0010]a)對(duì)所有的屬性索引統(tǒng)一編號(hào);每一個(gè)屬性索引都由若干索引條目組成,設(shè)e」為索引條目,Ii為屬性索引,則Ii = U {ej};其中,i為屬性索引的編號(hào),j為索引條目編號(hào);
[0011]b)每個(gè)索引條目4都通過(guò)映射函數(shù)映射到標(biāo)識(shí)符空間D的某個(gè)位置;所述標(biāo)識(shí)符空間D為映射函數(shù)的值域范圍;
[0012]c)利用Baton組織索引節(jié)點(diǎn),每個(gè)索引節(jié)點(diǎn)負(fù)責(zé)管理部分標(biāo)識(shí)符空間,所有索引節(jié)點(diǎn)組成一個(gè)關(guān)于標(biāo)識(shí)符空間D的覆蓋網(wǎng)絡(luò),各索引節(jié)點(diǎn)基于Baton組成一個(gè)樹型結(jié)構(gòu);
[0013]d)確定各索引節(jié)點(diǎn)負(fù)責(zé)管理的索引條目,每個(gè)索引節(jié)點(diǎn)利用B+樹存儲(chǔ)自己所負(fù)責(zé)的索引條目;
[0014]e)每個(gè)索引條目指向數(shù)據(jù)存儲(chǔ)物理地址。
[0015]所述Baton協(xié)議為一種利用樹形結(jié)構(gòu)組織對(duì)等網(wǎng)絡(luò)的協(xié)議,所述Baton協(xié)議能夠替換為其他類型的網(wǎng)絡(luò)結(jié)構(gòu)。
[0016]所述索引條目ej由屬性值a」與存儲(chǔ)位置Pj組成,即Pj>,存儲(chǔ)位置Pj指向存儲(chǔ)數(shù)據(jù)記錄的HFile標(biāo)號(hào)及邏輯偏移量。
[0017]所述索引條目&通過(guò)映射函數(shù)映射到標(biāo)識(shí)符空間D的某個(gè)位置的方法為:
[0018]I)將標(biāo)識(shí)符空間D分割為η個(gè)等大小的屬性索引區(qū),屬性索引區(qū)表示為B ;將每個(gè)屬性索引對(duì)應(yīng)存儲(chǔ)到一個(gè)B中;
[0019]2)對(duì)于屬性索引Ii的任意索引條目ej:〈aj,ρ」>,計(jì)算e」在D的位置的方法為:
[0020]Lj = B*i+B* (min+aj) / (max-min) (I)
[0021]其中,Lj是&映射到標(biāo)識(shí)符空間D中的位置,i為屬性索引的編號(hào),max與min分別為屬性值a]可取值的最大值與最小值。
[0022]所述步驟(2)的具體方法為:
[0023]I )對(duì)于一個(gè)查詢命令Q,數(shù)據(jù)處理節(jié)點(diǎn)解析查詢命令Q要使用的屬性索引^及索引條目ej;
[0024]II )選擇任意一個(gè)索引節(jié)點(diǎn)作為入口查詢節(jié)點(diǎn);
[0025]III)計(jì)算索引條目e」在D的位置,根據(jù)Baton路由協(xié)議將查詢命令Q發(fā)送到負(fù)責(zé)索引條目&的索引節(jié)點(diǎn);
[0026]IV)所述索引節(jié)點(diǎn)根據(jù)索引條目ej指向的物理地址,獲得數(shù)據(jù)記錄;所述索引節(jié)點(diǎn)可進(jìn)行并行查詢;
[0027]V)索引節(jié)點(diǎn)將數(shù)據(jù)記錄返回給數(shù)據(jù)處理節(jié)點(diǎn);
[0028]VI)數(shù)據(jù)處理節(jié)點(diǎn)獲得數(shù)據(jù),進(jìn)行查詢處理。
[0029]本發(fā)明有益效果:
[0030](I) 二級(jí)索引構(gòu)建技術(shù)改進(jìn)了 HBase不支持索引構(gòu)建與使用的缺點(diǎn),提高了分析時(shí)常用屬性的數(shù)據(jù)處理效率。
[0031](2)可利用云計(jì)算資源管理大量的屬性索引,滿足大量數(shù)據(jù)分析處理的二級(jí)索引需求。
[0032](3)數(shù)據(jù)的檢索與獲得由索引節(jié)點(diǎn)完成,減輕了數(shù)據(jù)處理節(jié)點(diǎn)的負(fù)擔(dān),提高數(shù)據(jù)處理的效率。
[0033](4)索引條目直接指向記錄的HFiIe標(biāo)號(hào)及邏輯偏移量,適應(yīng)HBase分布式存儲(chǔ)系統(tǒng)。
[0034](5)基于Baton協(xié)議可動(dòng)態(tài)地均衡負(fù)載,節(jié)省節(jié)點(diǎn)資源。
【專利附圖】
【附圖說(shuō)明】
[0035]圖1為本發(fā)明索引框架圖;
[0036]圖2為本發(fā)明索引建立與查詢示意圖;
[0037]圖3為本發(fā)明索引建立流程圖;
[0038]圖4為本發(fā)明索引查詢流程圖。
【具體實(shí)施方式】
[0039]下面結(jié)合附圖與具體實(shí)施例對(duì)本發(fā)明做進(jìn)一步說(shuō)明:
[0040]為提高大數(shù)據(jù)分析處理的效率,提出一種基于標(biāo)識(shí)符空間映射的大數(shù)據(jù)二級(jí)索引構(gòu)建方法。針對(duì)數(shù)據(jù)分析人員常用的查詢屬性,建立二級(jí)索引。索引框架如圖1所示,主要思想為:
[0041]l)HBase索引機(jī)制部署在由N個(gè)索引節(jié)點(diǎn)(IndexServer)組成的對(duì)等網(wǎng)絡(luò),節(jié)點(diǎn)間利用Baton協(xié)議組織。
[0042]2)索引節(jié)點(diǎn)(IndexServer)存儲(chǔ)二級(jí)索引,每個(gè)索引指向數(shù)據(jù)存儲(chǔ)的HFile標(biāo)號(hào)及邏輯偏移量。HFile是數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)(DataNode)的文件存儲(chǔ)單元。
[0043]3)數(shù)據(jù)處理節(jié)點(diǎn)(Reg1nServer)在查詢非Rowkey屬性時(shí),將查詢所需數(shù)據(jù)請(qǐng)求發(fā)送給索引機(jī)制。索引機(jī)制中擁有所需索引條目的索引節(jié)點(diǎn)通過(guò)物理地址取得數(shù)據(jù),并發(fā)送到 Reg1nServer。Reg1nServer 負(fù)責(zé)處理數(shù)據(jù)。
[0044]為方便描述,給出所需的術(shù)語(yǔ)定義。
[0045]定義1:屬性索引為提高查詢效率,在Table某個(gè)屬性建立的鍵值與存儲(chǔ)位置對(duì)應(yīng)關(guān)系的集合稱為屬性索引,表示為Ii, i為屬性索引的編號(hào)。所有Table的屬性索引統(tǒng)一編號(hào),因此每個(gè)屬性索引在系統(tǒng)中有唯一的編號(hào)。一個(gè)屬性索引是由若干索引條目組成的,設(shè)e」為索引條目,則Ii = U {ej,j為索引條目編號(hào)。索引條目是由屬性值a與存儲(chǔ)位置P組成的,即e」=<aj, Pj>。存儲(chǔ)位置Pj指向存儲(chǔ)數(shù)據(jù)記錄的HFile及偏移量。
[0046]定義2:標(biāo)識(shí)符空間所有索引條目通過(guò)一致性哈希映射的值域范圍稱為標(biāo)識(shí)符空間,用D表示。每個(gè)&都通過(guò)映射函數(shù)映射到D的某個(gè)位置,每個(gè)索引節(jié)點(diǎn)都負(fù)責(zé)部分空間范圍并組成一個(gè)關(guān)于D的覆蓋網(wǎng)絡(luò)。因此& 一定會(huì)被某個(gè)索引節(jié)點(diǎn)所管理。
[0047]定義3:索引節(jié)點(diǎn)負(fù)責(zé)管理索引條目的節(jié)點(diǎn)稱為索引節(jié)點(diǎn)。每個(gè)索引節(jié)點(diǎn)負(fù)責(zé)一部分標(biāo)識(shí)符空間,通過(guò)映射函數(shù)落入該部分的索引條目都被此節(jié)點(diǎn)管理與存儲(chǔ)。
[0048]索引方法中二級(jí)索引建立如圖2及圖3所示,查詢的過(guò)程如圖2及圖4所示。
[0049]索引建立步驟為:
[0050]a)對(duì)所有屬性索引統(tǒng)一編號(hào)。
[0051]b)確定每個(gè)索引條目&在標(biāo)識(shí)符空間D的位置。對(duì)于屬性索引Ii的&利用公式⑴映射到D。
[0052]c)利用Baton組織索引節(jié)點(diǎn)及索引條目。一個(gè)索引節(jié)點(diǎn)負(fù)責(zé)管理一定范圍的D,各索引節(jié)點(diǎn)組成一個(gè)樹型結(jié)構(gòu)。每個(gè)索引節(jié)點(diǎn)利用B+樹管理自己所負(fù)責(zé)的索引條目。
[0053]在實(shí)施中,可設(shè)置D的大小為2128,B的大小為296,則可建立232個(gè)屬性索弓丨。若Itl的%的屬性值% = 1,且其max與min值分別為O與296。那么利用公式⑴計(jì)算其在D中的值為I ;若索引節(jié)點(diǎn)a負(fù)責(zé)標(biāo)識(shí)符空間范圍為[0,212°],那么θ(ι被索引節(jié)點(diǎn)a所管理與存儲(chǔ)。以映射后的值加入a的B+樹。
[0054]索引查詢步驟為:
[0055]a)對(duì)于一個(gè)查詢Q, Reg1nServer解析Q要使用的屬性索引及索引條目e」。
[0056]b)選擇任意一個(gè)索引節(jié)點(diǎn)作為入口查詢節(jié)點(diǎn)。
[0057]c)利用函數(shù)⑴計(jì)算e」在D位置,通過(guò)Baton路由協(xié)議將Q發(fā)送到負(fù)責(zé)ej的節(jié)點(diǎn)。
[0058]d)索引節(jié)點(diǎn)根據(jù)索引條目e」指向的物理地址,獲得數(shù)據(jù)記錄。由于Baton支持范圍查詢,所以索引節(jié)點(diǎn)可以并行的查詢。
[0059]e)索引節(jié)點(diǎn)將數(shù)據(jù)記錄返回給Reg1nServer。
[0060]f) Reg1nServer獲得數(shù)據(jù),進(jìn)行查詢處理。
[0061]例如,一個(gè)Reg1nServer需查詢10中屬性值aQ = I的數(shù)據(jù),則通過(guò)公式(I)計(jì)算要檢索的索引條目在D中的值為I ;若索引節(jié)點(diǎn)a管理標(biāo)識(shí)符空間范圍包含1,可根據(jù)Baton路由協(xié)議將查詢指令發(fā)送到索引節(jié)點(diǎn)a ;a節(jié)點(diǎn)在HFile中獲得數(shù)據(jù),并將數(shù)據(jù)返回給 Reg1nServer, Reg1nServer 再處理數(shù)據(jù)。
[0062]提出的二級(jí)索引方法利用索引節(jié)點(diǎn)并行提取數(shù)據(jù),再將數(shù)據(jù)傳輸回Reg1nServer進(jìn)行處理,有效提高了查詢效率。由于是對(duì)等網(wǎng)絡(luò)結(jié)構(gòu),索引機(jī)制可無(wú)限擴(kuò)展,并且在查詢與更新時(shí)可并行處理數(shù)據(jù)。
[0063]上述雖然結(jié)合附圖對(duì)本發(fā)明的【具體實(shí)施方式】進(jìn)行了描述,但并非對(duì)本發(fā)明保護(hù)范圍的限制,所屬領(lǐng)域技術(shù)人員應(yīng)該明白,在本發(fā)明的技術(shù)方案的基礎(chǔ)上,本領(lǐng)域技術(shù)人員不需要付出創(chuàng)造性勞動(dòng)即可做出的各種修改或變形仍在本發(fā)明的保護(hù)范圍以內(nèi)。
【權(quán)利要求】
1.一種基于標(biāo)識(shí)符空間映射的大數(shù)據(jù)二級(jí)索引構(gòu)建方法,其特征是,包括以下步驟: (1)根據(jù)查詢屬性生成索引條目,利用Baton協(xié)議組織索引節(jié)點(diǎn)及索引條目,建立Baton索弓I組織; (2)查詢操作:數(shù)據(jù)處理節(jié)點(diǎn)在查詢非Rowkey屬性時(shí),將查詢所需數(shù)據(jù)請(qǐng)求發(fā)送給索引節(jié)點(diǎn),索引節(jié)點(diǎn)通過(guò)Baton路由協(xié)議將數(shù)據(jù)檢索請(qǐng)求發(fā)送到需檢索索引條目所在的索引節(jié)點(diǎn),所述索引節(jié)點(diǎn)通過(guò)物理地址獲取所需數(shù)據(jù),并發(fā)送給相應(yīng)的數(shù)據(jù)處理節(jié)點(diǎn)。
2.如權(quán)利要求1所述的一種基于標(biāo)識(shí)符空間映射的大數(shù)據(jù)二級(jí)索引構(gòu)建方法,其特征是,所述步驟(I)中建立索引組織的方法包括: a)對(duì)所有的屬性索引統(tǒng)一編號(hào);每一個(gè)屬性索引都由若干索引條目組成,設(shè)為索引條目,Ii為屬性索引,則Ii = U {ej};其中,i為屬性索引的編號(hào),j為索引條目編號(hào); b)每個(gè)索引條目4都通過(guò)映射函數(shù)映射到標(biāo)識(shí)符空間D的某個(gè)位置;所述標(biāo)識(shí)符空間D為映射函數(shù)的值域范圍; c)利用Baton組織索引節(jié)點(diǎn),每個(gè)索引節(jié)點(diǎn)負(fù)責(zé)管理部分標(biāo)識(shí)符空間,所有索引節(jié)點(diǎn)組成一個(gè)關(guān)于標(biāo)識(shí)符空間D的覆蓋網(wǎng)絡(luò),各索引節(jié)點(diǎn)基于Baton組成一個(gè)樹型結(jié)構(gòu); d)確定各索引節(jié)點(diǎn)負(fù)責(zé)管理的索引條目,每個(gè)索引節(jié)點(diǎn)利用B+樹存儲(chǔ)自己所負(fù)責(zé)的索引條目; e)每個(gè)索引條目指向數(shù)據(jù)存儲(chǔ)物理地址。
3.如權(quán)利要求1所述的一種基于標(biāo)識(shí)符空間映射的大數(shù)據(jù)二級(jí)索引構(gòu)建方法,其特征是,所述Baton協(xié)議為一種利用樹形結(jié)構(gòu)組織對(duì)等網(wǎng)絡(luò)的協(xié)議,所述Baton協(xié)議能夠替換為其他類型的網(wǎng)絡(luò)結(jié)構(gòu)。
4.如權(quán)利要求1所述的一種基于標(biāo)識(shí)符空間映射的大數(shù)據(jù)二級(jí)索引構(gòu)建方法,其特征是,所述索引條目e」由屬性值a」與存儲(chǔ)位置Pj組成,即Pj>,存儲(chǔ)位置Pj指向存儲(chǔ)數(shù)據(jù)記錄的HFile標(biāo)號(hào)及邏輯偏移量。
5.如權(quán)利要求1所述的一種基于標(biāo)識(shí)符空間映射的大數(shù)據(jù)二級(jí)索引構(gòu)建方法,其特征是,所述索引條目h通過(guò)映射函數(shù)映射到標(biāo)識(shí)符空間D的某個(gè)位置的方法為: 1)將標(biāo)識(shí)符空間D分割為η個(gè)等大小的屬性索引區(qū),屬性索引區(qū)表示為B;將每個(gè)屬性索引對(duì)應(yīng)存儲(chǔ)到一個(gè)B中; 2)對(duì)于屬性索引Ii的任意索引條目ej:〈aj,ρ」>,計(jì)算e」在D的位置的方法為:
Lj = B*i+B* (min+aj) / (max-min) (I) 其中,Lj是&映射到標(biāo)識(shí)符空間D中的位置,i為屬性索引的編號(hào),max與min分別為屬性值a]可取值的最大值與最小值。
6.如權(quán)利要求1所述的一種基于標(biāo)識(shí)符空間映射的大數(shù)據(jù)二級(jí)索引構(gòu)建方法,其特征是,所述步驟(2)的具體方法為: I)對(duì)于一個(gè)查詢命令Q,數(shù)據(jù)處理節(jié)點(diǎn)解析查詢命令Q要使用的屬性索引Ii及索引條目e」; II)選擇任意一個(gè)索引節(jié)點(diǎn)作為入口查詢節(jié)點(diǎn); III)計(jì)算索引條目6」在D的位置,根據(jù)Baton路由協(xié)議將查詢命令Q發(fā)送到負(fù)責(zé)索引條目&的索引節(jié)點(diǎn); IV)所述索引節(jié)點(diǎn)根據(jù)索引條目ej指向的物理地址,獲得數(shù)據(jù)記錄;所述索引節(jié)點(diǎn)可進(jìn)行并行查詢;V)索引節(jié)點(diǎn)將數(shù)據(jù)記錄返回給數(shù)據(jù)處理節(jié)點(diǎn);VI)數(shù)據(jù)處理節(jié)點(diǎn)獲得數(shù)據(jù),進(jìn)行查詢處理。
【文檔編號(hào)】G06F17/30GK104252528SQ201410449359
【公開日】2014年12月31日 申請(qǐng)日期:2014年9月4日 優(yōu)先權(quán)日:2014年9月4日
【發(fā)明者】馬艷, 郭志紅, 陳玉峰 申請(qǐng)人:國(guó)家電網(wǎng)公司, 國(guó)網(wǎng)山東省電力公司電力科學(xué)研究院