本发明涉及大数据,特别是涉及一种查询方法、装置、电子设备及计算机可读存储介质。
背景技术:
1、随着计算机技术的高速发展,全球数据量规模正在急剧上升,数据仓库每天都会增加海量的数据,通过sql(structured query language,结构化查询语言)查询数据仓库时,计算速度很慢甚至根本无法计算出结果,因此,亟需一种针对海量数据的快速查询方法。
技术实现思路
1、本发明实施例的目的在于提供一种查询方法、装置、电子设备及计算机可读存储介质,以实现海量数据的快速查询。具体技术方案如下:
2、在本申请实施的第一方面,首先提供了一种查询方法,所述方法包括:
3、获取查询请求,解析所述查询请求得到各组成字段;
4、根据解析得到的各组成字段,确定所述查询请求访问的数据库表和进行查询的查询区间;
5、获取所述数据库表的基本信息,确定与所述查询区间对应的待分区字段;
6、根据所述待分区字段,按照预设规则对所述数据库表进行分区,得到第一数量个子表;每一子表中包括至少一条数据记录;
7、基于所述第一数量个子表和所述查询请求,生成第一数量个子查询请求;
8、通过所述第一数量个子查询请求并行查询所述数据库表,得到第一数量个子查询结果;
9、对所述第一数量个子查询结果进行合并。
10、在一个可能的实施方式中,所述数据库表的基本信息包括表名、数据字段、数据类型;
11、所述待分区字段为所述数据字段中的至少一个字段。
12、在一个可能的实施方式中,所述预设规则是根据数据库表的大小和所述查询请求确定得到的。
13、在一个可能的实施方式中,当所述待分区字段包括第一数据字段和第二数据字段,确定所述第一数据字段对应的第一数据量和所述第二数据字段对应的第二数据量;
14、基于所述第一数据量和所述第二数据量的大小,将数据量较大的数据字段确定为最终待分区字段。
15、在本申请实施的第二方面,还提供了一种查询装置,包括:
16、组成字段确定模块,用于获取查询请求,解析所述查询请求得到各组成字段;
17、确定模块,用于根据解析得到的各组成字段,确定所述查询请求访问的数据库表和进行查询的查询区间;
18、待分区字段确定模块,用于获取所述数据库表的基本信息,确定与所述查询区间对应的待分区字段;
19、子表确定模块,用于根据所述待分区字段,按照预设规则对所述数据库表进行分区,得到第一数量个子表;每一子表中包括至少一条数据记录;
20、子查询请求生成模块,用于基于所述第一数量个子表和所述查询请求,生成第一数量个子查询请求;
21、查询模块,用于通过所述第一数量个子查询请求并行查询所述数据库表,得到第一数量个子查询结果;
22、合并模块,用于对所述第一数量个子查询结果进行合并。
23、在一个可能的实施方式中,所述数据库表的基本信息包括表名、数据字段、数据类型;
24、所述待分区字段为所述数据字段中的至少一个字段。
25、在一个可能的实施方式中,所述预设规则是根据数据库表的大小和所述查询请求确定得到的。
26、在一个可能的实施方式中,所述装置还包括:
27、数据量确定模块,用于当所述待分区字段包括第一数据字段和第二数据字段,确定所述第一数据字段对应的第一数据量和所述第二数据字段对应的第二数据量;
28、最终待分区字段确定模块,用于基于所述第一数据量和所述第二数据量的大小,将数据量较大的数据字段确定为最终待分区字段。
29、在本申请实施的又一方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
30、存储器,用于存放计算机程序;
31、处理器,用于执行存储器上所存放的程序时,实现上述任一所述的查询方法。
32、在本申请实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的查询方法。
33、在本申请实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的查询方法。
34、本申请实施例提供了一种查询方法、装置、电子设备及计算机可读存储介质,包括:获取查询请求,解析所述查询请求得到各组成字段;根据解析得到的各组成字段,确定所述查询请求访问的数据库表和进行查询的查询区间;获取所述数据库表的基本信息,确定与所述查询区间对应的待分区字段;根据所述待分区字段,按照预设规则对所述数据库表进行分区,得到第一数量个子表;每一子表中包括至少一条数据记录;基于所述第一数量个子表和所述查询请求,生成第一数量个子查询请求;通过所述第一数量个子查询请求并行查询所述数据库表,得到第一数量个子查询结果;对所述第一数量个子查询结果进行合并。本申请实施例中,通过获取并解析查询请求,确定查询请求访问的数据库表和进行查询的查询区间,进而确定数据库表中与查询区间对应的待分区字段,根据待分区字段,按照预设规则对数据库表进行分区,得到第一数量个子表,从而将查询请求也分成第一数量个子查询请求,对第一数量个子表进行并行查询,将第一数量个子查询结果的合并结果作为查询结果,可以减少查询的响应时间,提高查询速率。
1.一种查询方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述数据库表的基本信息包括表名、数据字段、数据类型;
3.根据权利要求1所述的方法,其特征在于,所述预设规则是根据数据库表的大小和所述查询请求确定得到的。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
5.一种查询装置,其特征在于,所述装置包括:
6.根据权利要求5所述的装置,其特征在于,所述数据库表的基本信息包括表名、数据字段、数据类型;
7.根据权利要求5所述的装置,其特征在于,所述预设规则是根据数据库表的大小和所述查询请求确定得到的。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4任一所述的方法步骤。