999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

HBase二級索引查詢引擎實現探討

2018-10-21 09:40:30黃煒耀
科技風 2018年32期

黃煒耀

摘 要:本文主要對如何基于HBase構建二級索引查詢引擎進行研究探討。首先分析說明了HBase查詢靈活性上存在的問題,接著簡單介紹二級索引的含義,從而引入本文討論的主題,最后給出較詳細的查詢引擎總體架構圖及各核心功能模塊的實現方案。

關鍵詞:二級索引;查詢引擎;HBase

HBase是一個分布式、列式數據庫,因其具有高擴展性、高并發性、穩定性以及數據高安全性等優點,而被大多數分布式系統所使用。但其數據查詢支持上較關系型數據庫就要弱很多,只能通過完整的Rowkey進行get或按前綴模糊scan的方式進行,必要時再輔助以SingleColumnValueFilter、RowFilter、ValueFilter方式進一步對數據進行過濾。為了保證數據查詢的效率,表設計時必須慎重考慮Rowkey的設計,但隨著業務需求的變化,原先的Rowkey信息往往不能滿足需要,此時只能通過降低查詢性能或重新設計Rowkey并對歷史數據重新導入以滿足需求。接下來我們將要介紹的二級索引查詢引擎,可以減小業務需求變化時引起Rowkey設計方案過時引起的查詢問題。

1 二級索引查詢引擎

1.1 什么是二級索引

關系型數據庫表的索引分為兩類:主索引(聚集索引)和二級索引(非聚集索引)。主索引一般對應的是主鍵,而系統可以根據需要建立多個二級索引,輔助與提升查詢性能。基于HBase實現的二級索引主數據Rowkey相當于主索引,而我們擴展出來的索引數據既是二級索引,借助二級索引可以實現查詢條件非Rowkey組成部分的查詢需求與提升查詢性能。

1.2 Coprocessor介紹

一個功能再強大的系統都不能滿足其所有使用者的一切需求。而Coprocessor就是HBase專門為用戶提供擴展功能的一個途徑。借助Coprocessor,用戶可以根據自己實際需求定制出適合自己的功能,并借助HBase現有的框架體系實現高效運行。

Coprocessor功能在0.92版本中引入,其支持兩種協處理器:EndPoint和Observer。

1.2.1EndPoint

類似于關系型數據庫的存儲過程,使用者通過開發對應的客戶端、服務端即可,通過在RegionServer上高效執行本地計算操作。

1.2.2Observer

類似于關系型數據庫的觸發器,用戶通過它可以在服務端實現動作攔截進行特殊處理。

1.3 二級索引查詢引擎

引擎架構圖

從引擎架構圖可以看出,客戶端通過原生的HTable類將數據put至RegionServer(以下簡稱RS),接著RS端Coprocessor的Observer功能對put/delete指令進行攔截,通過索引構造器生成事先配置的索引數據;查詢則通過EndPoint來實現,客戶端通過自定義API設置好查詢條件,并提交到RS端,服務端首先分析客戶端提交的條件信息,通過查詢決策器選擇最優的索引進行查詢。下面我們對關鍵模塊功能實現方案進行分析:

1.3.1Rowkey設計

二級索引的實現方案中,Region除了保留客戶端put上來的主數據外,還需保留索引數據與主數據的對應關系,為了提升性能需要保證索引數據、主數據在同Region中,避免出現跨Region讀寫,因此索引數據可以參考以下規則設計:

Region.startKey.indexName.indexValue.MainRowkey

1.3.2索引構造器

解析業務數據,根據預先加載的索引信息,從業務數據中提取索引字段值,并依次生成索引數據。

1.3.3查詢決策器

根據預先加載的索引信息,從業務數據中提取索引字段,并分析查詢條件,根據策略從已有的索引信息匹配最優的查詢索引,如,某表存在以下兩組索引:

indexName1:fieldA

indexName2:fieldA.fieldB

客戶端提交上來的查詢條件為:fieldA=xxx and fieldB=yyyy and fieldC>=zzz…

