一种数据查询方法及装置的制造方法
【技术领域】
[0001]本发明涉及数据查询技术领域,特别是涉及一种数据查询方法及装置。
【背景技术】
[0002]随着系统数据的越来越大,分布式数据库应用而生。其中,分布式数据库是由一组数据组成的,这组数据分布在网络系统的不同节点上,网络中每个节点具有独立处理的能力,可以执行局部应用(指对本节点的数据进行存取、查询等的应用);同时,每个节点也能通过网络通讯支持全局应用(指存取两个或两个以上的节点的数据库应用)。其中,每一组数据通常被称为分片数据库,且不同的分片数据库存储有不同的数据内容;同时,分片数据库会包括至少两个所存储数据内容相同的子数据库,这样使得分片数据库所存储的内容存在副本,达到了提高数据安全性的目的。
[0003]现有技术中,当网络系统中的管理节点(该管理节点可以为存储有分片数据库的节点或不同于存储有分片数据库的节点的代理节点)接收到针对于某一分布式数据库的目标数据查询请求后,基于该数据查询请求所对应的数据查询范围,确定该目标数据查询请求所针对的至少一个目标分片数据库;生成针对于至少一个目标分片数据库的子数据查询请求,其中,子数据查询请求与分片式数据库具有唯一对应性,各个子数据查询请求所对应的总的数据查询范围等同于目标数据查询请求所针对的数据查询范围;将各个一级数据查询请求发送给相对应目标分片数据库所在的节点;相应的,接收到一级数据查询请求的节点基于所接收到的一级数据查询请求对相应的目标分片数据库进行查询处理,并将查询结果进行反馈处理;而该管理节点在接收到各个一级数据查询请求所对应的查询结果后,汇总所述查询结果,进而将汇总后的查询结果作为所述目标数据查询请求的目标查询结果O
[0004]尽管现有技术中的分布查询方式具有较高的查询速率,但是,随着查询速率要求的提高,如何进一步提高查询分布式数据库的速率是一个亟待解决的问题。
【发明内容】
[0005]本发明实施例的目的在于提供一种数据查询方法及装置,以进一步提高查询分布式数据库的速率。具体技术方案如下:
[0006]第一方面,本发明实施例提供了一种数据查询方法,包括:
[0007]在接收到针对于分布式数据库的目标数据查询请求后,基于所述目标数据查询请求所对应的数据查询范围,确定所述目标数据查询请求所针对的至少一个目标分片数据库;其中,所述分布式数据库的数据通过至少两个分片数据库进行存储,每一分片数据库包括至少两个子数据库;
[0008]生成针对于所述至少一个目标分片数据库的一级数据查询请求;其中,所述一级数据查询请求与目标分片数据库具有唯一对应性,各个一级数据查询请求所针对的总的数据查询范围与所述目标数据查询请求所针对的数据查询范围相同;
[0009]判断所述目标数据查询请求是否符合预设拆分条件,如果是,生成各个一级数据查询请求所对应的二级数据查询请求;其中,所述二级数据查询请求与相应目标分片数据库的子数据库具有唯一对应性,每个一级数据查询请求所对应的二级数据查询请求所针对的总的数据查询范围与该一级数据查询请求所对应的数据查询范围相同;
[0010]将各个一级数据查询请求所对应的二级数据查询请求发送给该一级数据查询请求所对应目标分片数据库所在的节点,以使得所述节点基于所接收到的二级数据查询请求对相应的子数据库进行查询处理,并将查询结果进行反馈处理;
[0011]在接收到各个二级数据查询请求所对应的查询结果后,汇总所述查询结果;
[0012]将汇总后的查询结果作为所述目标数据查询请求的目标查询结果。
[0013]优选的,所述判断所述目标数据查询请求是否符合预设拆分条件,包括:
[0014]判断所述目标数据查询请求是否携带预设查询命令,如果是,表明所述目标数据查询请求符合预设拆分条件。
[0015]优选的,所述预设查询命令,包括:
[0016]表明匹配或累加的查询命令。
[0017]优选的,所述生成各个一级数据查询请求所对应的二级数据查询请求,包括:
[0018]确定各个一级查询请求所对应的目标分片数据库的子数据库的数量;
[0019]将各个一级数据查询请求拆分为所对应子数据库的数量的二级数据查询请求。
[0020]优选的,所述生成各个一级数据查询请求所对应的二级数据查询请求,包括:
[0021]获得各个一级数据查询请求所对应的目标分片数据库的允许拆分数量;
[0022]将各个一级数据查询请求拆分为所对应允许拆分数量的二级数据查询请求。
[0023]优选的,本发明实施例所提供的数据查询方法,还包括:
[0024]当判断出所述目标数据查询请求不符合预设拆分条件时,将各个一级数据查询请求发送给相对应目标分片数据库所在的节点,以使得所述节点基于所接收到的一级数据查询请求对相应的目标分片数据库进行查询处理,并将查询结果进行反馈处理;
[0025]在接收到各个一级数据查询请求所对应的查询结果后,汇总所述查询结果;
[0026]将汇总后的查询结果作为所述目标数据查询请求的目标查询结果。
[0027]第二方面,本发明实施例提供了一种数据查询装置,包括:
[0028]目标分片数据库确定模块,用于在接收到针对于分布式数据库的目标数据查询请求后,基于所述目标数据查询请求所对应的数据查询范围,确定所述目标数据查询请求所针对的至少一个目标分片数据库;其中,所述分布式数据库的数据通过至少两个分片数据库进行存储,每一分片数据库包括至少两个子数据库;
[0029]一级数据查询请求生成模块,用于生成针对于所述至少一个目标分片数据库的一级数据查询请求;其中,所述一级数据查询请求与目标分片数据库具有唯一对应性,各个一级数据查询请求所针对的总的数据查询范围与所述目标数据查询请求所针对的数据查询范围相同;
[0030]判断处理模块,用于判断所述目标数据查询请求是否符合预设拆分条件,如果是,触发二级数据查询请求生成模块;
[0031]所述二级数据查询请求生成模块,用于生成各个一级数据查询请求所对应的二级数据查询请求;其中,所述二级数据查询请求与相应目标分片数据库的子数据库具有唯一对应性,每个一级数据查询请求所对应的二级数据查询请求所针对的总的数据查询范围与该一级数据查询请求所对应的数据查询范围相同;
[0032]二级数据查询请求发送模块,用于将各个一级数据查询请求所对应的二级数据查询请求发送给该一级数据查询请求所对应目标分片数据库所在的节点,以使得所述节点基于所接收到的二级数据查询请求对相应的子数据库进行查询处理,并将查询结果进行反馈处理;
[0033]第一查询结果汇总模块,用于在接收到各个二级数据查询请求所对应的查询结果后,汇总所述查询结果;
[0034]第一目标查询结果确定模块,用于将汇总后的查询结果作为所述目标数据查询请求的目标查询结果。
[0035]优选的,所述判断处理模块具体用于判断所述目标数据查询请求是否携带预设查询命令,如果是,触发二级数据查询请求生成模块。
[0036]优选的,所述预设查询命令,包括:
[0037]表明匹配或累加的查询命令。
[0038]优选的,所述二级数据查询请求生成模块,包括:
[0039]第一拆分数量确定单元,用于确定各个一级查询