hbase 爲什麼查詢比較快


第一、數據分區存儲(region)

  通過rowkey可以快速地位到在那個region上,位置信息保存在hbase的meta表裏。

 每次查詢都會有location cache的,所以htable裏面的Hconnection 初始化的時候訪問速度相對來說稍慢,客戶端緩存截圖如下。

 隨着數據越來越大,meta表的查詢有可能遇到瓶頸,建議單獨獨立出成一個meta server。

(備註:一個meta表的一條記錄大概爲1k)。

 

第二、hbase的數據格式 HFile V2 (HFile V1代碼已經出hbase版本刪除了)




B、查詢數據block的次數和HFile內部數據分開+索引分塊


   

1、bloomfilter改進查找次數

2、hbase的三維順序,按照rowkey,column,ts進行排序,rowkey和column是升序,

ts是降序

3、對於一次隨機讀block的訪問順序是bloomblock(多次) 、indexblock(1次) 、datablock(1次)

        分塊+分級索引(RootDataIndex、 IntermediateLevel ROOT INDEX 【備選如果HFile size 過大,就啓用】、Leaf index block)

   bloom filter介紹:



另外hbase各種過濾器在我們查詢中用到,大家瞭解下的:

   1、Comparision Filters
     1.1  RowFilter
1.2 FamilyFilter
     1.3 QualifierFilter
     1.4 ValueFilter
     1.5 DependentColumnFilter
2、Dedicated Filters
     2.1 SingleColumnValueFilter
     2.2 SingleColumnValueExcludeFilter
     2.3 PrefixFilter
     2.4 PageFilter
     2.5 KeyOnlyFilter
     2.6 FirstKeyOnlyFilter
     2.7 TimestampsFilter
     2.8 RandomRowFilter
3、Decorating Filters
     3.1  SkipFilter
     3.2 WhileMatchFilters

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章