此時查詢決策器根據最優策略選擇indexName2索引進行查詢。

1.3.4索引查詢

通過二級索引獲取主數據的過程相較傳統的關系型數據庫并沒有多少區別,首先根據二級索引字段值找到索引數據,再通過索引數據獲取主數據內容。

1.3.5全表掃描

對于設置了二級索引功能屬性的表,Region保留有索引、主數據,實際運用過程中索引記錄數將超過主數據,為了提升遍歷業務數據的效率,須提提供只遍歷主數據的功能。

2 結語

本文首先對HBase的功能進行簡單描述后,重點分析說明HBase在查詢靈活性上存在的問題,從而進入HBase二級索查詢引擎的主題。接著較詳細地說明Coprocessor核心功能與類型,最后給出查詢引擎的架構圖以及各核心功能的實現方案。HBase做為Apache重要的子項目之一,目前比較穩定,并且已有的功能可以滿足大多數系統的需求,借助Coprocessor用戶可以像本文所描述的二級查詢引擎一樣實現屬于自己的功能。

參考文獻:

[1][美]喬治.HBase權威指南.出版社:人民郵電出版社.

[2][美]迪米達克.HBase實戰.出版社:人民郵電出版社.

主站蜘蛛池模板: 久久香蕉国产线看精品| 久久中文字幕av不卡一区二区| 国产精品永久在线| 亚洲婷婷六月| 国产视频只有无码精品| 日韩视频免费| 91精品久久久久久无码人妻| 秋霞午夜国产精品成人片| 国产一区二区三区在线精品专区| 亚洲中文在线看视频一区| 国产真实二区一区在线亚洲| 国产AV无码专区亚洲A∨毛片| 熟妇人妻无乱码中文字幕真矢织江| 激情国产精品一区| 精品少妇人妻无码久久| 久久国产精品麻豆系列| 男女性午夜福利网站| 国产91高清视频| 制服无码网站| 午夜少妇精品视频小电影| 97超爽成人免费视频在线播放| 久久99国产精品成人欧美| 亚洲天堂啪啪| 亚洲欧美在线精品一区二区| 看av免费毛片手机播放| 伊人国产无码高清视频| 日本国产在线| 啊嗯不日本网站| 新SSS无码手机在线观看| 国产精品视频白浆免费视频| 亚洲人成电影在线播放| 欧美翘臀一区二区三区| 91精品啪在线观看国产60岁| 欧美日韩在线第一页| 中文字幕调教一区二区视频| 日韩国产一区二区三区无码| 国产欧美视频综合二区| 国产视频一二三区| 本亚洲精品网站| 亚洲第一视频区| 亚洲日韩Av中文字幕无码| 亚洲三级视频在线观看| 久久综合成人| 色综合中文| 22sihu国产精品视频影视资讯| 久久免费成人| 亚洲国产黄色| 午夜一区二区三区| 欧美国产综合色视频| 欧美伦理一区| 最新国产午夜精品视频成人| 激情无码字幕综合| 国产区福利小视频在线观看尤物| 欧美综合区自拍亚洲综合天堂| 国产99精品久久| 青青草91视频| 亚洲国产亚综合在线区| 狠狠干欧美| 一级毛片网| 999国内精品视频免费| 99久久国产综合精品2023| 国产男人的天堂| 国产一区二区三区免费| 国产超薄肉色丝袜网站| 国产菊爆视频在线观看| 中文字幕在线一区二区在线| 亚洲人成网站18禁动漫无码| 国产高清在线观看91精品| AV不卡在线永久免费观看| 久久久久青草大香线综合精品| 青草视频网站在线观看| 欧美日韩国产一级| 99热这里都是国产精品| 91人人妻人人做人人爽男同| 日韩午夜伦| 特级毛片8级毛片免费观看| 精品国产污污免费网站| 青青极品在线| 精品国产污污免费网站| 日本一本在线视频| 手机在线看片不卡中文字幕| 永久成人无码激情视频免费|