分布式部署的异构数据库的查询方法技术

技术编号:13629197 阅读:78 留言:0更新日期:2016-09-02 07:36
本发明专利技术涉及一种分布式部署的异构数据库的查询方法,包括:接收应用程序的数据库查询请求;根据所述查询信息确定本次数据库查询的查询类型;根据所述查询信息判断所述查询请求是否为初次请求;若是,则开启查询模块集合中的每个查询模块对应的第一线程,以使每一所述第一线程根据所述查询类型调用对应的所述查询模块的查询接口进行数据查询;将所有所述第一线程的查询结果按照所属查询模块进行划分,并根据划分结果确定结果集;根据所述查询类型从所述结果集中获取并发送预设数量的查询结果给所述应用程序。本发明专利技术可以解决现有的数据查询系统面临的高负载和高并发问题,提高查询结果的返回速度,进而增强了系统的稳定性和查询效率。

【技术实现步骤摘要】

本专利技术涉及数据库查询
,尤其涉及一种分布式部署的异构数据库的查询方法
技术介绍
随着互联网、电信、金融等行业的高速发展,海量数据时代已经来临,各种业务的数据量持续增长,使得行业应用系统需要处理和存储的数据量越来越大,对于系统性能的要求也就越来越高。在此背景下,虽然营运而生了很多解决大数据处理的方案,比如hadoop等,但由于业务上的需求,传统行业应用系统大部分还是采用关系型数据库。现有的单一关系型数据库已经满足不了各行业日益增长的需求,因此将数据拆分到多个数据库已是必然的选择。然而,传统行业应用系统在面对大量用户访问和各层级的高并发请求时,针对多数据库的数据查询效率非常慢,甚至会出现系统崩溃。面对上述问题,现有技术通常采用提高服务器性能、数据库存储量、编程语言的效率以及Web容器的性能等手段进行应对,但是这并不能从根本上解决系统面临的高负载和高并发问题。
技术实现思路
针对现有的关系型数据库查询方法存在的效率慢、易导致系统崩溃、无法应对高负载和高并发问题的弊端,本专利技术提供一种分布式部署的异构数据库的查询方法,该方法包括:接收应用程序的数据库查询请求;所述查询请求包括用于从所述异构数据库中获取查询结果的查询信息;根据所述查询信息确定本次数据库查询的查询类型;根据所述查询信息判断所述查询请求是否为初次请求;若是,则开启查询模块集合中的每个查询模块对应的第一线程,以使每一所述第一线程根据所述查询类型调用对应的所述查询模块的查询接口进行数据查询;其中,所述查询模块为预先构建的用于管理和调用所述异构数据库的封装程序;将所有所述第一线程的查询结果按照所属查询模块进行划分,并根据划分结果确定结果集;根据所述查询类型从所述结果集中获取并发送预设数量的查询结果给所述应用程序。可选地,所述根据所述查询类型从所述结果集中获取并发送预设数量的查询结果给所述应用程序之后,所述方法还包括:将所述结果集中剩余的查询结果集存入缓存中。可选地,所述根据所述查询信息判断所述查询请求是否为初次请求之后,所述方法还包括:若所述查询请求不是初次请求,则根据所述查询类型从所述缓存中获取并发送预设数量的查询结果给所述应用程序,并将剩余的查询结果存入缓存中。可选地,所述根据所述查询类型从所述结果集中获取并发送预设数量的查询结果给所述应用程序,包括:若所述查询类型为排序查询,则将所述结果集中的所有查询结果按照预设规则进行排序,以根据排序结果从所述结果集中获取所述预设数量的查询结果给所述应用程序。可选地,所述将所述结果集中的所有查询结果按照预设规则进行排序,以根据排序结果从所述结果集中获取所述预设数量的查询结果给所述应用程序之后,所述方法还包括:确定所述缓存中每一所述查询模块对应的剩余查询结果数量;根据所述每一所述查询模块对应的剩余查询结果数量,开启每一所述查询模块对应的第二线程,并使每一所述第二线程根据所述查询类型调用对应的所述查询模块的查询接口进行数据查询,以将每一所述查询模块对应的查询结果的数量补充至所述预设数量。可选地,所述根据所述查询类型从所述结果集中获取并发送预设数量的查询结果给所述应用程序,包括:若所述查询类型为非排序查询,则从所述结果集中随机获取所述预设数量的查询结果给所述应用程序。可选地,所述开启查询模块集合中的每个查询模块对应的第一线程,以使每一所述第一线程根据所述查询类型调用对应的所述查询模块的查询接口进行数据查询之前,所述方法包括:所述查询模块将所述异构数据库中的每个数据库的查询接口进行统一化处理,并将所述异构数据库的查询条件设置为key-value键值对的形式。可选地,所述将所述异构数据库中的每个数据库的查询接口进行统一化处理,并将所述异构数据库的查询条件设置为key-value键值对的形式之后,所述方法还包括:所述查询模块将所述查询条件按照所述异构数据库中的每个数据库的语法结构转换成SQL语句。可选地,所述开启查询模块集合中的每个查询模块对应的第一线程,以使每一所述第一线程根据所述查询类型调用对应的所述查询模块的查询接口进行数据查询之前,所述方法包括:所述查询模块根据接收到的所述异构数据库的数据库信息初始化所述异构数据库中的每一数据库关联的数据库连接池。可选地,所述根据所述查询类型从所述结果集中获取并发送预设数量的查询结果给所述应用程序,包括:所述查询模块根据所述查询类型从所述结果集中获取预设数量
的查询结果,并将所述查询结果封装为泛型或MAP的集合发送给所述应用程序。本专利技术的分布式部署的异构数据库的查询方法,基于支持分布式部署的查询模块进行管理和调用异构数据库,可以解决现有的数据查询系统面临的高负载和高并发问题,提高查询结果的返回速度,进而增强了系统的稳定性和查询效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术一个实施例的分布式部署的异构数据库的查询方法的流程图;图2为本专利技术另一个实施例的分布式部署的异构数据库的查询方法的流程图;图3为本专利技术一个实施例的分布式部署的异构数据库的查询系统的结构示意图;图4为本专利技术一个实施例的分布式部署的异构数据库的查询方法的管理模块进行排序查询的流程示意图;图5为本专利技术一个实施例的分布式部署的异构数据库的查询方法的管理模块进行非排序查询的流程示意图;图6为本专利技术一个实施例的分布式部署的异构数据库的查询方法的查询模块进行排序查询的流程示意图;图7为本专利技术一个实施例的分布式部署的异构数据库的查询方法的查询模块进行排序查询的流程示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例一图1为本专利技术一个实施例的分布式部署的异构数据库的查询方法的流程图;如图1所示,该方法包括:S1:接收应用程序的数据库查询请求;所述查询请求包括用于从所述异构数据库中获取查询结果的查询信息;S2:根据所述查询信息确定本次数据库查询的查询类型;S3:根据所述查询信息判断所述查询请求是否为初次请求;具体地,数据库查询请求可以为用户通过应用程序客户端发送的用以对数据信息进行查询的请求,其包括的查询信息例可包括以下至少一种或其组合:所要查询的数据的关键词、疑问语句、查询类型(如排序查询和非排序查询)以及初次请求标识。因此,可根据该请求中的初次请求标识的内容判断该查询请求是初次请求或翻页请求。S31:若是,则开启查询模块集合中的每个查询模块对应的第一线程,以使每一所述第一线程根据所述查询类型调用对应的所述查询模块的查询接口进行数据查询;其中,所述查询模块为预先构建的用于管理和调用所述异构数据库的封装程序;S4:将所有所述第一线程的查询结果按照所属查询模块进行划分,并根据划分结果确定结果集;S5:根据所述查询类型本文档来自技高网
...

