[发明专利]HBase二级索引存储和查询系统及其查询方法在审
申请号: | 201510633271.5 | 申请日: | 2015-09-29 |
公开(公告)号: | CN105205162A | 公开(公告)日: | 2015-12-30 |
发明(设计)人: | 王勇强;赵智峰;周帅锋;曹俊亮;李佳宁;韦蓉;刘宇 | 申请(专利权)人: | 烽火通信科技股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 常州佰业腾飞专利代理事务所(普通合伙) 32231 | 代理人: | 翁斌 |
地址: | 213000 江苏省南*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | hbase 二级 索引 存储 查询 系统 及其 方法 | ||
技术领域
本发明涉及数据处理技术领域,尤其涉及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,得到查询结果,减少了对数据表的全表扫描,大大提高了查询效率。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烽火通信科技股份有限公司,未经烽火通信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510633271.5/2.html,转载请声明来源钻瓜专利网。