本申请涉及数据处理,尤其涉及一种数据并行查询方法、装置、存储介质及计算机设备。
背景技术:
1、随着数据中心技术、通信技术、互联网技术的发展,数据积累的越来越多。面对激增的数据,用户为了挖掘出有价值的数据,可以设置相应的查询条件来生成sql查询语句,进而通过该sql查询语句从数据库中查询到具有相应需求的数据。其中,用户需要设置的查询条件随着数据库中存储的数据量的增多而增多。
2、目前大多数企业系统中数据库的查询条件设置的个数有限,因此生成的sql查询语句是有一定限制的,当查询条件超过限制个数时,企业系统执行sql查询语句时将会直接显示异常。对此,一些企业采用了union all查询方法进行数据库的条件并行查询,然而,该查询方法受到数据库版本的限制,导致一些数据库不能支持sql查询语句的并行查询。
技术实现思路
1、本申请的目的旨在至少能解决上述的技术缺陷之一,特别是现有技术中数据库的查询方法受到数据库版本的限制,导致一些数据库不能支持sql查询语句的并行查询的技术缺陷。
2、本申请提供了一种数据并行查询方法,所述方法包括:
3、获取sql查询语句,所述sql查询语句由多个查询条件构成;
4、根据预设关联数据表以及各个查询条件将sql查询语句拆分为多个查询子语句;
5、调用并行流函数对各个查询子语句进行并行查询,得到所述sql查询语句对应的查询结果。
6、可选地,所述根据预设关联数据表以及各个查询条件将sql查询语句拆分为多个查询子语句,包括:
7、根据预设关联数据表对所述sql查询语句进行拆解,得到多个查询条件;
8、根据预设分组个数对各个查询条件进行分组,得到多个查询子语句。
9、可选地,所述根据预设关联数据表对所述sql查询语句进行拆解,得到多个查询条件,包括:
10、对所述sql查询语句进行拆解,得到多个查询数据,并根据预设关联数据表确定所述sql查询语句中的各个关联关系;其中,每一查询数据对应一个关联关系;
11、针对每一关联关系,判断该关联关系是否仅对应一个查询数据;
12、若是,则将该关联关系对应的一个查询数据作为该关联关系对应的查询条件;
13、若否,则将该关联关系对应的多个查询数据进行关联,形成该关联关系对应的查询条件。
14、可选地,所述调用并行流函数对各个查询子语句进行并行查询,得到所述sql查询语句对应的查询结果,包括:
15、确定所述并行流函数对应的线程池;
16、利用所述线程池对各个查询子语句进行多线程查询,得到每一查询子语句对应的输出结果;
17、将各个查询子语句的输出结果进行合并,得到所述sql查询语句对应的查询结果。
18、可选地,所述利用所述线程池对各个查询子语句进行多线程查询,包括:
19、确定所述线程池的线程并行数;
20、根据所述线程并行数对各个查询子语句进行分组,得到多个查询分组;
21、利用所述线程池依次对每一查询分组中的查询子语句进行并行查询。
22、可选地,所述利用所述线程池依次对每一查询分组中的查询子语句进行并行查询,包括:
23、针对每一查询分组,遍历所述查询分组中的各个查询子语句,并将各个查询子语句分别分配至所述线程池中的各个线程中,并通过各个线程调用查询函数对各个查询子语句进行数据查询,得到各个线程输出的与每一查询子语句对应的输出结果。
24、本申请还提供了一种数据并行查询装置,包括:
25、语句获取模块,用于获取sql查询语句,所述sql查询语句由多个查询条件构成;
26、语句拆分模块,用于根据预设关联数据表以及各个查询条件将sql查询语句拆分为多个查询子语句;
27、语句查询模块,用于调用并行流函数对各个查询子语句进行并行查询,得到所述sql查询语句对应的查询结果。
28、可选地,所述语句拆分模块包括:
29、语句拆解子模块,用于根据预设关联数据表对所述sql查询语句进行拆解,得到多个查询条件;
30、条件分组子模块,用于根据预设分组个数对各个查询条件进行分组,得到多个查询子语句。
31、本申请还提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述数据并行查询方法的步骤。
32、本申请还提供了一种计算机设备,包括:一个或多个处理器,以及存储器;
33、所述存储器中存储有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,执行如上述实施例中任一项所述数据并行查询方法的步骤。
34、从以上技术方案可以看出,本申请实施例具有以下优点:
35、本申请提供的数据并行查询方法、装置、存储介质及计算机设备,当需要在数据库中进行数据查询时,可以先获取sql查询语句,该sql查询语句是由多个查询条件构成的,在此sql查询语句中的查询条件不受个数限制;接着可以根据预设关联数据表将sql查询语句中的各个查询条件拆分为多个查询子语句,通过将sql查询语句拆分为多个部分,以便分别对每一部分进行查询处理,这样可以利用目前企业系统采用的多核处理器的优势,加快查询速度;最后可以调用并行流函数对各个查询子语句进行并行查询,得到sql查询语句对应的查询结果,在此并行流函数可以将sql查询语句的查询操作分配给多个线程,并在多核处理器上并发执行,实现数据库的条件并行查询。本申请采用并行流函数对拆分后的sql查询语句进行并行查询的方式,可以减少手动管理线程和并发操作的复杂性,适用于各类版本的数据库,从而提高了数据查询的可扩展性。
1.一种数据并行查询方法,其特征在于,所述方法包括:
2.根据权利要求1所述的数据并行查询方法,其特征在于,所述根据预设关联数据表以及各个查询条件将sql查询语句拆分为多个查询子语句,包括:
3.根据权利要求2所述的数据并行查询方法,其特征在于,所述根据预设关联数据表对所述sql查询语句进行拆解,得到多个查询条件,包括:
4.根据权利要求1所述的数据并行查询方法,其特征在于,所述调用并行流函数对各个查询子语句进行并行查询,得到所述sql查询语句对应的查询结果,包括:
5.根据权利要求4所述的数据并行查询方法,其特征在于,所述利用所述线程池对各个查询子语句进行多线程查询,包括:
6.根据权利要求5所述的数据并行查询方法,其特征在于,所述利用所述线程池依次对每一查询分组中的查询子语句进行并行查询,包括:
7.一种数据并行查询装置,其特征在于,包括:
8.根据权利要求7所述的数据并行查询装置,其特征在于,所述语句拆分模块包括:
9.一种存储介质,其特征在于:所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至6中任一项所述数据并行查询方法的步骤。
10.一种计算机设备,其特征在于,包括:一个或多个处理器,以及存储器;