国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      HBase非主鍵索引構(gòu)建與查詢方法及其系統(tǒng)的制作方法

      文檔序號(hào):8528184閱讀:911來源:國(guó)知局
      HBase非主鍵索引構(gòu)建與查詢方法及其系統(tǒng)的制作方法【
      技術(shù)領(lǐng)域
      】[0001]本發(fā)明涉及數(shù)據(jù)庫
      技術(shù)領(lǐng)域
      ,具體而言,涉及一種HBase非主鍵索引構(gòu)建與查詢方法及其系統(tǒng)?!?br>背景技術(shù)
      】[0002]HBase是一個(gè)面向列、高可靠、可擴(kuò)展的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng),數(shù)據(jù)以〈key,valueX鍵-值〉的形式存儲(chǔ),其中key稱為行鍵,相當(dāng)于關(guān)系數(shù)據(jù)庫中的主鍵。數(shù)據(jù)會(huì)按照行鍵的字節(jié)字典序有序地組織存儲(chǔ)。HBase數(shù)據(jù)文件存儲(chǔ)在HadoopHDFS(Had〇〇pDistributedFileSystem,分布式文件系統(tǒng))中,以提供良好的可擴(kuò)展性和容錯(cuò)性。行鍵唯一地標(biāo)識(shí)HBase的一行數(shù)據(jù),每行數(shù)據(jù)可以有多個(gè)屬性列,相關(guān)的列可以歸到一個(gè)列簇。列簇是HBase存儲(chǔ)的基本邏輯單元,一行數(shù)據(jù)中同一列簇的數(shù)據(jù)被連續(xù)存放,這就是HBase的列存儲(chǔ)。在物理存儲(chǔ)上,HBase表被橫向分割為多個(gè)Regi〇n,MaSter服務(wù)器會(huì)將多個(gè)Region均衡地分配到不同的Region服務(wù)器上,并且管理Region的分裂和合并,數(shù)據(jù)的橫向劃分為HBase提供了良好的可擴(kuò)展性。[0003]目前,在HBase上檢索數(shù)據(jù)的方法有如下三種:指定單個(gè)行鍵查詢、指定行鍵的范圍查詢、以及掃描(Scan)。HBase以字節(jié)數(shù)組的字典序?qū)π墟I進(jìn)行排序,支持高效的指定行鍵的單點(diǎn)查詢和指定行鍵范圍的范圍查詢。而掃描操作主要用于對(duì)非主鍵數(shù)據(jù)列的查詢,基于行鍵檢索的時(shí)間復(fù)雜性是0(l〇gN),如果使用BloomFilter甚至可以達(dá)到0(1),而掃描操作的時(shí)間復(fù)雜性是〇(N)。[0004]隨著在HBase系統(tǒng)上應(yīng)用的驅(qū)動(dòng),人們發(fā)現(xiàn)單一的通過Rowkey檢索數(shù)據(jù)的方式不能再滿足更多應(yīng)用的需求,人們希望像SQL-樣檢索數(shù)據(jù),例如select*fromtablewherecol=val??墒?,HBase之前的定位是大表的存儲(chǔ),要進(jìn)行這樣的查詢,往往是要通過類似Hive、Pig等系統(tǒng)進(jìn)行全表的MapReduce計(jì)算,這種方式既浪費(fèi)了機(jī)器的計(jì)算資源,又因高延遲使得應(yīng)用黯然失色。所以在HBase的非主鍵屬性上建立索引是迫切的需求。[0005]HBase上的非主鍵查詢采用掃描的方式,數(shù)據(jù)從頭開始逐行掃描,依次檢查每條記錄的查詢屬性是否滿足查詢條件,將滿足查詢條件的結(jié)果集匯總返回。這種方式簡(jiǎn)單低效,難以滿足大數(shù)據(jù)上的實(shí)時(shí)查詢需求。所以,一些企業(yè)和研宄小組陸續(xù)開發(fā)出了面向?qū)嶋H應(yīng)用需求的HBase非主鍵索引,以提高HBase上非主鍵屬性查詢的效率。[0006]總體來說,當(dāng)前HBase非主鍵索引機(jī)制方案按照其基本邏輯結(jié)構(gòu)分為兩類:集中式非主鍵索引與分布式非主鍵索引。[0007]集中式非主鍵索引是集中管理的,它們是傳統(tǒng)單節(jié)點(diǎn)數(shù)據(jù)管理系統(tǒng)中索引結(jié)構(gòu)的直觀擴(kuò)展,不需了解數(shù)據(jù)的真實(shí)分布情況。處理被索引字段上的檢索請(qǐng)求的過程分為兩個(gè)步驟:[0008]首先在全局索引結(jié)構(gòu)中定位含有結(jié)果集的數(shù)據(jù)節(jié)點(diǎn);[0009]然后訪問相應(yīng)的節(jié)點(diǎn)存取索引數(shù)據(jù)。[0010]HBase-indexer是一個(gè)集中式的非主鍵索引方案。通過將HBase的更新數(shù)據(jù)異步發(fā)送到索引服務(wù)器上,在索引服務(wù)器上分析數(shù)據(jù)并生成對(duì)應(yīng)索引數(shù)據(jù),索引服務(wù)器會(huì)定期的將索引數(shù)據(jù)推送到SolrCloud服務(wù)集群上。查詢則通過訪問Solr服務(wù)來定位HBase上的內(nèi)容。這種索引機(jī)制定期的對(duì)索引進(jìn)行更新,索引的時(shí)效性稍差,在面向?qū)崟r(shí)應(yīng)用的時(shí)候,難以有效滿足應(yīng)用需求。[0011]分布式方案沒有維護(hù)全局索引,而是將其局部化到每個(gè)單獨(dú)的計(jì)算節(jié)點(diǎn)上。計(jì)算節(jié)點(diǎn)相互之間不存在依賴關(guān)系,這為檢索請(qǐng)求的并發(fā)執(zhí)行帶來了便利。當(dāng)擁有索引的屬性上的檢索請(qǐng)求到達(dá)時(shí),檢索任務(wù)將被分發(fā)到所有的計(jì)算節(jié)點(diǎn)上并以并發(fā)的方式執(zhí)行。最終的檢索結(jié)果將是所有數(shù)據(jù)節(jié)點(diǎn)上返回結(jié)果的并集。[0012]其中,Hindex是一個(gè)分布式非主鍵索引方案。Hindex通過對(duì)HBase用戶表的每個(gè)Region建立單獨(dú)索引的方式來提高非主鍵查詢的效率。查詢請(qǐng)求發(fā)送到每個(gè)Region服務(wù)器,然后通過Region的索引將需要的數(shù)據(jù)過濾并返回。因?yàn)椴樵冃枰L問所有Region,影響查詢性能,并且Hindex修改了HBase-0.94.8的部分代碼,這給今后對(duì)HBase的版本升級(jí)帶來一定的困難。[0013]另外,分布式方案的節(jié)點(diǎn)之間具有獨(dú)立性,檢索任務(wù)也分配到各節(jié)點(diǎn)中獨(dú)立執(zhí)行,從而,并行計(jì)算資源能夠得到很好地利用。但是,尤其以最常用到的等值條件為代表,由于絕大多數(shù)檢索任務(wù)的目標(biāo)記錄數(shù)量相對(duì)較少,在分布式集群中并行地執(zhí)行該任務(wù)往往造成很多未存儲(chǔ)任何目標(biāo)記錄的計(jì)算節(jié)點(diǎn)也觸發(fā)了檢索過程,而最終將返回空集。在檢索任務(wù)頻繁的情況下,這一并行執(zhí)行過程將會(huì)耗費(fèi)大量的不必要的計(jì)算資源,最終將會(huì)降低系統(tǒng)的吞吐量?!?br/>發(fā)明內(nèi)容】[0014]為了克服現(xiàn)有技術(shù)中分布式非主鍵索引存在的性能浪費(fèi),本發(fā)明的目的在于提供一種HBase非主鍵索引構(gòu)建與查詢方法及其系統(tǒng)。[0015]本發(fā)明采用以下技術(shù)方案實(shí)現(xiàn):[0016]-種HBase非主鍵索引構(gòu)建與查詢方法,包括:[0017]在分布式內(nèi)存和Hbase數(shù)據(jù)表上建立全局非主鍵索引;[0018]識(shí)別針對(duì)非主鍵屬性的查詢,依據(jù)所述全局非主鍵索引定位到相應(yīng)的索引節(jié)點(diǎn),并向含有結(jié)果集的所述索引節(jié)點(diǎn)發(fā)送查詢請(qǐng)求。[0019]優(yōu)選地,在HBase數(shù)據(jù)表上建立全局非主鍵索引,并將其存儲(chǔ)在HBase持久化索引存儲(chǔ)層中。[0020]優(yōu)選地,HBase非主鍵索引構(gòu)建與查詢方法及其裝置。,在分布式內(nèi)存中還存儲(chǔ)熱點(diǎn)非主鍵索引;[0021]在存儲(chǔ)數(shù)據(jù)時(shí),根據(jù)訪問信息標(biāo)記緩存中的熱數(shù)據(jù),并將熱數(shù)據(jù)緩存到基于內(nèi)存的熱點(diǎn)索引緩存層中。[0022]優(yōu)選地,HBase可以為全局非主鍵索引表維護(hù)全局統(tǒng)一的Region劃分,為全局非主鍵索引表提供可擴(kuò)展性和容錯(cuò)性支持。[0023]優(yōu)選地,為HBase數(shù)據(jù)表中待建立索引的非主鍵數(shù)據(jù)列定義如下格式的索引表主鍵:[0024]〈用戶表索引列名,用戶表索引列值,用戶表主鍵〉;[0025]其中,用戶表索引列名是HBase數(shù)據(jù)表中被索引的數(shù)據(jù)列的名稱;[0026]用戶表索引列值是HBase數(shù)據(jù)表中被索引的列的值;[0027]用戶表主鍵是HBase數(shù)據(jù)表中被索引的記錄的主鍵值。[0028]優(yōu)選地,在全局非主鍵索引表中存儲(chǔ)了HBase數(shù)據(jù)表中被頻繁訪問的列值。[0029]優(yōu)選地,將訪問頻度大于一預(yù)定閾值的的索引數(shù)據(jù)作為熱點(diǎn)數(shù)據(jù)緩存在內(nèi)存中。[0030]優(yōu)選地,熱點(diǎn)非主鍵索引的主鍵格式為:[0031]〈用戶表索引列名,用戶表索引列值〉;[0032]其中,用戶表索引列名是HBase數(shù)據(jù)表中被索引的數(shù)據(jù)列的名稱;[0033]用戶表索引列值是HBase數(shù)據(jù)表中被索引的列的值;[0034]優(yōu)選地,利用一致性哈希來完成熱點(diǎn)數(shù)據(jù)在分布式內(nèi)存中的存儲(chǔ)管理。[0035]一種HBase非主鍵索引構(gòu)建與查詢系統(tǒng),包括:[0036]索引構(gòu)建管理模塊,用于在分布式內(nèi)存和Hbase數(shù)據(jù)表上建立全局非主鍵索引;[0037]持久化存儲(chǔ)管理模塊,用于持久化存儲(chǔ)所述全局非主鍵索引;[0038]查詢執(zhí)行引擎,用于識(shí)別針對(duì)非主鍵屬性的查詢,依據(jù)所述全局非主鍵索引定位到相應(yīng)的索引節(jié)點(diǎn),并向含有結(jié)果集的所述索引節(jié)點(diǎn)發(fā)送查詢請(qǐng)求。[0039]優(yōu)選地,所述的HBase非主鍵索引構(gòu)建與查詢系統(tǒng)還包括:[0040]索引內(nèi)存緩存模塊,用于根據(jù)訪問信息標(biāo)記緩存中的熱數(shù)據(jù),并將熱數(shù)據(jù)緩存到基于內(nèi)存的熱點(diǎn)索引緩存層中。[0041]優(yōu)選地,所述索引構(gòu)建管理模塊利用HBase提供的Coprocessor接口實(shí)現(xiàn)對(duì)于流式數(shù)據(jù)的索引構(gòu)建。[0042]優(yōu)選地,所述索引構(gòu)建管理模塊利用HadoopMapReduce程序來并行化執(zhí)行靜態(tài)數(shù)據(jù)的索引構(gòu)建。[0043]采用本發(fā)明,通過在分布式內(nèi)存和Hbase數(shù)據(jù)表上建立全局非主鍵索引,以及在識(shí)別針對(duì)非主鍵屬性的查詢時(shí),依據(jù)所述全局非主鍵索引定位到相應(yīng)的索引節(jié)點(diǎn),并向含有結(jié)果集的所述索引節(jié)點(diǎn)發(fā)送查詢請(qǐng)求,保證不含有結(jié)果集的節(jié)點(diǎn)不參加查詢,從而避免了現(xiàn)有技術(shù)中分布式非主鍵索引存在的性能浪費(fèi)的問題。提高了HBase上大數(shù)據(jù)非主鍵屬性的查詢性能,實(shí)現(xiàn)了為HBase提供非主鍵屬性上的實(shí)時(shí)查詢的能力?!靖綀D說明】[0044]圖1為本實(shí)施例中非主鍵索引存儲(chǔ)和查詢模型示意圖;[0045]圖2為本實(shí)施例中基于一致性哈希的分布式索引內(nèi)存緩存存儲(chǔ)機(jī)制示意圖;[0046]圖3為本實(shí)施例中HBase非主鍵索引構(gòu)建與查詢系統(tǒng)功能模塊示意圖;[0047]圖4為本實(shí)施例中當(dāng)前第1頁1 2 3 
      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1