一种混合型数据库及其高效查询方法技术

技术编号:20272439 阅读:43 留言:0更新日期:2019-02-02 03:38
本发明专利技术公开了一种混合型数据库及其高效查询方法,涉及大数据技术领域。本发明专利技术的系统包括Hbase数据存储、关系型数据库集群、索引器、元数据、查询计划器;本发明专利技术的方法包括:S01:查询计划器接受查询请求;S02:将Q1发送至关系型数据库,接受查询结果;S03:根据rowkey信息,在Hbase中执行Q2,并获得结果集;S04:将步骤S03得到的结果集与Q1中的查询结果集进行合并。本发明专利技术的查询计划器根据“指针”查询Hbase,根据查询结果集和Hbase查询结果进行合并,返回给用户,支持sql查询,支持二级索引,支持Join、跨行、跨表事物、Orderby与Group by,扩展性高。

【技术实现步骤摘要】
一种混合型数据库及其高效查询方法
本专利技术属于大数据
,特别是涉及一种混合型数据库及其高效查询方法。
技术介绍
Hbase是一种面向列存储的NoSQL系统,其数据存储依赖hadoop的分布式文件系统HDFA,Hbase能够在普通硬件设备上存储数以百亿行的大数据量表,目前在企业中广泛使用。虽然Hbase能够存储百TB海量数据,具有高并发,支持随机访问,高可扩展性的优点,并支持结构化和半结构化数据存储,但是Hbase使用键值对的数据模型,不支持sql查询,不支持二级索引,不支持Join、跨行、跨表事物、Orderby与Groupby,在大量结构化数据的多表查询上,优势受限,相比之下,Hadoop生态圈的Hive可以支持传统关系数据库的主流SQL语言,但是Hive是建立在Hadoop基础上的分布式数据仓库,其查询是依赖于MapReducet计算框架,数据存取时的磁盘I/O时间消耗很大,数据两在GB级别时查询速度也不快,因此,针对以上问题,结合关系型数据库在处理结构化数据上的SQL优势,设计并构建一种混合型数据库及其高效查询方法具有重要的意义。
技术实现思路
本专利技术的目的在于提供一种混合型数据库及其高效查询方法,通过将建立索引的数据存储在关系型数据库中,关系型数据库中的每条记录都包含一个指向Hbase的“指针”,关系型数据库返回查询结果集,查询计划器根据“指针”查询Hbase,根据查询结果集和Hbase查询结果进行合并,返回给用户,解决了Hbase使用键值对的数据模型,不支持sql查询,不支持二级索引,不支持Join、跨行、跨表事物、Orderby与Groupby,扩展性低的问题。为解决上述技术问题,本专利技术是通过以下技术方案实现的:本专利技术的一种基于Hbase的混合型数据库,包括Hbase数据存储、关系型数据库集群、索引器、元数据、查询计划器;Hbase数据存储:用来存储原始数据;关系型数据库集群:用于存储Hbase中需要索引的列;索引器:用于从Hbase中加载索引列到关系型数据库集群中,将相应的列信息存储至元数据中;元数据:用于存储混合型数据库的全局信息,并存储已经建立索引的列;查询计划器:用于对查询计划的具体实施。一种混合型数据库的高效查询方法,包括以下步骤:S01:所述查询计划器接受查询请求,根据所述元数据重写查询为Q1和Q2两部分;所述Q1为关系型数据库集群中的查询,所述Q2为Hbase中的查询语句;S02:将所述Q1发送至关系型数据库,接受查询结果,包括Hbase的rowkey信息;S03:根据所述rowkey信息,在Hbase中执行Q2,以提高性能,每次查询固定数量的rowkeys至Hbase中,并获得结果集;S04:将所述步骤S03得到的结果集与所述Q1中的查询结果集进行合并。进一步地,所述步骤S01-S04的查询时间为:QueryCost(total)=QueryCost(Q1)+QueryCost(Q2)。进一步地,所述步骤S01中查询计划器接受查询请求的场景包括以下三种:(1)场景一:查询完全在关系型数据库中执行;(2)场景二:查询部分在关系型数据库中执行,部分在Hbase中执行;(3)场景三:查询完全在Hbase中执行。本专利技术具有以下有益效果:本专利技术通过将建立索引的数据存储在关系型数据库中,关系型数据库中的每条记录都包含一个指向Hbase的“指针”,关系型数据库返回查询结果集,查询计划器根据“指针”查询Hbase,根据查询结果集和Hbase查询结果进行合并,返回给用户,具有可支持sql查询,支持二级索引,支持Join、跨行、跨表事物、Orderby与Groupby,扩展性高的优点。当然,实施本专利技术的任一产品并不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术的一种基于Hbase的混合型数据库的架构图;图2本专利技术的混合型数据库在不同典型场景下实验查询的结果示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。请参阅图1所示,本专利技术的一种基于Hbase的混合型数据库,包括Hbase数据存储、关系型数据库集群、索引器、元数据、查询计划器;Hbase数据存储:用来存储原始数据,本专利技术采用DB2DPF的集群提供以实现解决方案的高可扩展性;关系型数据库集群:用于存储Hbase中需要索引的列;索引器:用于从Hbase中加载索引列到关系型数据库集群中,将相应的列信息存储至元数据中,类似于从Hbase加载数据到关系型数据库中的导入工具;元数据:用于存储混合型数据库的全局信息,并存储已经建立索引的列;查询计划器:用于对查询计划的具体实施。一种混合型数据库的高效查询方法,包括以下步骤:S01:查询计划器接受查询请求,根据元数据重写查询为Q1和Q2两部分;Q1为关系型数据库集群中的查询,Q2为Hbase中的查询语句;S02:将Q1发送至关系型数据库,接受查询结果,包括Hbase的rowkey信息;S03:根据rowkey信息,在Hbase中执行Q2,以提高性能,每次查询固定数量的rowkeys至Hbase中,并获得结果集;S04:将步骤S03得到的结果集与Q1中的查询结果集进行合并。其中,步骤S01-S04的查询时间为:QueryCost(total)=QueryCost(Q1)+QueryCost(Q2)。其中,步骤S01中查询计划器接受查询请求的场景包括以下三种:(1)场景一:查询完全在关系型数据库中执行;查询语句实例如下:SelectT1.a,sum(T1.b)fromT1whereT1.b>100groupbyT1.a;SelectT1.afromT1,T2whereT1.a=T2.aandT1.blike‘0SS’;(2)场景二:查询部分在关系型数据库中执行,部分在Hbase中执行;查询语句实例如下:SelectT1.*fromT1,T2whereT1.a=T2.a;(3)场景三:查询完全在Hbase中执行,即全表扫描。本实施例采用的是一台DB2DPFv97fp5,使用14个Hadoop节点,Hadoop版本为0.20.2,使用14个Hbase节点,Hbase版本为0.90.3,使用14个Hive节点,Hive版本为0.70.1,实验数据有9.8GB,5000w行记录,实验场景有4个,主要对比Hiveonhadoop架构,本专利技术基于关系型数据库的Hbase架构,以及不使用jion,groupby,orderby等操作时候的表单Hbase查询,实验使用vehicle和gps_location_log两张数据表,具体结构如表1和表2所示;表1vehicleIdBigint,prinarykeyVehicle_numVarc本文档来自技高网...

