HBase二级索引存储和查询系统及其查询方法

文档序号:9453159阅读:510来源:国知局
HBase二级索引存储和查询系统及其查询方法
【技术领域】
[0001] 本发明涉及数据处理技术领域,尤其涉及HBase二级索引存储和查询系统及其查 询方法。
【背景技术】
[0002] 随着大数据技术的发展和应用,HBase逐渐成为业界广泛使用的NoSQL分布式存 储系统,它具有高可靠、面向列、开源等特点,已被Facebook、阿里巴巴等公司成功用于生产 系统。如何对HBase进行高效的二级索引存储、查询是业界研究的热点,目前被广泛使用的 方案架构如图3所示,该方案主要包含三个模块:HBase存储模块、查询处理模块、查询执行 引擎三部分。HBase存储模块负责原始数据和索引数据的存储,具有分布式、大容量、快速响 应的特点,类似的海量存储系统也都可以用于作为存储模块,例如HyperTable( -种以C语 言开发的分布式列存储结构的大容量数据存储系统),从存储的角度看,现有方案是将数据 表存储于低速存储介质(如SATA盘)用于存储完整数据;对数据表的不同索引分别形成索 引表,存储于SATA硬盘,并且索引表按照业务需求冗余过滤列。查询处理模块收到客户端 下发的查询请求,从查询请求中获取查询条件,检查查询条件是否含有非法条件、错误条件 等。如果查询条件合法,则将该查询条件发给查询执行引擎;如果查询条件非法,则将错误 信息返回给客户端。查询执行引擎收到合法的查询条件时,根据合法的查询条件找出可查 的数据表或索引表,然后将合法的查询条件转换为HBase可处理的查询请求,执行查询。
[0003] 现有的二级索引存储、查询方案需要在数据表的每个索引表中冗余过滤列,数据 冗余较大;进行查询时,如果索引表未包含查询条件中所有的过滤条件,则该索引表不可 查,如果所有的索引表都不可查,则需要使用查询条件构造过滤器,对数据表进行全表扫 描,效率极低。

【发明内容】

[0004] 本发明的目的是克服现有技术存在的缺陷,提供一种提高查询效率的HBase二级 索引存储和查询系统及其查询方法。
[0005] 实现本发明目的的技术方案是:HBase二级索引存储和查询系统,包括客户端、查 询处理模块、查询执行引擎模块和HBase存储模块,查询处理模块收到客户端下发的查询 请求,查询处理模块从查询请求中获取查询条件,查询处理模块将合法的查询条件发送给 查询执行引擎模块,查询执行引擎模块匹配查询条件,从HBase存储模块中找出满足要求 的数据,HBase存储模块分别存储索引表和数据表,索引表存储在SATA硬盘上,数据表存储 在SSD固态硬盘上。
[0006] 作为本发明的优化方案,查询执行引擎模块包括匹配模块和查询模块,匹配模块 用于找出合法的查询条件需要查询的索引表或数据表,查询模块用于在匹配模块匹配成功 后,将合法的查询条件转换为HBase存储模块可以处理的查询条件并执行查询过程。
[0007] -种利用HBase二级索引存储和查询系统进行查询的方法,包括如下步骤:
[0008] 1)查询处理模块接收客户端下发的查询请求;
[0009] 2)查询处理模块从查询请求中获取查询条件,查询处理模块将合法的查询条件发 送给查询执行引擎模块进行处理;
[0010] 3)查询执行引擎模块将合法的查询条件与索引表的rowkey匹配,判断是否能匹 配到索引表;
[0011] 4)查询执行引擎模块匹配到索引表,然后查询执行引擎模块判断索引表中是否包 含与合法的查询条件对应的所有的过滤条件;
[0012] 5)索引表中未包含与合法的查询条件对应的所有的过滤条件,使用索引表的列构 造过滤器,对索引表进行scan,得到数据表的rowkey;
[0013] 6)使用合法的查询条件构造过滤器,使用步骤5)得到的rowkey对数据表进行精 确get;
[0014] 7)返回查询结果给客户端。
[0015] 作为本发明的优化方案,索引表中包含与合法的查询条件对应的所有的过滤条 件,使用合法的查询条件构造过滤器,对索引表进行scan,获取数据表的rowkey,使用得到 的rowkey对数据表进行精确get。
[0016] 本发明具有积极的效果:(1)本发明将数据表存储在SSD固态硬盘,相较于传统的 SATA硬盘,数据读写速度快,大大的提高了查询效率;
[0017] (2)现有方案中,当查询条件和索引表的rowkey匹配,但是索引表未包含全部的 过滤条件时,需要对数据表进行全表扫描,效率较低,本发明优化了匹配逻辑,当出现这样 的情况时,可以使用索引表中包含的过滤列条件作为过滤器,对索引表进行scan,得到数据 表的rowkey;再使用查询条件作为过滤器,使用rowkey对数据表进行精确get,得到查询结 果,减少了对数据表的全表扫描,大大提高了查询效率。
【附图说明】
[0018] 为了使本发明的内容更容易被清楚地理解,下面根据具体实施例并结合附图,对 本发明作进一步详细的说明,其中:
[0019] 图1是本发明的原理框图;
[0020] 图2是本发明查询方法的流程图;
[0021] 图3是本发明现有技术的原理框图。
[0022] 其中,1、客户端,2、查询处理模块,3、查询执行引擎模块,4、HBase存储模块,31、匹 配模块,32、查询模块,41、索引表,42、数据表。
【具体实施方式】
[0023]如图1所示,本发明公开了HBase二级索引存储和查询系统,包括客户端1、查询处 理模块2、查询执行引擎模块3和HBase存储模块4,查询处理模块2收到客户端1下发的 查询请求,查询处理模块2从查询请求中获取查询条件,查询处理模块2将合法的查询条件 发送给查询执行引擎模块3,查询执行引擎模块3匹配查询条件,从HBase存储模块4找出 满足要求的数据,HBase存储模块4分别存储索引表41和数据表42,索引表41存储在SATA 硬盘上,数据表42存储在SSD固态硬盘上。如果需要对数据表42进行全表扫描的话,将数 据表42存储在SSD固态硬盘极大的提高了数据表42查询的效率。
[0024] 其中,查询执行引擎模块3包括匹配模块31和查询模块32,匹配模块31用于找出 合法的查询条件需要查询的索引表41或数据表42,查询模块32用于在匹配模块31匹配成 功后,将合法的查询条件转换为HBase存储模块4可以处理的查询条件并执行查询过程。
[0025] 如图2所示是使用HBase二级索引存储和查询系统进行查询的方法流程图,该方 法包括如下步骤:
[0026] 1)查询处理模块2接收客户端1下发的查询请求;
[0027] 2)查询处理模块2从查询请求中获取查询条件,查询处理模块2将合法的查询条 件发送给查询执行引擎模块3进行处理;
[
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1