著录项信息
专利名称 | 一种数据查询方法及装置 |
申请号 | CN201510150114.9 | 申请日期 | 2015-03-31 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2015-06-24 | 公开/公告号 | CN104731951A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 北京奇艺世纪科技有限公司 | 申请人地址 | 北京市海淀区北一街2号鸿城拓展大厦10、11层
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京奇艺世纪科技有限公司 | 当前权利人 | 北京奇艺世纪科技有限公司 |
发明人 | 周逸勋;曹思阳 |
代理机构 | 北京柏杉松知识产权代理事务所(普通合伙) | 代理人 | 马敬;项京 |
摘要
本发明实施例提供了一种数据查询方法及装置。该方法包括在接收到针对于分布式数据库的目标数据查询请求后,基于目标数据查询请求所对应的数据查询范围,确定至少一个目标分片数据库;生成针对于至少一个目标分片数据库的一级数据查询请求;判断目标数据查询请求是否符合预设拆分条件,如果是,生成各个一级数据查询请求所对应的二级数据查询请求;将各个一级数据查询请求所对应的二级数据查询请求发送给该一级数据查询请求所对应目标分片数据库所在的节点;在接收到各个二级数据查询请求所对应的查询结果后,汇总查询结果;将汇总后的查询结果作为目标数据查询请求的目标查询结果。通过本方案可以进一步提高查询分布式数据库的速率。
1.一种数据查询方法,其特征在于,包括:
在接收到针对于分布式数据库的目标数据查询请求后,基于所述目标数据查询请求所对应的数据查询范围,确定所述目标数据查询请求所针对的至少一个目标分片数据库;其中,所述分布式数据库的数据通过至少两个分片数据库进行存储,每一分片数据库包括至少两个子数据库;
生成针对于所述至少一个目标分片数据库的一级数据查询请求;其中,所述一级数据查询请求与目标分片数据库具有唯一对应性,各个一级数据查询请求所针对的总的数据查询范围与所述目标数据查询请求所针对的数据查询范围相同;
判断所述目标数据查询请求是否携带预设查询命令,如果是,表明所述目标数据查询请求符合预设拆分条件,对各个一级数据查询请求进行再次拆分处理以生成各个一级数据查询请求所对应的二级数据查询请求;其中,所述二级数据查询请求与相应目标分片数据库的子数据库具有唯一对应性,每个一级数据查询请求所对应的二级数据查询请求所针对的总的数据查询范围与该一级数据查询请求所对应的数据查询范围相同;
将各个一级数据查询请求所对应的二级数据查询请求发送给该一级数据查询请求所对应目标分片数据库所在的节点,以使得所述节点基于所接收到的二级数据查询请求对相应的子数据库进行查询处理,并将查询结果进行反馈处理;
在接收到各个二级数据查询请求所对应的查询结果后,汇总所述查询结果;
将汇总后的查询结果作为所述目标数据查询请求的目标查询结果。
2.根据权利要求1所述的方法,其特征在于,所述预设查询命令,包括:
表明匹配或累加的查询命令。
3.根据权利要求1所述的方法,其特征在于,所述生成各个一级数据查询请求所对应的二级数据查询请求,包括:
确定各个一级查询请求所对应的目标分片数据库的子数据库的数量;
将各个一级数据查询请求拆分为所对应子数据库的数量的二级数据查询请求。
4.根据权利要求1所述的方法,其特征在于,所述生成各个一级数据查询请求所对应的二级数据查询请求,包括:
获得各个一级数据查询请求所对应的目标分片数据库的允许拆分数量;
将各个一级数据查询请求拆分为所对应允许拆分数量的二级数据查询请求。
5.根据权利要求1-4任意一项所述的方法,其特征在于,还包括:
当判断出所述目标数据查询请求不符合预设拆分条件时,将各个一级数据查询请求发送给相对应目标分片数据库所在的节点,以使得所述节点基于所接收到的一级数据查询请求对相应的目标分片数据库进行查询处理,并将查询结果进行反馈处理;
在接收到各个一级数据查询请求所对应的查询结果后,汇总所述查询结果;
将汇总后的查询结果作为所述目标数据查询请求的目标查询结果。
6.一种数据查询装置,其特征在于,包括:
目标分片数据库确定模块,用于在接收到针对于分布式数据库的目标数据查询请求后,基于所述目标数据查询请求所对应的数据查询范围,确定所述目标数据查询请求所针对的至少一个目标分片数据库;其中,所述分布式数据库的数据通过至少两个分片数据库进行存储,每一分片数据库包括至少两个子数据库;
一级数据查询请求生成模块,用于生成针对于所述至少一个目标分片数据库的一级数据查询请求;其中,所述一级数据查询请求与目标分片数据库具有唯一对应性,各个一级数据查询请求所针对的总的数据查询范围与所述目标数据查询请求所针对的数据查询范围相同;
判断处理模块,用于判断所述目标数据查询请求是否携带预设查询命令,如果是,触发二级数据查询请求生成模块;
所述二级数据查询请求生成模块,用于生成各个一级数据查询请求所对应的二级数据查询请求;其中,所述二级数据查询请求与相应目标分片数据库的子数据库具有唯一对应性,每个一级数据查询请求所对应的二级数据查询请求所针对的总的数据查询范围与该一级数据查询请求所对应的数据查询范围相同;
二级数据查询请求发送模块,用于将各个一级数据查询请求所对应的二级数据查询请求发送给该一级数据查询请求所对应目标分片数据库所在的节点,以使得所述节点基于所接收到的二级数据查询请求对相应的子数据库进行查询处理,并将查询结果进行反馈处理;
第一查询结果汇总模块,用于在接收到各个二级数据查询请求所对应的查询结果后,汇总所述查询结果;
第一目标查询结果确定模块,用于将汇总后的查询结果作为所述目标数据查询请求的目标查询结果。
7.根据权利要求6所述的装置,其特征在于,所述预设查询命令,包括:
表明匹配或累加的查询命令。
8.根据权利要求6所述的装置,其特征在于,所述二级数据查询请求生成模块,包括:
第一拆分数量确定单元,用于确定各个一级查询请求所对应的目标分片数据库的子数据库的数量;
第一请求拆分单元,用于将各个一级数据查询请求拆分为所对应子数据库的数量的二级数据查询请求。
9.根据权利要求6所述的装置,其特征在于,所述二级数据查询请求生成模块,包括:
第二拆分数量确定单元,用于获得各个一级数据查询请求所对应的目标分片数据库的允许拆分数量;
第二请求拆分单元,用于将各个一级数据查询请求拆分为所对应允许拆分数量的二级数据查询请求。
10.根据权利要求6-9任意一项所述的装置,其特征在于,所述判断处理模块还用于当判断出所述目标数据查询请求不符合预设拆分条件时,触发一级数据查询请求发送模块;
所述装置还包括:
一级数据查询请求发送模块,用于将各个一级数据查询请求发送给相对应目标分片数据库所在的节点,以使得所述节点基于所接收到的一级数据查询请求对相应的目标分片数据库进行查询处理,并将查询结果进行反馈处理;
第二查询结果汇总模块,用于在接收到各个一级数据查询请求所对应的查询结果后,汇总所述查询结果;
第二目标查询结果确定模块,用于将汇总后的查询结果作为所述目标数据查询请求的目标查询结果。
一种数据查询方法及装置\n技术领域\n[0001] 本发明涉及数据查询技术领域,特别是涉及一种数据查询方法及装置。\n背景技术\n[0002] 随着系统数据的越来越大,分布式数据库应用而生。其中,分布式数据库是由一组数据组成的,这组数据分布在网络系统的不同节点上,网络中每个节点具有独立处理的能力,可以执行局部应用(指对本节点的数据进行存取、查询等的应用);同时,每个节点也能通过网络通讯支持全局应用(指存取两个或两个以上的节点的数据库应用)。其中,每一组数据通常被称为分片数据库,且不同的分片数据库存储有不同的数据内容;同时,分片数据库会包括至少两个所存储数据内容相同的子数据库,这样使得分片数据库所存储的内容存在副本,达到了提高数据安全性的目的。\n[0003] 现有技术中,当网络系统中的管理节点(该管理节点可以为存储有分片数据库的节点或不同于存储有分片数据库的节点的代理节点)接收到针对于某一分布式数据库的目标数据查询请求后,基于该数据查询请求所对应的数据查询范围,确定该目标数据查询请求所针对的至少一个目标分片数据库;生成针对于至少一个目标分片数据库的子数据查询请求,其中,子数据查询请求与分片式数据库具有唯一对应性,各个子数据查询请求所对应的总的数据查询范围等同于目标数据查询请求所针对的数据查询范围;将各个一级数据查询请求发送给相对应目标分片数据库所在的节点;相应的,接收到一级数据查询请求的节点基于所接收到的一级数据查询请求对相应的目标分片数据库进行查询处理,并将查询结果进行反馈处理;而该管理节点在接收到各个一级数据查询请求所对应的查询结果后,汇总所述查询结果,进而将汇总后的查询结果作为所述目标数据查询请求的目标查询结果。\n[0004] 尽管现有技术中的分布查询方式具有较高的查询速率,但是,随着查询速率要求的提高,如何进一步提高查询分布式数据库的速率是一个亟待解决的问题。\n发明内容\n[0005] 本发明实施例的目的在于提供一种数据查询方法及装置,以进一步提高查询分布式数据库的速率。具体技术方案如下:\n[0006] 第一方面,本发明实施例提供了一种数据查询方法,包括:\n[0007] 在接收到针对于分布式数据库的目标数据查询请求后,基于所述目标数据查询请求所对应的数据查询范围,确定所述目标数据查询请求所针对的至少一个目标分片数据库;其中,所述分布式数据库的数据通过至少两个分片数据库进行存储,每一分片数据库包括至少两个子数据库;\n[0008] 生成针对于所述至少一个目标分片数据库的一级数据查询请求;其中,所述一级数据查询请求与目标分片数据库具有唯一对应性,各个一级数据查询请求所针对的总的数据查询范围与所述目标数据查询请求所针对的数据查询范围相同;\n[0009] 判断所述目标数据查询请求是否符合预设拆分条件,如果是,生成各个一级数据查询请求所对应的二级数据查询请求;其中,所述二级数据查询请求与相应目标分片数据库的子数据库具有唯一对应性,每个一级数据查询请求所对应的二级数据查询请求所针对的总的数据查询范围与该一级数据查询请求所对应的数据查询范围相同;\n[0010] 将各个一级数据查询请求所对应的二级数据查询请求发送给该一级数据查询请求所对应目标分片数据库所在的节点,以使得所述节点基于所接收到的二级数据查询请求对相应的子数据库进行查询处理,并将查询结果进行反馈处理;\n[0011] 在接收到各个二级数据查询请求所对应的查询结果后,汇总所述查询结果;\n[0012] 将汇总后的查询结果作为所述目标数据查询请求的目标查询结果。\n[0013] 优选的,所述判断所述目标数据查询请求是否符合预设拆分条件,包括:\n[0014] 判断所述目标数据查询请求是否携带预设查询命令,如果是,表明所述目标数据查询请求符合预设拆分条件。\n[0015] 优选的,所述预设查询命令,包括:\n[0016] 表明匹配或累加的查询命令。\n[0017] 优选的,所述生成各个一级数据查询请求所对应的二级数据查询请求,包括:\n[0018] 确定各个一级查询请求所对应的目标分片数据库的子数据库的数量;\n[0019] 将各个一级数据查询请求拆分为所对应子数据库的数量的二级数据查询请求。\n[0020] 优选的,所述生成各个一级数据查询请求所对应的二级数据查询请求,包括:\n[0021] 获得各个一级数据查询请求所对应的目标分片数据库的允许拆分数量;\n[0022] 将各个一级数据查询请求拆分为所对应允许拆分数量的二级数据查询请求。\n[0023] 优选的,本发明实施例所提供的数据查询方法,还包括:\n[0024] 当判断出所述目标数据查询请求不符合预设拆分条件时,将各个一级数据查询请求发送给相对应目标分片数据库所在的节点,以使得所述节点基于所接收到的一级数据查询请求对相应的目标分片数据库进行查询处理,并将查询结果进行反馈处理;\n[0025] 在接收到各个一级数据查询请求所对应的查询结果后,汇总所述查询结果;\n[0026] 将汇总后的查询结果作为所述目标数据查询请求的目标查询结果。\n[0027] 第二方面,本发明实施例提供了一种数据查询装置,包括:\n[0028] 目标分片数据库确定模块,用于在接收到针对于分布式数据库的目标数据查询请求后,基于所述目标数据查询请求所对应的数据查询范围,确定所述目标数据查询请求所针对的至少一个目标分片数据库;其中,所述分布式数据库的数据通过至少两个分片数据库进行存储,每一分片数据库包括至少两个子数据库;\n[0029] 一级数据查询请求生成模块,用于生成针对于所述至少一个目标分片数据库的一级数据查询请求;其中,所述一级数据查询请求与目标分片数据库具有唯一对应性,各个一级数据查询请求所针对的总的数据查询范围与所述目标数据查询请求所针对的数据查询范围相同;\n[0030] 判断处理模块,用于判断所述目标数据查询请求是否符合预设拆分条件,如果是,触发二级数据查询请求生成模块;\n[0031] 所述二级数据查询请求生成模块,用于生成各个一级数据查询请求所对应的二级数据查询请求;其中,所述二级数据查询请求与相应目标分片数据库的子数据库具有唯一对应性,每个一级数据查询请求所对应的二级数据查询请求所针对的总的数据查询范围与该一级数据查询请求所对应的数据查询范围相同;\n[0032] 二级数据查询请求发送模块,用于将各个一级数据查询请求所对应的二级数据查询请求发送给该一级数据查询请求所对应目标分片数据库所在的节点,以使得所述节点基于所接收到的二级数据查询请求对相应的子数据库进行查询处理,并将查询结果进行反馈处理;\n[0033] 第一查询结果汇总模块,用于在接收到各个二级数据查询请求所对应的查询结果后,汇总所述查询结果;\n[0034] 第一目标查询结果确定模块,用于将汇总后的查询结果作为所述目标数据查询请求的目标查询结果。\n[0035] 优选的,所述判断处理模块具体用于判断所述目标数据查询请求是否携带预设查询命令,如果是,触发二级数据查询请求生成模块。\n[0036] 优选的,所述预设查询命令,包括:\n[0037] 表明匹配或累加的查询命令。\n[0038] 优选的,所述二级数据查询请求生成模块,包括:\n[0039] 第一拆分数量确定单元,用于确定各个一级查询请求所对应的目标分片数据库的子数据库的数量;\n[0040] 第一请求拆分单元,用于将各个一级数据查询请求拆分为所对应子数据库的数量的二级数据查询请求。\n[0041] 优选的,所述二级数据查询请求生成模块,包括:\n[0042] 第二拆分数量确定单元,用于获得各个一级数据查询请求所对应的目标分片数据库的允许拆分数量;\n[0043] 第二请求拆分单元,用于将各个一级数据查询请求拆分为所对应允许拆分数量的二级数据查询请求。\n[0044] 优选的,所述判断处理模块还用于当判断出所述目标数据查询请求不符合预设拆分条件时,触发一级数据查询请求发送模块;\n[0045] 所述装置还包括:\n[0046] 一级数据查询请求发送模块,用于将各个一级数据查询请求发送给相对应目标分片数据库所在的节点,以使得所述节点基于所接收到的一级数据查询请求对相应的目标分片数据库进行查询处理,并将查询结果进行反馈处理;\n[0047] 第二查询结果汇总模块,用于在接收到各个一级数据查询请求所对应的查询结果后,汇总所述查询结果;\n[0048] 第二目标查询结果确定模块,用于将汇总后的查询结果作为所述目标数据查询请求的目标查询结果。\n[0049] 相对于现有技术,本发明实施例中,在查询分布式数据库时,在将目标数据查询请求拆分为针对于目标分片数据库的一级数据查询请求后,如果判断出目标数据查询请求符合预设拆分条件,则对一级数据查询请求进行再次拆分,以生成针对于目标分片数据库的子数据的二级数据查询请求,这样提高了并行查询线路的数量,因此,进一步提高了查询分布式数据库的速率。\n附图说明\n[0050] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。\n[0051] 图1为本发明实施例所提供的一种数据查询方法的流程图;\n[0052] 图2为本发明实施例所提供的一种数据查询装置的结构示意图。\n具体实施方式\n[0053] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。\n[0054] 本发明实施例提供了一种数据查询方法及装置,以进一步提高查询分布式数据库的速率。\n[0055] 下面首先对本发明实施例所提供的一种数据查询方法进行介绍。\n[0056] 需要说明的是,本发明实施例所针对的分布式数据库的数据通过至少两个分片数据库进行存储,每一分片数据库包括至少两个子数据库,其中,不同的分片数据库所存储的数据内容不同,同一分片数据库所包括的子数据库存储有相同的数据内容;并且,至少两个分片式数据库中的任意两个分片数据库可以位于相同或不同的节点中,而同一分片数据库中的至少两个子数据库位于同一节点上。所谓节点可以为网络系统的服务器,当然,在某些场景下,也可以为用户侧的终端,这都是合理的。\n[0057] 并且,本发明实施例所提供的数据查询方法的执行主体可以为数据查询装置,该数据查询装置可以位于能够接收针对于分布式数据库的数据查询请求的管理节点内,进一步的,该管理节点可以为存储有分片数据库的节点或不同于存储有分片数据库的节点的代理节点,这都是合理的。\n[0058] 如图1所示,一种数据查询方法,可以包括如下步骤:\n[0059] S101,在接收到针对于分布式数据库的目标数据查询请求后,基于该目标数据查询请求所对应的数据查询范围,确定该目标数据查询请求所针对的至少一个目标分片数据库;\n[0060] 其中,由于目标数据查询请求对应有数据查询范围且不同的分片数据库存储不同的数据内容,因此,在接收到针对于分布式数据库的目标数据查询请求后,可以基于该目标数据查询请求所对应的数据查询范围,确定该目标数据查询请求所针对的至少一个目标分片数据库,进而执行对目标数据查询请求进行拆分为与目标分片数据库所对应的一级数据查询请求的处理。\n[0061] S102,生成针对于至少一个目标分片数据库的一级数据查询请求;\n[0062] 在确定出该目标数据查询请求所针对的至少一个目标分片数据库后,可以对该目标数据查询请求执行拆分处理,来生成针对于至少一个目标分片数据库的一级数据查询请求,其中,该一级数据查询请求与目标分片数据库具有唯一对应性。\n[0063] 所谓拆分处理为:基于对该目标数据查询请求所对应的数据查询范围的拆分处理,属于逻辑上的拆分,因此,各个一级数据查询请求所针对的总的数据查询范围与该目标数据查询请求所针对的数据查询范围相同。\n[0064] S103,判断该目标数据查询请求是否符合预设拆分条件;\n[0065] 本实施例中,在生成针对于至少一个目标分片数据库的一级数据查询请求后,可以执行判断该目标数据查询请求是否符合预设拆分条件的处理步骤,进而根据不同的判断结果执行不同的操作。\n[0066] 具体的,所述判断该目标数据查询请求是否符合预设拆分条件,可以包括:\n[0067] 判断该目标数据查询请求是否携带预设查询命令,如果是,表明该目标数据查询请求符合预设拆分条件。\n[0068] 进一步的,所述预设查询命令,可以包括:表明匹配或累加的查询命令。也就是,预设查询命令所针对的查询为对目标分片数据库的不同区域的遍历查询,且对该查询进行区域划分后查询效果不受到影响。本领域技术人员可以理解的是,表明匹配或累加的查询命令的具体形式可以参见现有技术。\n[0069] 需要强调的是,关于上述的预设拆分条件以及预设查询命令仅仅作为示例,并不应该构成对本发明实施例的限定。并且,本实施例中,S102先于S103执行,但是,实际应用中,S103与S102并不存在严格的执行顺序,举例而言:S102与S103也可以同时执行,S103也可以先于S102执行,这都是合适的。S104,当判断出该目标数据查询请求符合预设拆分条件时,生成各个一级数据查询请求所对应的二级数据查询请求;\n[0070] 在判断出该目标数据查询请求符合预设拆分条件时,表明对一级数据查询请求进行拆分处理可不影响最终的查询结果,因此,可以对各个一级数据查询请求进行再次拆分处理,以生成各个一级数据查询请求所对应的二级数据查询请求;其中,该二级数据查询请求与相应目标分片数据库的子数据库具有唯一对应性。\n[0071] 同样的,对一级数据查询请求的拆分处理为:基于对该一级数据查询请求所对应的数据查询范围的拆分处理,属于逻辑上的拆分,因此,每个一级数据查询请求所对应的二级数据查询请求所针对的总的数据查询范围与该一级数据查询请求所对应的数据查询范围相同。\n[0072] 具体的,在一种实现方式中,所述生成各个一级数据查询请求所对应的二级数据查询请求,可以包括:\n[0073] 确定各个一级查询请求所对应的目标分片数据库的子数据库的数量;\n[0074] 将各个一级数据查询请求拆分为所对应子数据库的数量的二级数据查询请求。\n[0075] 在另一种实现方式中,所述生成各个一级数据查询请求所对应的二级数据查询请求,可以包括:\n[0076] 获得各个一级数据查询请求所对应的目标分片数据库的允许拆分数量;\n[0077] 将各个一级数据查询请求拆分为所对应允许拆分数量的二级数据查询请求。\n[0078] 其中,允许拆分数量为预先设定的值,具体的值可以根据实际应用场景和需求进行设定。\n[0079] 可以理解的是,上述的生成各个一级数据查询请求所对应的二级数据查询请求的具体实现方式仅仅作为示例,并不应该构成对本发明实施例的限定。\n[0080] S105,将各个一级数据查询请求所对应的二级数据查询请求发送给该一级数据查询请求所对应目标分片数据库所在的节点;\n[0081] 相应的,各个节点在接收到到二级数据查询请求后,可以基于所接收到的二级数据查询请求对相应的子数据库进行查询处理,并将查询结果进行反馈处理。\n[0082] S106,在接收到各个二级数据查询请求所对应的查询结果后,汇总该查询结果;\n[0083] S107,将汇总后的查询结果作为该目标数据查询请求的目标查询结果。\n[0084] 其中,在接收到各个二级查询请求所队员的查询结果后,汇总所述查询结果所采用的技术可以为现有技术,在此不做赘述。\n[0085] 当然,在确定出目标数据查询请求的目标查询结果后,可以向目标数据查询请求的发送者反馈该目标查询结果,其中,该发送者可以位于网络侧或用户侧,这都是合理的。\n[0086] 需要说明的是,当判断出该目标数据查询请求不符合预设拆分条件时,可以采用现有技术进行后续的查询处理,具体可以包括:\n[0087] 将各个一级数据查询请求发送给相对应目标分片数据库所在的节点,以使得该节点基于所接收到的一级数据查询请求对相应的目标分片数据库进行查询处理,并将查询结果进行反馈处理;\n[0088] 在接收到各个一级数据查询请求所对应的查询结果后,汇总该查询结果;\n[0089] 将汇总后的查询结果作为所述目标数据查询请求的目标查询结果。\n[0090] 相对于现有技术,本发明实施例中,在查询分布式数据库时,在将目标数据查询请求拆分为针对于目标分片数据库的一级数据查询请求后,如果判断出目标数据查询请求符合预设拆分条件,则对一级数据查询请求进行再次拆分,以生成针对于目标分片数据库的子数据库的二级数据查询请求,这样提高了并行查询线路的数量,因此,进一步提高了查询分布式数据库的速率。\n[0091] 相应于上述方法实施例,本发明实施例还提供了一种数据查询装置,如图2所示,该数据查询装置,可以包括:\n[0092] 目标分片数据库确定模块210,用于在接收到针对于分布式数据库的目标数据查询请求后,基于所述目标数据查询请求所对应的数据查询范围,确定所述目标数据查询请求所针对的至少一个目标分片数据库;其中,所述分布式数据库的数据通过至少两个分片数据库进行存储,每一分片数据库包括至少两个子数据库;\n[0093] 一级数据查询请求生成模块220,用于生成针对于所述至少一个目标分片数据库的一级数据查询请求;其中,所述一级数据查询请求与目标分片数据库具有唯一对应性,各个一级数据查询请求所针对的总的数据查询范围与所述目标数据查询请求所针对的数据查询范围相同;\n[0094] 判断处理模块230,用于判断所述目标数据查询请求是否符合预设拆分条件,如果是,触发二级数据查询请求生成模块240;\n[0095] 所述二级数据查询请求生成模块240,用于生成各个一级数据查询请求所对应的二级数据查询请求;其中,所述二级数据查询请求与相应目标分片数据库的子数据库具有唯一对应性,每个一级数据查询请求所对应的二级数据查询请求所针对的总的数据查询范围与该一级数据查询请求所对应的数据查询范围相同;\n[0096] 二级数据查询请求发送模块250,用于将各个一级数据查询请求所对应的二级数据查询请求发送给该一级数据查询请求所对应目标分片数据库所在的节点,以使得所述节点基于所接收到的二级数据查询请求对相应的子数据库进行查询处理,并将查询结果进行反馈处理;\n[0097] 第一查询结果汇总模块260,用于在接收到各个二级数据查询请求所对应的查询结果后,汇总所述查询结果;\n[0098] 第一目标查询结果确定模块270,用于将汇总后的查询结果作为所述目标数据查询请求的目标查询结果。\n[0099] 相对于现有技术,本发明实施例中,在查询分布式数据库时,在将目标数据查询请求拆分为针对于目标分片数据库的一级数据查询请求后,如果判断出目标数据查询请求符合预设拆分条件,则对一级数据查询请求进行再次拆分,以生成针对于目标分片数据库的子数据的二级数据查询请求,这样提高了并行查询线路的数量,因此,进一步提高了查询分布式数据库的速率。\n[0100] 具体的,所述判断处理模块230具体用于判断所述目标数据查询请求是否携带预设查询命令,如果是,触发二级数据查询请求生成模块。\n[0101] 具体的,所述预设查询命令,可以包括:\n[0102] 表明匹配或累加的查询命令。\n[0103] 具体的,所述二级数据查询请求生成模块240,可以包括:\n[0104] 第一拆分数量确定单元,用于确定各个一级查询请求所对应的目标分片数据库的子数据库的数量;\n[0105] 第一请求拆分单元,用于将各个一级数据查询请求拆分为所对应子数据库的数量的二级数据查询请求。\n[0106] 具体的,所述二级数据查询请求生成模块240,可以包括:\n[0107] 第二拆分数量确定单元,用于获得各个一级数据查询请求所对应的目标分片数据库的允许拆分数量;\n[0108] 第二请求拆分单元,用于将各个一级数据查询请求拆分为所对应允许拆分数量的二级数据查询请求。\n[0109] 具体的,所述判断处理模块230还用于当判断出所述目标数据查询请求不符合预设拆分条件时,触发一级数据查询请求发送模块;\n[0110] 所述装置还可以包括:\n[0111] 一级数据查询请求发送模块,用于将各个一级数据查询请求发送给相对应目标分片数据库所在的节点,以使得所述节点基于所接收到的一级数据查询请求对相应的目标分片数据库进行查询处理,并将查询结果进行反馈处理;\n[0112] 第二查询结果汇总模块,用于在接收到各个一级数据查询请求所对应的查询结果后,汇总所述查询结果;\n[0113] 第二目标查询结果确定模块,用于将汇总后的查询结果作为所述目标数据查询请求的目标查询结果。\n[0114] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。\n[0115] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。\n[0116] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
法律信息
- 2018-08-07
- 2015-07-22
实质审查的生效
IPC(主分类): G06F 17/30
专利申请号: 201510150114.9
申请日: 2015.03.31
- 2015-06-24
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |