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