HBase二级索引查询引擎实现探讨

2018-10-21 09:40:30黄炜耀
科技风 2018年32期

黄炜耀

摘 要:本文主要对如何基于HBase构建二级索引查询引擎进行研究探讨。首先分析说明了HBase查询灵活性上存在的问题,接着简单介绍二级索引的含义,从而引入本文讨论的主题,最后给出较详细的查询引擎总体架构图及各核心功能模块的实现方案。

关键词:二级索引;查询引擎;HBase

HBase是一个分布式、列式数据库,因其具有高扩展性、高并发性、稳定性以及数据高安全性等优点,而被大多数分布式系统所使用。但其数据查询支持上较关系型数据库就要弱很多,只能通过完整的Rowkey进行get或按前缀模糊scan的方式进行,必要时再辅助以SingleColumnValueFilter、RowFilter、ValueFilter方式进一步对数据进行过滤。为了保证数据查询的效率,表设计时必须慎重考虑Rowkey的设计,但随着业务需求的变化,原先的Rowkey信息往往不能满足需要,此时只能通过降低查询性能或重新设计Rowkey并对历史数据重新导入以满足需求。接下來我们将要介绍的二级索引查询引擎,可以减小业务需求变化时引起Rowkey设计方案过时引起的查询问题。

1 二级索引查询引擎

1.1 什么是二级索引

关系型数据库表的索引分为两类:主索引(聚集索引)和二级索引(非聚集索引)。主索引一般对应的是主键,而系统可以根据需要建立多个二级索引,辅助与提升查询性能。基于HBase实现的二级索引主数据Rowkey相当于主索引,而我们扩展出来的索引数据既是二级索引,借助二级索引可以实现查询条件非Rowkey组成部分的查询需求与提升查询性能。

1.2 Coprocessor介绍

一个功能再强大的系统都不能满足其所有使用者的一切需求。……

登录APP查看全文