本发明涉及数据库,具体地涉及一种数据处理方法、装置、设备和存储介质。
背景技术:
1、在集群数据库中,传统的并行分组聚集操作依赖于数据采样进而确定数据切分方式。对于包含去重算子 (distinct)的结构化化查询语句,系统目前仅支持基于哈希算法的数据分区策略。在业务表中不同分组之间的数据值差距较大并且去重算子所绑定的字段相对唯一的情况下,基于哈希算法的数据分区策略会导致数据在集群节点间的不均匀分布。由于数据可能会集中在少数几个节点上,而其他节点未能充分利用,少数节点计算负载的增加,会导致其他节点的资源闲置,影响了集群服务器查询的并行处理能力和系统的整体吞吐量。
技术实现思路
1、鉴于上述问题,本发明提供了一种数据处理方法、装置、设备和存储介质。
2、根据本发明的第一个方面,提供了一种数据处理方法,包括:
3、对与业务总表有关的数据去重任务进行识别,得到识别结果;在识别结果包含去重算子的情况下,对数据去重任务进行转换,生成不包含去重算子的数据查询任务,其中,数据去重任务中的去重算子绑定有参考字段信息,用于对参考字段信息进行去重操作,数据去重任务中的分组算子绑定有基准字段信息,用于对基准字段信息进行分组操作,数据查询任务中的分组算子绑定有基准字段信息和参考字段信息,用于对基准字段信息和参考字段信息进行分组操作;响应于接收到的数据查询任务,确定均衡划分策略;基于均衡划分策略,对业务总表中的数据进行划分,得到多个业务子表,其中,多个业务子表各自的数据量相同,多个业务子表均衡分布在集群服务器中的多个节点上; 针对多个业务子表,执行数据查询任务,得到目标查询结果。
4、可选的,数据去重任务中还包括绑定有与参考字段信息对应的去重结果的聚合算子、绑定有参考字段信息的平均算子,聚合算子用于对参考字段信息的去重结果进行聚合操作,平均算子用于对参考字段信息进行平均操作,数据查询任务包括数据查询子任务、数据第一聚合子任务、数据第二聚合子任务和数据平均子任务;其中,针对多个业务子表,执行数据查询任务,得到目标查询结果,包括:
5、针对多个业务子表,执行数据查询子任务,得到与多个业务子表各自对应的初始查询结果;执行数据第一聚合子任务,对多个初始查询结果进行聚合,得到中间聚合结果。执行数据第二聚合子任务,对中间聚合结果进行聚合,得到目标聚合结果,其中,目标聚合结果包括与参考字段信息对应的去重结果的聚合结果;执行数据平均子任务,对目标聚合结果进行平均处理,得到目标查询结果,其中,目标查询结果包括参考字段信息的平均结果。
6、可选的,执行数据第一聚合子任务,对多个查询结果进行聚合,得到中间聚合结果,包括:
7、执行数据第一聚合子任务中绑定有基准字段信息和参考字段信息的分组算子、绑定有参考字段信息的聚合算子和绑定有参考字段信息的计数算子,对多个查询结果进行聚合,得到中间聚合结果,其中,中间聚合结果包括基准字段分组子结果、参考字段分组子结果、参考字段分组聚合子结果、参考字段分组计数子结果,参考字段分组子结果表征参考字段信息的去重结果。
8、可选的,执行数据第二聚合子任务,对中间聚合结果进行聚合,得到目标聚合结果,包括:
9、执行数据第二聚合子任务中绑定有基准字段信息的分组算子,对中间聚合结果进行分组,得到与基准字段信息对应的第二分组结果;执行数据第二聚合子任务中的聚合算子,对第二分组结果进行聚合操作,得到目标聚合结果,其中,目标聚合结果包括参考字段分组子结果的聚合子结果、参考字段分组聚合子结果的聚合子结果和参考字段分组计数子结果的聚合子结果,参考字段分组子结果的聚合子结果表征与参考字段信息对应的去重结果的聚合结果。
10、可选的,执行数据平均子任务,对目标聚合结果进行平均处理,得到目标查询结果,包括:
11、执行数据平均子任务,对目标聚合结果中的参考字段分组聚合子结果的聚合子结果和参考字段分组计数子结果的聚合子结果进行平均操作,得到参考字段平均子结果,其中,参考字段平均子结果表征参考字段信息的平均结果;根据参考字段平均子结果和参考字段分组子结果的聚合子结果,得到目标查询结果。
12、可选的,基于均衡划分策略,对业务总表中的数据进行划分,得到多个业务子表,包括:
13、基于均衡划分策略,确定分区数量和业务总表的数据量;根据分区数量和业务总表的数据量,对业务总表中的数据进行划分,确定多个业务子表各自的数据。
14、可选的,均衡划分策略还包括以下至少之一:轮询分区策略、随机分区策略。
15、本发明的第二方面提供了一种数据处理装置,包括:
16、识别模块,用于对与业务总表有关的数据去重任务进行识别,得到识别结果;
17、转换模块,用于在识别结果包含去重算子的情况下,对数据去重任务进行转换,生成不包含去重算子的数据查询任务,其中,数据去重任务中的去重算子绑定有参考字段信息,用于对参考字段信息进行去重操作,数据去重任务中的分组算子绑定有基准字段信息,用于对基准字段信息进行分组操作,数据查询任务中的分组算子绑定有基准字段信息和参考字段信息,用于对基准字段信息和参考字段信息进行分组操作;
18、响应模块,用于响应于接收到的数据查询任务,确定均衡划分策略;
19、划分模块,用于基于均衡划分策略,对业务总表中的数据进行划分,得到多个业务子表,其中,多个业务子表各自的数据量相同,多个业务子表均衡分布在集群服务器中的多个节点上;
20、执行模块,用于针对多个业务子表,执行数据查询任务,得到目标查询结果。
21、本发明的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行上述数据处理方法。
22、本发明的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述数据处理方法。
23、根据本发明提供的数据处理方法、装置、设备和存储介质,通过对包含去重算子的数据去重任务进行转换,生成不包含去重算子的数据查询任务,确定均衡划分策略,从而得到多个业务子表;执行数据查询任务,得到目标查询结果。由于利用绑定有基准字段信息和参考字段信息的分组算子对绑定有参考字段信息的去重算子进行灵活替换,保证了数据查询任务不包含去重算子,并确定了对业务总表中数据切分的均衡划分策略,从而在得到与执行数据去重任务结果相同的目标查询结果的同时,解决了利用去重算子对不同组内数据量差异较大的业务总表进行去重时产生的数据分布倾斜问题,充分利用了集群服务器中的多个节点的计算资源,提高了集群服务器的并行处理能力和系统的整体吞吐量。
1.一种数据处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述数据去重任务中还包括绑定有与参考字段信息对应的去重结果的聚合算子、绑定有所述参考字段信息的平均算子,所述聚合算子用于对所述参考字段信息的所述去重结果进行聚合操作,所述平均算子用于对所述参考字段信息进行平均操作,所述数据查询任务包括数据查询子任务、数据第一聚合子任务、数据第二聚合子任务和数据平均子任务;
3.根据权利要求2所述的方法,其特征在于, 执行所述数据第一聚合子任务,对所述多个查询结果进行聚合,得到中间聚合结果,包括:
4.根据权利要求3所述的方法,其特征在于,执行所述数据第二聚合子任务,对所述中间聚合结果进行聚合,得到目标聚合结果,包括:
5.根据权利要求4所述的方法,其特征在于,执行所述数据平均子任务,对所述目标聚合结果进行平均处理,得到所述目标查询结果,包括:
6.根据权利要求1所述的方法,其特征在于,基于所述均衡划分策略,对所述业务总表中的数据进行划分,得到多个业务子表,包括:
7.根据权利要求1所述的方法,其特征在于,所述均衡划分策略还包括以下至少之一:
8.一种数据处理装置,其特征在于,所述装置包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1至7中任一项所述的方法。