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

HBase二級(jí)索引查詢引擎實(shí)現(xiàn)探討

2018-10-21 09:40:30黃煒耀
科技風(fēng) 2018年32期

黃煒耀

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

關(guān)鍵詞:二級(jí)索引;查詢引擎;HBase

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

1 二級(jí)索引查詢引擎

1.1 什么是二級(jí)索引

關(guān)系型數(shù)據(jù)庫(kù)表的索引分為兩類:主索引(聚集索引)和二級(jí)索引(非聚集索引)。主索引一般對(duì)應(yīng)的是主鍵,而系統(tǒng)可以根據(jù)需要建立多個(gè)二級(jí)索引,輔助與提升查詢性能。基于HBase實(shí)現(xiàn)的二級(jí)索引主數(shù)據(jù)Rowkey相當(dāng)于主索引,而我們擴(kuò)展出來(lái)的索引數(shù)據(jù)既是二級(jí)索引,借助二級(jí)索引可以實(shí)現(xiàn)查詢條件非Rowkey組成部分的查詢需求與提升查詢性能。

1.2 Coprocessor介紹

一個(gè)功能再?gòu)?qiáng)大的系統(tǒng)都不能滿足其所有使用者的一切需求。而Coprocessor就是HBase專門為用戶提供擴(kuò)展功能的一個(gè)途徑。借助Coprocessor,用戶可以根據(jù)自己實(shí)際需求定制出適合自己的功能,并借助HBase現(xiàn)有的框架體系實(shí)現(xiàn)高效運(yùn)行。

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

1.2.1EndPoint

類似于關(guān)系型數(shù)據(jù)庫(kù)的存儲(chǔ)過(guò)程,使用者通過(guò)開(kāi)發(fā)對(duì)應(yīng)的客戶端、服務(wù)端即可,通過(guò)在RegionServer上高效執(zhí)行本地計(jì)算操作。

1.2.2Observer

類似于關(guān)系型數(shù)據(jù)庫(kù)的觸發(fā)器,用戶通過(guò)它可以在服務(wù)端實(shí)現(xiàn)動(dòng)作攔截進(jìn)行特殊處理。

1.3 二級(jí)索引查詢引擎

引擎架構(gòu)圖

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

1.3.1Rowkey設(shè)計(jì)

二級(jí)索引的實(shí)現(xiàn)方案中,Region除了保留客戶端put上來(lái)的主數(shù)據(jù)外,還需保留索引數(shù)據(jù)與主數(shù)據(jù)的對(duì)應(yīng)關(guān)系,為了提升性能需要保證索引數(shù)據(jù)、主數(shù)據(jù)在同Region中,避免出現(xiàn)跨Region讀寫,因此索引數(shù)據(jù)可以參考以下規(guī)則設(shè)計(jì):

Region.startKey.indexName.indexValue.MainRowkey

1.3.2索引構(gòu)造器

解析業(yè)務(wù)數(shù)據(jù),根據(jù)預(yù)先加載的索引信息,從業(yè)務(wù)數(shù)據(jù)中提取索引字段值,并依次生成索引數(shù)據(jù)。

1.3.3查詢決策器

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

indexName1:fieldA

indexName2:fieldA.fieldB

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

此時(shí)查詢決策器根據(jù)最優(yōu)策略選擇indexName2索引進(jìn)行查詢。

1.3.4索引查詢

通過(guò)二級(jí)索引獲取主數(shù)據(jù)的過(guò)程相較傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)并沒(méi)有多少區(qū)別,首先根據(jù)二級(jí)索引字段值找到索引數(shù)據(jù),再通過(guò)索引數(shù)據(jù)獲取主數(shù)據(jù)內(nèi)容。

1.3.5全表掃描

對(duì)于設(shè)置了二級(jí)索引功能屬性的表,Region保留有索引、主數(shù)據(jù),實(shí)際運(yùn)用過(guò)程中索引記錄數(shù)將超過(guò)主數(shù)據(jù),為了提升遍歷業(yè)務(wù)數(shù)據(jù)的效率,須提提供只遍歷主數(shù)據(jù)的功能。

2 結(jié)語(yǔ)

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

參考文獻(xiàn):

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

[2][美]迪米達(dá)克.HBase實(shí)戰(zhàn).出版社:人民郵電出版社.

主站蜘蛛池模板: 亚洲一区二区三区国产精华液| 蜜桃臀无码内射一区二区三区| 日韩福利视频导航| 久久久久久高潮白浆| 无码 在线 在线| 9丨情侣偷在线精品国产| 亚瑟天堂久久一区二区影院| 尤物成AV人片在线观看| 2022国产无码在线| 国产成人精品视频一区二区电影 | 五月天婷婷网亚洲综合在线| 动漫精品啪啪一区二区三区| 欧美亚洲网| 免费在线不卡视频| 国产十八禁在线观看免费| 久久永久免费人妻精品| 麻豆精品在线播放| 国产精品一区在线观看你懂的| 久久青草免费91线频观看不卡| 亚洲中文制服丝袜欧美精品| 久久夜色撩人精品国产| 国产黄在线观看| 毛片手机在线看| 亚洲激情区| 囯产av无码片毛片一级| 国产极品粉嫩小泬免费看| 亚洲高清中文字幕在线看不卡| 中文字幕亚洲另类天堂| 亚洲欧洲日韩久久狠狠爱| 久久国产亚洲偷自| 色综合久久无码网| 国产在线视频导航| 欧美日韩国产高清一区二区三区| 欧美中文字幕在线二区| 国产免费怡红院视频| 亚洲一区网站| 国产精品偷伦视频免费观看国产| www.99精品视频在线播放| 国产在线视频二区| 老司机精品久久| 无码免费视频| 免费看的一级毛片| 久久人人妻人人爽人人卡片av| 国产精品分类视频分类一区| 91免费精品国偷自产在线在线| 国产精品任我爽爆在线播放6080 | 最新国语自产精品视频在| 久久动漫精品| 欧美午夜视频在线| 国产美女久久久久不卡| 亚洲精品少妇熟女| 国产成人欧美| 999国产精品| 久久国产精品影院| 亚洲h视频在线| 国产在线观看99| 一本大道无码日韩精品影视| 久无码久无码av无码| 色噜噜狠狠色综合网图区| 97国内精品久久久久不卡| 成人夜夜嗨| 一本色道久久88综合日韩精品| 亚洲日韩高清在线亚洲专区| 国内熟女少妇一线天| 在线欧美日韩| 国产成人亚洲毛片| 露脸真实国语乱在线观看| 国产女同自拍视频| 日韩视频福利| 精品五夜婷香蕉国产线看观看| 国产肉感大码AV无码| 国产在线一二三区| 中文字幕亚洲电影| 国内精品久久久久久久久久影视| 老司机久久99久久精品播放| 亚洲精品无码高潮喷水A| 亚洲人成网站色7777| 国产原创第一页在线观看| 在线a网站| 毛片网站在线播放| 亚洲国产在一区二区三区| 亚洲综合精品第一页|