HBase二级索引的解决方法

发布时间:2021-12-06 09:32:54 作者:柒染
来源:亿速云 阅读:265

这篇文章将为大家详细讲解有关HBase二级索引的解决方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

HBase一个令人惋惜的地方,就是不支持二级索引。因此,社区有了很多补充方案来填补HBase的二级索引能力的缺陷。

今天,我们就来看看有哪些二级索引方案,通过对比各个方案的优缺点,并结合我们的具体场景做出二级索引方案选型。

1.为什么需要二级索引

HBase系统单纯从解决大数据实时读写问题角度出发,重点关注于分布式存储的扩展性、容错性、读写性能等方面,为此也牺牲了很多传统关系型数据库的功能,比如事务,SQL表达与分析等。

实际上,这是NoSQL最初的含义,以解决大数据的实时存取为首要目标,提供简单的Get,Put,Scan接口,解决用户的大数据量存储的需求。因此,HBase完全是一个非常优秀的大数据实时存取引擎,解决了传统数据库的容量问题。

就目前官方的HBase系统来说,并不支持二级索引,只有rowkey作为一级索引, 如果要对库里的非rowkey字段进行数据检索和查询, 往往要通过MapReduce/Spark等分布式计算框架进行,硬件资源消耗和时间延迟都会比较高。

为了HBase的数据查询更高效、适应更多的场景, 诸如使用非rowkey字段检索也能做到秒级响应,或者支持各个字段进行模糊查询和多字段组合查询等, 因此需要在原生HBase基础上构建二级索引, 以满足现实中更复杂多样的业务需求。一般有以下三类方案:

2.如何选择二级索引方案

我们从读写性能、使用限制、学习成本、社区活跃等角度,对三类方案做对比。

基于HBase的Coprocessor的方案(典型代表phoenix)

云厂商自研的二级索引(典型代表阿里云自研增强版二级索引)

基于搜索平台的二级索引方案(以Solr为例)

总结一下(特别重要的技术选型策略):

一般来说,为了满足实时需求,我们会使用phoenix。

3.简单了解下phoenix

为了让HBase更强大,更好用,门槛更低,让HBase帮助更多的用户解决他们遇到的实际问题。于是,phoenix带着SQL诞生了。众所周知,SQL是数据处理领域的语言标准,简单,好用,表达力强,用户使用广泛。当然,HBase SQL的实现和发展跟传统单机数据库有很多不同,便于区别,我们称之为NewSQL。这也是社区尝试HBase二级索引的初衷,如果说HBase是功能强大的存储引擎,那么支持NewSQL之后,就变成了新一代的大飞机。

Phoenix作为应用层和HBASE之间的中间件,以下特性使它在大数据量的简单查询场景有着独有的优势

关于HBase二级索引的解决方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

推荐阅读:
  1. HBASE二级索引
  2. Hbase的安装,Hbase shell 以及测试代码

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

hbase

上一篇:Hibernate load方法产生异常怎么解决

下一篇:Hibernate一级缓存怎么使用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》