原文地址: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接口,就不用自己管理两者。

最新文章

  1. spring事务管理器设计思想(一)
  2. 使用对话框 —— Dialog
  3. mac终端显示和隐藏隐藏文件的命令
  4. Mac iTerm with Powerline
  5. 仿知乎程序 fragment的切换以及toolbar在不同页面下显示的menu不同
  6. codevs 1080 线段树练习
  7. Android 如何解决数据库多线程锁的问题
  8. Jmeter组件2. Timer 定时器
  9. [BZOJ1067][SCOI2007]降雨量
  10. [Oracle] - 性能优化工具(2) - ASH
  11. 配置 dovecat 的 PAM
  12. matlab mex入门简介
  13. Flexbox属性查询列表
  14. 论山寨手机与Android 【15】结束语
  15. PICC国际标准ISO14443下载
  16. 辛星PHP教程之yii和ci教程已经写完,望与朋友们交流
  17. 一步操作配置Word环境
  18. Android快速实现上传项目到Github
  19. Python之旅_计算机基础入门
  20. webpack4.0各个击破(1)—— html部分

热门文章

  1. 20145226夏艺华 《Java程序设计》第2周学习总结
  2. sort与qsort的异同
  3. zedboard学习(1)OLED驱动显示图像
  4. 用php实现简单的自制计算器
  5. KEIL5的安装
  6. 详细讲解 A/B 测试关键步骤,快来检查下还有哪些疏漏的知识点
  7. sql server 批量备份数据库
  8. 测试类异常Manual close is not allowed over a Spring managed SqlSession
  9. 关闭会声会影2018提示UEIP.dll找不到指定模块
  10. 该用哪个:Redis与Memcached之间如何选择呢?