【技术保护点】
1.一种基于Hbase的混合型数据库,其特征在于,包括Hbase数据存储、关系型数据库集群、索引器、元数据、查询计划器;Hbase数据存储:用来存储原始数据;关系型数据库集群:用于存储Hbase中需要索引的列;索引器:用于从Hbase中加载索引列到关系型数据库集群中,将相应的列信息存储至元数据中;元数据:用于存储混合型数据库的全局信息,并存储已经建立索引的列;查询计划器:用于对查询计划的具体实施。

【技术特征摘要】
1.一种基于Hbase的混合型数据库,其特征在于,包括Hbase数据存储、关系型数据库集群、索引器、元数据、查询计划器;Hbase数据存储:用来存储原始数据;关系型数据库集群:用于存储Hbase中需要索引的列;索引器:用于从Hbase中加载索引列到关系型数据库集群中,将相应的列信息存储至元数据中;元数据:用于存储混合型数据库的全局信息,并存储已经建立索引的列;查询计划器:用于对查询计划的具体实施。2.根据权利要求1所述的一种混合型数据库的高效查询方法,其特征在于,包括以下步骤:S01:所述查询计划器接受查询请求,根据所述元数据重写查询为Q1和Q2两部分;所述Q1为关系型数据库集群中的查询,所述Q2为Hbase中的查询语句;S02:将所述Q1发送至关系型数据库,接受查询结果,包括Hbase...

【专利技术属性】
技术研发人员:胡翔
申请(专利权)人:安徽云融信息技术有限公司
类型:发明
国别省市:安徽,34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1