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來存儲用戶終端明細數(shù)據(jù),供前臺頁面即時查詢。HBase無可置疑擁有其優(yōu)勢,但其本身只對rowkey支持毫秒級的快速檢索,對于多字段的組合查詢卻無能為力。針對HBase的多條件查詢也有多種方案,但是這些方案要么太復雜,要么效率太低,本文只對基于Solr的HBase多條件查詢方案進行測試和驗證。
?
?
原理
?
?
基于Solr的HBase多條件查詢原理很簡單,將HBase表中涉及條件過濾的字段和rowkey在Solr中建立索引,通過Solr的多條件查詢快速獲得符合過濾條件的rowkey值,拿到這些rowkey之后在HBASE中通過指定rowkey進行查詢。
?
HBase與Solr系統(tǒng)架構設計
?
使用HBase搭建結構數(shù)據(jù)存儲云,用來存儲海量數(shù)據(jù);使用SolrCloud集群用來搭建搜索引擎,將要查找的結構化數(shù)據(jù)的ID查找出來,只配置它存儲ID。?
wd代表用戶write data寫數(shù)據(jù),從用戶提交寫數(shù)據(jù)請求wd1開始,經(jīng)歷wd2,寫入MySQL數(shù)據(jù)庫,或寫入結構數(shù)據(jù)存儲云中,wd3,提交到Solr集群中,從而依據(jù)業(yè)務需求創(chuàng)建索引。
rd代表用戶read data讀數(shù)據(jù),從用戶提交讀數(shù)據(jù)請求rd1開始,經(jīng)歷rd2,直接讀取MySQL中數(shù)據(jù),或向Solr集群請求搜索服務,rd3,向Solr集群請求得到的搜索結果為ID,再向結構數(shù)據(jù)存儲云中通過ID取出數(shù)據(jù),最后返回給用戶結果。
?
實現(xiàn)方法有兩種
?
-
手工編碼,直接用HBASE的API,可以參考下文
http://www.cnblogs.com/chenz/articles/3229997.html
-
可以使用HBASE/Solr的LUNA接口,就不用自己管理兩者。
?
轉載于:https://www.cnblogs.com/davidwang456/p/7457822.html
總結
以上是生活随笔為你收集整理的HBASE+Solr实现详单查询--转的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 流式计算新贵Kafka Stream设计
- 下一篇: 基于Redis实现分布式应用限流--转