[发明专利]一种基于Hbase的二级索引查询优化方法在审
申请号: | 201811327627.2 | 申请日: | 2018-11-08 |
公开(公告)号: | CN111221838A | 公开(公告)日: | 2020-06-02 |
发明(设计)人: | 侯晓娟 | 申请(专利权)人: | 北京航天长峰科技工业集团有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/27 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100854*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 hbase 二级 索引 查询 优化 方法 | ||
本发明提供一种基于Hbase的二级索引查询优化方法,在Map阶段主要负责将Hbase中的相关表遍历rowkey值,根据rowkey读出维度值,再通过维度值读出value值,并将对应的rowkey‑value输出;Reduce阶段主要负责取出rowkey和value,将两值取反,即将value作为行键,行键作为value存入Hbase。本发明可通过设计Hbase的二级索引来解决Hbase资源的消耗大、查询速率慢的问题。
技术领域
本发明涉及大数据技术领域,具体涉及一种基于Hbase的二级索引查询优化方法。
背景技术
在当下的大数据环境下,分布式文件系统、分布式存储系统、分布式计算等都是核心的大数据技术。
Hbase技术来源于Fay Chang所撰写的Google论文,“Bigtable”关于一个结构化数据的“分布式存储系统”。是和Hadoop分布式文件系统对应的一个分布式数据库的概念。具体地,Hbase是一个分布式、面向列开源数据库。而且也不同于一般的关系数据库,Hbase是一个适合于非结构化数据存储的数据库。进一步地,Hbase是基于列的而非基于行的模式,这就与传统型数据库呈现出显著差别。Hbase是Apache的Hadoop项目的顶级项目。综上可知,Hbase就是建立在HDFS上的分布式列存储系统。
HBase可以随机地对大数据进行读写操作,但是HBase有着先天的劣势,而劣势就是他较差的数据查询能力。因为Hbase是面向列族的,当对表进行查询的时候仅仅可以用rowkey(要把多条件组合查询的字段都拼接在RowKey中显然不太可能)为主键作为查询条件,而不能对表进行多维查询和join操作等,而且查询一般都是全表扫描,对资源的消耗特别大,查询速率也非常慢。
发明内容
本发明的目的在于提供一种基于Hbase的二级索引查询优化方法,通过设计Hbase的二级索引来解决Hbase资源的消耗大、查询速率慢的问题。
本发明的技术方案如下:
一种基于Hbase的二级索引查询优化方法,其特征在于:在Map阶段主要负责将Hbase中的相关表遍历rowkey值,根据rowkey读出维度值,再通过维度值读出value值,并将对应的rowkey-value输出;Reduce阶段主要负责取出rowkey和value,将两值取反,即将value作为行键,行键作为value存入Hbase。
本发明通过设计的二级索引表,可以大大地降低查询的效率,也可以把nosql的劣势,即只能通过主键rowkey的查询方式,转化为非主键的查询方式等。
附图说明
图1是本发明的设计原理图;
图2是本发明的索引建立流程图。
具体实施方式
二级索引的本质就是建立各列值与行键之间的映射关系,如图1,当要对F:C1这列建立索引时,只需要建立F:C1各列值到其对应行键的映射关系,如C11-RK1等,这样就完成了对F:C1列值的二级索引的构建,当要查询符合F:C1=C11对应的F:C2的列值时(即根据C1=C11来查询C2的值,图1中灰色部分)
其查询步骤如下:
1.根据C1=C11到索引数据中查找其对应的RK,查询得到其对应的RK=RK1
2.得到RK1后就自然能根据RK1来查询C2的值了这是构建二级索引大概思路,其他组合查询的联合索引的建立也类似。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航天长峰科技工业集团有限公司,未经北京航天长峰科技工业集团有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811327627.2/2.html,转载请声明来源钻瓜专利网。