本发明专利技术涉及数据处理技术领域,尤其涉及HBase二级索引存储和查询系统及其查询方法,包括客户端、查询处理模块、查询执行引擎模块和HBase存储模块。本发明专利技术将数据表存储在SSD固态硬盘,相较于传统的SATA硬盘,数据读写速度快,大大的提高了查询效率。本发明专利技术同时优化了匹配逻辑,可以使用索引表中包含的过滤列条件作为过滤器,对索引表进行scan,得到数据表的rowkey;再使用查询条件作为过滤器,使用rowkey对数据表进行精确get,得到查询结果,减少了对数据表的全表扫描,大大提高了查询效率。
【技术实现步骤摘要】
本专利技术涉及数据处理
,尤其涉及HBase二级索引存储和查询系统及其查 询方法。
技术介绍
随着大数据技术的发展和应用,HBase逐渐成为业界广泛使用的NoSQL分布式存 储系统,它具有高可靠、面向列、开源等特点,已被Facebook、阿里巴巴等公司成功用于生产 系统。如何对HBase进行高效的二级索引存储、查询是业界研究的热点,目前被广泛使用的 方案架构如图3所示,该方案主要包含三个模块:HBase存储模块、查询处理模块、查询执行 引擎三部分。HBase存储模块负责原始数据和索引数据的存储,具有分布式、大容量、快速响 应的特点,类似的海量存储系统也都可以用于作为存储模块,例如HyperTable( -种以C语 言开发的分布式列存储结构的大容量数据存储系统),从存储的角度看,现有方案是将数据 表存储于低速存储介质(如SATA盘)用于存储完整数据;对数据表的不同索引分别形成索 引表,存储于SATA硬盘,并且索引表按照业务需求冗余过滤列。查询处理模块收到客户端 下发的查询请求,从查询请求中获取查询条件,检查查询条件是否含有非法条件、错误条件 等。如果查询条件合法,则将该查询条件发给查询执行引擎;如果查询条件非法,则将错误 信息返回给客户端。查询执行引擎收到合法的查询条件时,根据合法的查询条件找出可查 的数据表或索引表,然后将合法的查询条件转换为HBase可处理的查询请求,执行查询。 现有的二级索引存储、查询方案需要在数据表的每个索引表中冗余过滤列,数据 冗余较大;进行查询时,如果索引表未包含查询条件中所有的过滤条件,则该索引表不可 查,如果所有的索引表都不可查,则需要使用查询条件构造过滤器,对数据表进行全表扫 描,效率极低。
技术实现思路
本专利技术的目的是克服现有技术存在的缺陷,提供一种提高查询效率的HBase二级 索引存储和查询系统及其查询方法。 实现本专利技术目的的技术方案是:HBase二级索引存储和查询系统,包括客户端、查 询处理模块、查询执行引擎模块和HBase存储模块,查询处理模块收到客户端下发的查询 请求,查询处理模块从查询请求中获取查询条件,查询处理模块将合法的查询条件发送给 查询执行引擎模块,查询执行引擎模块匹配查询条件,从HBase存储模块中找出满足要求 的数据,HBase存储模块分别存储索引表和数据表,索引表存储在SATA硬盘上,数据表存储 在SSD固态硬盘上。 作为本专利技术的优化方案,查询执行引擎模块包括匹配模块和查询模块,匹配模块 用于找出合法的查询条件需要查询的索引表或数据表,查询模块用于在匹配模块匹配成功 后,将合法的查询条件转换为HBase存储模块可以处理的查询条件并执行查询过程。 -种利用HBase二级索引存储和查询系统进行查询的方法,包括如下步骤: 1)查询处理模块接收客户端下发的查询请求; 2)查询处理模块从查询请求中获取查询条件,查询处理模块将合法的查询条件发 送给查询执行引擎模块进行处理; 3)查询执行引擎模块将合法的查询条件与索引表的rowkey匹配,判断是否能匹 配到索引表; 4)查询执行引擎模块匹配到索引表,然后查询执行引擎模块判断索引表中是否包 含与合法的查询条件对应的所有的过滤条件; 5)索引表中未包含与合法的查询条件对应的所有的过滤条件,使用索引表的列构 造过滤器,对索引表进行scan,得到数据表的rowkey; 6)使用合法的查询条件构造过滤器,使用步骤5)得到的rowkey对数据表进行精 确get; 7)返回查询结果给客户端。 作为本专利技术的优化方案,索引表中包含与合法的查询条件对应的所有的过滤条 件,使用合法的查询条件构造过滤器,对索引表进行scan,获取数据表的rowkey,使用得到 的rowkey对数据表进行精确get。 本专利技术具有积极的效果:(1)本专利技术将数据表存储在SSD固态硬盘,相较于传统的 SATA硬盘,数据读写速度快,大大的提高了查询效率; (2)现有方案中,当查询条件和索引表的rowkey匹配,但是索引表未包含全部的 过滤条件时,需要对数据表进行全表扫描,效率较低,本专利技术优化了匹配逻辑,当出现这样 的情况时,可以使用索引表中包含的过滤列条件作为过滤器,对索引表进行scan,得到数据 表的rowkey;再使用查询条件作为过滤器,使用rowkey对数据表进行精确get,得到查询结 果,减少了对数据表的全表扫描,大大提高了查询效率。【附图说明】 为了使本专利技术的内容更容易被清楚地理解,下面根据具体实施例并结合附图,对 本专利技术作进一步详细的说明,其中: 图1是本专利技术的原理框图; 图2是本专利技术查询方法的流程图; 图3是本专利技术现有技术的原理框图。 其中,1、客户端,2、查询处理模块,3、查询执行引擎模块,4、HBase存储模块,31、匹 配模块,32、查询模块,41、索引表,42、数据表。【具体实施方式】如图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查询的效率。 其中,查询执行引擎模块3包括匹配模块31和查询模块32,匹配模块31用于找出 合法的查询条件需要查询的索引表41或数据表42,查询模块32用于在匹配模块31匹配成 功后,将合法的查询条件转换为HBase存储模块4可以处理的查询条件并执行查询过程。 如图2所示是使用HBase二级索引存储和查询系统进行查询的方法流程图,该方 法包括如下步骤: 1)查询处理模块2接收客户端1下发的查询请求; 2)查询处理模块2从查询请求中获取查询条件,查询处理模块2将合法的查询条 件发送给查询执行引擎模块3进行处理;[当前第1页1 2 本文档来自技高网...
【技术保护点】
HBase二级索引存储和查询系统,包括客户端(1)、查询处理模块(2)、查询执行引擎模块(3)和HBase存储模块(4),所述的查询处理模块(2)收到客户端(1)下发的查询请求,查询处理模块(2)从查询请求中获取查询条件,查询处理模块(2)将合法的查询条件发送给查询执行引擎模块(3),所述的查询执行引擎模块(3)匹配查询条件,从HBase存储模块(4)中找出满足要求的数据,其特征在于,所述的HBase存储模块(4)分别存储索引表(41)和数据表(42),所述的索引表(41)存储在SATA硬盘上,所述的数据表(42)存储在SSD固态硬盘上。
【技术特征摘要】
【专利技术属性】
技术研发人员:王勇强,赵智峰,周帅锋,曹俊亮,李佳宁,韦蓉,刘宇,
申请(专利权)人:烽火通信科技股份有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。