HBASE+Solr实现详单查询

最近群里面讨论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接口,就不用自己管理两者。

原文发布于微信公众号 - 大数据和云计算技术(jiezhu2007)

原文发表时间:2017-08-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java架构师学习

解决微服务profile遇到的问题1. profile之Maven2. profile之Spring boot3. config server的配置4. 总结

最近遇到Spring-boot的多个profile切换问题,需求是这样的:微服务中引入了Spring Cloud Config,服务启动的时候,从Config ...

4646
来自专栏AI星球

Java Web 从入门到"改行"(1)--基础准备

首先,说明一下,这是一篇关于 Java Web 基础入门的文章,上学期开始学习 Java Web ,看了不少有关 「XXX从入门到精通」的书籍,近期,要帮着导师...

1222
来自专栏翻译

在Ubuntu 14.04/14.10上搭建Minecraft Spigot服务器

本文介绍了如何在Ubuntu 14.04 / 14.10上搭建自己的Minecraft服务器,搭建一个让我们可以与朋友远程开黑的私服,甚至是搭建一个几百人的公共...

3093
来自专栏FreeBuf

SUpraudit:一款MacOS上的日志审计工具

你可能对BSM审计有所了解,也可能完全没有听说过。这是Solaris OS遗留下来的产物,它存在于FreeBSD,Linux,当然还包括MacOS上。在我的*O...

1674
来自专栏编程微刊

如何运行vue项目(维护他人的项目)

前提: 首先,这个教程主要针对vue小白,并且不知道安装node.js环境的。言归正传,下面开始教程:在维护项目之前,需要把所有的环境搭建好,这里我就不多说了...

1142
来自专栏desperate633

Java NIO之NIO与传统IO的区别I/ONIO小结

I/O ? 或者输入/输出 ? 指的是计算机与外部世界或者一个程序与计算机的其余部分的之间的接口。它对于任何计算机系统都非常关键,因而所有 I/O 的主体实际上...

861
来自专栏猿天地

Spring Cloud 如何选择分布式配置中心

微服务必备的几样武器有了,才能独闯武林, 有哪几样呢? 注册中心(eureka, consul, zk, etcd) 配置中心 (Spring Cloud Co...

44411
来自专栏更流畅、简洁的软件开发方式

【自然框架】——Demo的源代码下载(2009-11-2更新)

 最新下载地址:自然框架的源代码、Demo、数据库、配置信息管理程序下载(2010.01.25更新) 数据库是SQLServer2005的,下载解压后附加数据...

2187
来自专栏BestSDK

使用 JS 构建跨平台的原生应用(一):React Native for Android 初探

Facebook 于 2015 年 9 月 15 日推出 React Native for Android 版本。相比起 for iOS,for Android...

2335
来自专栏Linyb极客之路

下单接口调优实战,性能提高10倍

最近公司的下单接口有些慢,老板担心无法支撑双11,想让我优化一把,但是前提是不允许大改,因为下单接口太复杂了,如果改动太大,怕有风险。另外开发成本和测试成本也非...

772

扫码关注云+社区

领取腾讯云代金券