HBase多條件篩選查詢方案

2022-07-26 12:00:14 字數 650 閱讀 8977

最近的專案需要使用hbase做實時查詢,由於hbase只支援一級索引,也就是使用rowkey作為索引查詢,所以對於多條件篩選查詢的支援不夠,在不建立二級索引的情況下,只能使用hbase api中提供的各種filter過濾器進行篩選,感覺查詢效率不太理想,於是考慮建立二級索引的方案。

經過google學習網上前輩們的經驗,暫時找到兩種可用的方案:

使用hbase協處理器coprocessor在寫入資料時,建立二級索引表,並將每條資料的索引寫入二級索引表中,查詢時先根據篩選條件查詢二級索引表,獲取相對應的一級索引rowkey,然後根據rowkey去資料表中獲取查詢結果。

使用solr搜尋應用伺服器,在寫入資料時,在solr中建立二級索引(甚至可以建立全文索引),查詢時先根據篩選條件獲取一級索引rowkey的集合,然後根據rowkey去資料表中獲取查詢結果。 

對兩種方案進行了比較發現,第一種方案中存在的問題是無法直接獲取資料記錄總數(要獲取記錄總數,需要在寫入資料時單獨維護乙個計數器,並一直更新記錄總數),對於分頁顯示的需求不容易滿足;而solr伺服器的查詢方式類似於sql語句,支援各種查詢條件過濾、限定查詢範圍、頁數以及直接獲取記錄總數,所以我比較傾向於第二種方案。

關於兩種方案的效率問題,目前還在測試中,後面會陸續寫出第二套方案的詳細部署以及**。

第一次開部落格,先寫這麼多吧,下班!

HBase多條件篩選查詢方案

網上看到的,覺得很有用 摘下來,感謝 最近的專案需要使用hbase做實時查詢,由於hbase只支援一級索引,也就是使用rowkey作為索引查詢,所以對於多條件篩選查詢的支援不夠,在不建立二級索引的情況下,只能使用hbase api中提供的各種filter過濾器進行篩選,感覺查詢效率不太理想,於是考慮...

HBase條件查詢(多條件查詢)

author pirate leo myblog myemail codeevoship gmail.com 文中可能涉及到的api hadoop hdfs hbase begin!hbase的查詢實現只提供兩種方式 1 按指定rowkey獲取唯一一條記錄,get方法 org.apache.hado...

HBase條件查詢(多條件查詢)

author pirate leo myblog myemail codeevoship gmail.com 文中可能涉及到的api hadoop hdfs hbase begin!hbase的查詢實現只提供兩種方式 1 按指定rowkey獲取唯一一條記錄,get方法 org.apache.hado...