hbase 索引概念 含二級索引

2021-10-20 13:28:12 字數 1443 閱讀 3286

問題

假設:rowkey設計:時間_使用者id

20200101_001

20200101_002

20200102_002

20200103_003

……

根據日期和使用者id

需求:查詢002所有的資料

全表掃瞄

只要查詢的 條件不是rowkey的字首,就只能走全表掃瞄

解決

rowkey              userid          servertime      username ip     url     ……

20200101_001 001

20200101

20200101_002 002

20200101

20200102_002 002

20200102

20200103_003 003

20200103

20200104_004 004

20200104

……

索引表:用於儲存原表的rowkey的

rowkey              source_rk

001_20200101 20200101_001

002_20200101 20200101_002

002_20200102 20200102_002

003_20200103 20200103_003

002_20200101        20200101_002

002_20200102 20200102_002

20200101_002        002

20200101

20200102_002 002

20200102

解決方案

方案二:使用hbase的協處理器來實現方案三:使用第三方工具實現【主要】

你可以用sql寫:create index - 自動幫你建立一張索引表,自動幫你維護資料同步es:elk中的搜尋引擎,可以構建索引

solr:也是搜尋引擎

雜湊原則構建隨機雜湊的rowkey,避免有序的rowkey

長度原則滿足業務需求的情況下,越短越好

列族的設計

列標籤

為什麼要構建二級索引?

Hbase二級索引

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

HBase 實現二級索引

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

HBase二級索引的設計

摘要 最近做的乙個專案涉及到了多條件的組合查詢,資料儲存用的是hbase,恰恰hbase對於這種場景的查詢特別不給力,一般hbase的查詢都是通過rowkey 要把多條件組合查詢的字段都拼接在rowkey中顯然不太可能 或者全表掃瞄再結合過濾器篩選出目標資料 太低效 所以通過設計hbase的二級索引...