本公开涉及数据处理领域,尤其涉及一种分布式文件系统中的表连接处理方法、装置、设备及存储介质。
背景技术:
1、在分布式文件系统中,当需要对两个具有相同属性的数据表进行连接操作时,如果待连接的数据表出现分布不均匀的数据分区时,则会很容易出现数据倾斜的问题。例如,有些分区对应的数据量为200m,有些分区对应的数据量为1g,在实际的任务处理过程(在相同的硬件资源下)中,后者运行时间显然比前者多。具体表现为在reduce阶段大部分分区的任务已经执行完成,而有一小部分分区一直在执行中,如果后续需要对数据表进行分析,则需要等待所有的分区对应的任务全部执行完成,显然,由于数据表中存在数据倾斜的情况会导致整个map-reduce阶段的处理时间较长,严重影响了系统的计算性能。
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、本公开实施例提供了一种分布式文件系统中的表连接处理方法,确定待连接数据表,其中,待连接数据表包括第一数据表和第二数据表;如果确定第一数据表中存在数据倾斜,则从第一数据表被划分的数据分区中确定第一待处理数据分区;将第一待处理分区切分为第一数量的子数据分区;在第二数据表中,确定与第一待处理数据分区具有相同关联键的第二待处理数据分区,并复制第二待处理数据分区得到第一数量的副本数据分区;将第一数量的子数据分区分别与第一数量的副本数据分区进行映射关联,得到映射关联后数据分区,以基于映射关联后数据分区对第一数据表和第二数据表进行表连接处理。可见,本公开实施例在进行表连接处理之前,能够将第一数据表中存在数据倾斜的数据分区切分为多个子数据分区,使得切分后的第一数据表中的各个数据分区的数据分布较为均匀,从而有效解决了数据倾斜问题,提高了系统的计算性能。
1.一种分布式文件系统中的表连接处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述如果确定所述第一数据表中存在数据倾斜,则从所述第一数据表被划分的数据分区中确定第一待处理数据分区,包括:
3.根据权利要求2所述的方法,其特征在于,所述第一数量为基于所述第一待处理数据分区的数据量与所述分区中位数确定。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
8.一种分布式文件系统中的表连接处理装置,其特征在于,所述装置包括:
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备实现如权利要求1-7任一项所述的方法。
10.一种分布式文件系统中的表连接处理设备,其特征在于,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-7任一项所述的方法。