【技术实现步骤摘要】
基于HBase的索引系统及查询加速方法
本专利技术涉及HBase数据库技术,特别是一种基于HBase的索引系统及查询加速方法。
技术介绍
ApacheHBase是一个高可靠、高性能、面向列、可伸缩的、开源的非关系型分布式数据库(简称HBase数据库或HBase),主要用来存储非结构化和半结构化的松散数据,可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和数百万列元素组成的数据表。HBase本身提供基于全表扫描的查询,同时也提供基于行键(类似于关系数据库中表的主键)的查询。但在实际应用场景中,数据的查询条件往往是比较复杂的,对于复杂查询条件的处理,在HBase中只能通过全表扫描的方式来对数据进行检索,即对表中的全部数据进行逐行比对和过滤,随着数据量的增加,对数据查询检索的代价会越来越大,无法满足正常的数据检索需求。为了利用或开发HBase的数据资源,现有技术中出现了基于MapReduce批处理方式的HBase二级索引,借助第三方Solr引擎预先创建的HBase二级索引,这两种HBase二级索引实际上是将二级索引 ...
【技术保护点】
1.基于HBase的索引系统,包括HBase服务端和与所述HBase服务端相适配的客户端程序,其特征在于,所述HBase服务端包括与HBase表分别互连的索引元信息装置、数据读取模块、数据写入模块、索引构建模块和表管理模块,所述数据读取模块连接所述客户端程序以进行数据读取,所述数据写入模块连接所述客户端程序以进行数据写入,所述索引构建模块连接所述客户端程序以构建索引,所述表管理模块连接所述客户端程序以进行表的创建和管理;所述HBase表包括业务数据列族和为所述业务数据列族下的一个业务数据列建立索引的索引数据列族,所述索引数据列族下设置有索引列,所述索引列对应的所述HBase ...
【技术特征摘要】
1.基于HBase的索引系统,包括HBase服务端和与所述HBase服务端相适配的客户端程序,其特征在于,所述HBase服务端包括与HBase表分别互连的索引元信息装置、数据读取模块、数据写入模块、索引构建模块和表管理模块,所述数据读取模块连接所述客户端程序以进行数据读取,所述数据写入模块连接所述客户端程序以进行数据写入,所述索引构建模块连接所述客户端程序以构建索引,所述表管理模块连接所述客户端程序以进行表的创建和管理;所述HBase表包括业务数据列族和为所述业务数据列族下的一个业务数据列建立索引的索引数据列族,所述索引数据列族下设置有索引列,所述索引列对应的所述HBase表的行键列下写入索引列行键值,所述索引列行键值包括被索引的业务数据列列值及其业务数据列行键值,所述业务数据列行键值位于所述业务数据列列值之后。
2.根据权利要求1所述的基于HBase的索引系统,其特征在于,所述数据写入模块和所述索引构建模块用于构建普通索引、唯一索引、函数索引、覆盖索引和/或复合索引;所述数据读取模块利用已构建的普通索引、唯一索引、函数索引、覆盖索引和/或复合索引加速数据读取。
3.根据权利要求1所述的基于HBase的索引系统,其特征在于,所述数据写入模块和所述数据读取模块均利用HBase的协处理器机制对所述HBase表的数据读写操作进行拦截,所述数据写入模块针对被拦截到的写请求内容根据所述索引元信息装置中的索引元信息自动启动在所述HBase表内构建索引的数据写入流程,所述数据读取模块针对被拦截到的读请求内容根据所述索引元信息装置中的索引元信息自动启动利用所述索引列行键值有序性在所述HBase表内对被索引业务数据列进行查询的数据读取流程。
4.根据权利要求1所述的基于HBase的索引系统,其特征在于,所述索引列行键值均包括一个相同的前缀,所述前缀使得全部索引列行键值自动聚合成所述HBase表内的索引数据区以从排序上与由业务数据列行键值形成的业务数据区始终保持有分隔线;在所述HBase表内所述索引数据区位于所述业务数据区的上方,所述索引列行键值中的所述业务数据列行键值用于索引检索后的回表检索。
5.根据权利要求1所述的基于HBase的索引系统,其特征在于,所述HBase服务端包括HBase表拆分模块,所述HBase表拆分模块在拆分过程中屏蔽索引数据对拆分过程的影响,使索引数据区不参与拆分点计算,使处于同一个表分区中的业务数据区和索引数据区在依据业务数据列行键值拆分点拆分成上半区和下半区时始终按照实际的业务数据来拆分,所述索引数据区随所述业务数据区的拆分而拆分,将索引数据列行键值中所包含的业务数据列行键值小于拆分点的归属于上半区,不修改键值;将索引数据列行键值中所包含的业务数据列行键值等于或大于拆分点的归属于下半区,并修改键值。
6.一种内置索引列族的HBase表,其特征在于,在同一个HBase表内包括业务数据列族和为所述业务数据列族下的一个业务数据列建立索引的索引数据列族,所述索引数据列族下设置有索引列,所述索引列对应的所述HBase表的行键列下写入索引列行键值,所述索引列行键值包括被索引的业务数据列列值及其业务数据列行键值,所述业务数据列行键值位于所述业务数据列列值之后,所述索引列行键值均包括一个相同的前缀,所述前缀使得全部索引列行键值自动聚合成所述HBase表内的索引数据区以从排序上与由业务数据列行键值形成的业务数据区始终保持有分隔线,在所述HBase表内所述索引数据区位于所述业务数据区的上方,所述索引列行键值中的所述业务数据列行键值用于索引检索后的回表检索。
7.一种内置索引列族的HBase表构建方法,其特征在于,包括HBase服务端和与所述HBase服务端相适配的客户端程序,在所述客户端程序对所述HBase服务端中HBase表的写请求路径上设置有第一协处理器,所述第一协处理器拦截到...
【专利技术属性】
技术研发人员:赵欣,
申请(专利权)人:深圳市赢时胜信息技术股份有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。