【技术保护点】
一种分布式部署的异构数据库的查询方法,其特征在于,包括:接收应用程序的数据库查询请求;所述查询请求包括用于从所述异构数据库中获取查询结果的查询信息;根据所述查询信息确定本次数据库查询的查询类型;根据所述查询信息判断所述查询请求是否为初次请求;若是,则开启查询模块集合中的每个查询模块对应的第一线程,以使每一所述第一线程根据所述查询类型调用对应的所述查询模块的查询接口进行数据查询;其中,所述查询模块为预先构建的用于管理和调用所述异构数据库的封装程序;将所有所述第一线程的查询结果按照所属查询模块进行划分,并根据划分结果确定结果集;根据所述查询类型从所述结果集中获取并发送预设数量的查询结果给所述应用程序。

【技术特征摘要】
1.一种分布式部署的异构数据库的查询方法,其特征在于,包括:接收应用程序的数据库查询请求;所述查询请求包括用于从所述异构数据库中获取查询结果的查询信息;根据所述查询信息确定本次数据库查询的查询类型;根据所述查询信息判断所述查询请求是否为初次请求;若是,则开启查询模块集合中的每个查询模块对应的第一线程,以使每一所述第一线程根据所述查询类型调用对应的所述查询模块的查询接口进行数据查询;其中,所述查询模块为预先构建的用于管理和调用所述异构数据库的封装程序;将所有所述第一线程的查询结果按照所属查询模块进行划分,并根据划分结果确定结果集;根据所述查询类型从所述结果集中获取并发送预设数量的查询结果给所述应用程序。2.如权利要求1所述的方法,其特征在于,所述根据所述查询类型从所述结果集中获取并发送预设数量的查询结果给所述应用程序之后,所述方法还包括:将所述结果集中剩余的查询结果集存入缓存中。3.如权利要求2所述的方法,其特征在于,所述根据所述查询信息判断所述查询请求是否为初次请求之后,所述方法还包括:若所述查询请求不是初次请求,则根据所述查询类型从所述缓存中获取并发送预设数量的查询结果给所述应用程序,并将剩余的查询结果存入缓存中。4.如权利要求1或2所述的方法,其特征在于,所述根据所述查询类型从所述结果集中获取并发送预设数量的查询结果给所述应用
\t程序,包括:若所述查询类型为排序查询,则将所述结果集中的所有查询结果按照预设规则进行排序,以根据排序结果从所述结果集中获取所述预设数量的查询结果给所述应用程序。5.如权利要求4所述的方法,其特征在于,所述将所述结果集中的所有查询结果按照预设规则进行排序,以根据排序结果从所述结果集中获取所述预设数量的查询结果给所述应用程序之后,所述方法还包括:确定所述缓存中每一所述查询模块对应的剩余查询结果数量;根据所述每一所述查询模块对应...

【专利技术属性】
技术研发人员:付君辉李宏伟代宏伟
申请(专利权)人:北京中安智达科技有限公司
类型:发明
国别省市:北京;11

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

1