本技术涉及云计算,特别是涉及一种数据对比方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术:
1、目前,在相关方案中,对大数据集进行数据对比时,通常采用唯一键排序后再进行范围分片处理的方式,将两个待对比的数据集进行分片处理后,分配至不同的计算节点上进行,根据唯一键的排序顺序进行对比,从而得到各组分片的对比结果,进而统计出差异信息。
2、然而,这种根据范围分片的方案在数据分布不均匀的场景下容易产生集中分布问题,也即某些分片中的数据量过大,而另一些分片的数据量较小,从而引起特定分片的计算负载过高。
技术实现思路
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、第四方面,本技术还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
35、获取待对比的源数据集和目标数据集,并根据所述源数据集和所述目标数据集,确定候选基准字段;
36、分别统计所述源数据集和所述目标数据集中各个所述候选基准字段对应的数据量分布情况,并根据所述数据量分布情况选取同时符合所述源数据集和所述目标数据集的均匀分布条件的所述候选基准字段作为目标基准字段;
37、根据所述目标基准字段分别对所述源数据集和所述目标数据集中的数据进行分片处理,得到源对比数据集和目标对比数据集;
38、对比所述源对比数据集和所述目标对比数据集,得到数据对比结果。
39、第五方面,本技术还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
40、获取待对比的源数据集和目标数据集,并根据所述源数据集和所述目标数据集,确定候选基准字段;
41、分别统计所述源数据集和所述目标数据集中各个所述候选基准字段对应的数据量分布情况,并根据所述数据量分布情况选取同时符合所述源数据集和所述目标数据集的均匀分布条件的所述候选基准字段作为目标基准字段;
42、根据所述目标基准字段分别对所述源数据集和所述目标数据集中的数据进行分片处理,得到源对比数据集和目标对比数据集;
43、对比所述源对比数据集和所述目标对比数据集,得到数据对比结果。
44、上述数据对比方法、装置、计算机设备、存储介质和计算机程序产品,通过获取待对比的源数据集和目标数据集,并根据源数据集和目标数据集,确定候选基准字段,分别统计源数据集和目标数据集中各个候选基准字段对应的数据量分布情况,并根据数据量分布情况选取同时符合源数据集和目标数据集的均匀分布条件的候选基准字段作为目标基准字段,从而使得用于进行数据分片的基准字段对应的各个分片范围更加均匀,根据目标基准字段分别对源数据集和目标数据集中的数据进行分片处理,得到源对比数据集和目标对比数据集,对比源对比数据集和目标对比数据集,得到数据对比结果。因此,在数据分布不均匀的场景下,能够选取合适的目标基准字段,能够避免集中分布问题,避免某些分片中的数据量过大,而另一些分片的数据量较小,进而避免了数据对比过程中特定分片的计算负载过高。