360HBase二級索引方案學習總結

2021-07-05 18:43:20 字數 1885 閱讀 9838

在今年的北京qcon大會上,360公司的系統部技術經理趙健博在演講中公布了360公司的hbase二級索引方案,這一方案的提出將比華為hbase二級索引更好的解決了hbase的多維實時查詢問題。它的核心思想是保證了索引和資料在同一region上,減少了io通訊,提公升了hbase的讀效能,並且無非修改hbase原始碼,實現更加簡單。

經過自己對其一段時間的學習和研究,列出一些總結如下:

1、設計思想

索引的思想依然是倒排索引的思想,即將需要查詢的列作為索引資料的rokwey,查詢列所在記錄的rowkey作為索引資料的value。

2、索引設計

該方案是將索引與資料放在了同乙個region的不同family裡。

索引的rowkey首字段是region的startkey,它保證了索引和資料在同乙個region裡,接下來是索引的型別index,然後是建索引的列,最後是該列所在的記錄的rowkey,索引的value是用來解析索引rowkey的反序列化資訊。

3、寫路徑

幾乎沒變化。寫資料時,先看索引說明裡,看哪些列需要建索引,然後給這些列建立索引,將索引和資料都放在同乙個put物件中。

4、讀路徑

先需要建立乙個scanner,這裡擴充套件了scanner物件,下面的乙個框圖代表乙個region。查詢時先通過查詢條件建立一棵檢索樹,然後通過檢索樹去找rowkey,最後通過rowkey去原表seek資料。

針對索引,產生一次**後,第乙個daughter沒有任何變化資訊,第二個daughter的索引rowkey需要變更一下。

6、與華為hbase二級索引方案的比較

7、效能

7.1  單併發寫入效能

寫代價的損失很小。

7.2  檢索效能資料

Hbase二級索引

hbase的查詢都是通過rowkey 要把多條件組合查詢的字段都拼接在rowkey中顯然不太可能 或者全表掃瞄再結合過濾器篩選出目標資料 太低效 所以通過設計hbase的二級索引來解決這個問題。多個查詢條件構成了多維度的組合查詢,需要根據不同組合查詢出符合條件的資料。例如 按照電影維度查詢資料適合,...

HBase 實現二級索引

使用整合mapreduce的方式建立hbase索引。主要的流程如下 1.11.2 獲取rowkey和指定欄位名稱和字段值 1.3建立put例項,value rowkey,rowkey columnname columnvalue 1.4使用identitytablereducer將資料寫入索引表 類...

hbase 索引概念 含二級索引

問題 假設 rowkey設計 時間 使用者id 20200101 001 20200101 002 20200102 002 20200103 003 根據日期和使用者id 需求 查詢002所有的資料 全表掃瞄 只要查詢的 條件不是rowkey的字首,就只能走全表掃瞄 解決 rowkey useri...