HBASE+Solr实现详单查询--转
原文地址:https://mp.weixin.qq.com/s?srcid=0831kfMZgtx1sQbzulgeIETs&scene=23&mid=2663994161&sn=cee222a8534cbc6e28c401706e979dc0&idx=1&__biz=MzA3ODUxMzQxMA%3D%3D&chksm=847c675cb30bee4a5c4e9a03a41662ba6f312d4ba28407311a80c4a36f3f93a4bb624ada50e5&mpshare=1#rd
最近群里面討論HBASE的使用場景,以及是會沒落,這個還真是一句話說不清楚。本文講其中一個場景:詳單查詢。
?
?
背景
?
?
某電信項目中采用HBase來存儲用戶終端明細數據,供前臺頁面即時查詢。HBase無可置疑擁有其優勢,但其本身只對rowkey支持毫秒級的快速檢索,對于多字段的組合查詢卻無能為力。針對HBase的多條件查詢也有多種方案,但是這些方案要么太復雜,要么效率太低,本文只對基于Solr的HBase多條件查詢方案進行測試和驗證。
?
?
原理
?
?
基于Solr的HBase多條件查詢原理很簡單,將HBase表中涉及條件過濾的字段和rowkey在Solr中建立索引,通過Solr的多條件查詢快速獲得符合過濾條件的rowkey值,拿到這些rowkey之后在HBASE中通過指定rowkey進行查詢。
?
HBase與Solr系統架構設計
?
使用HBase搭建結構數據存儲云,用來存儲海量數據;使用SolrCloud集群用來搭建搜索引擎,將要查找的結構化數據的ID查找出來,只配置它存儲ID。?
wd代表用戶write data寫數據,從用戶提交寫數據請求wd1開始,經歷wd2,寫入MySQL數據庫,或寫入結構數據存儲云中,wd3,提交到Solr集群中,從而依據業務需求創建索引。
rd代表用戶read data讀數據,從用戶提交讀數據請求rd1開始,經歷rd2,直接讀取MySQL中數據,或向Solr集群請求搜索服務,rd3,向Solr集群請求得到的搜索結果為ID,再向結構數據存儲云中通過ID取出數據,最后返回給用戶結果。
?
實現方法有兩種
?
-
手工編碼,直接用HBASE的API,可以參考下文
http://www.cnblogs.com/chenz/articles/3229997.html
-
可以使用HBASE/Solr的LUNA接口,就不用自己管理兩者。
?
轉載于:https://www.cnblogs.com/davidwang456/p/7457822.html
總結
以上是生活随笔為你收集整理的HBASE+Solr实现详单查询--转的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 流式计算新贵Kafka Stream设计
- 下一篇: java实现sql批量插入参数