400 028 6601

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

HBase二级索引的解决方法

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

创新互联建站10多年企业网站制作服务;为您提供网站建设,网站制作,网页设计及高端网站定制服务,企业网站制作及推广,对墙体彩绘等多个行业拥有多年的网站营销经验的网站建设公司。

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


标题名称:HBase二级索引的解决方法
转载来于:http://mbwzsj.com/article/jospij.html

其他资讯

让你的专属顾问为你服务