本技术属于计算机,具体涉及一种表格连接方法、表格连接装置、计算机可读介质、电子设备以及计算机程序产品。
背景技术:
1、在数据库的应用场景中,经常需要将数据库中的多个不同的表格连接组合起来,以便同时使用不同表格中的数据。在对表格进行连接组合时,一般会将表格内的所有数据行和数据列做多次地复制和传输,随着表格规模越来越大,表格间的连接组合操作将会消耗大量的计算资源和网络传输资源,导致计算机运行性能下降。
技术实现思路
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、集合分配模块,被配置为将所述哈希值集合分配至各个计算节点,并根据分配结果确定对应于多个所述计算节点的多组分区数据。
45、在本技术的一些实施例中,基于以上技术方案,所述筛选模块包括:
46、数量比较模块,被配置为在所述计算节点上比较分别归属于两个待连接的表格的两组分区数据的数据数量;
47、哈希运算模块,被配置为对数据数量较少的一组分区数据进行哈希运算,得到对应于该组分区数据的哈希表;
48、匹配筛选模块,被配置为将数据数量较多的一组分区数据与所述哈希表进行匹配筛选,得到所述两组分区数据的交集数据。
49、根据本技术实施例的一个方面,提供一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如以上技术方案中的表格连接方法。
50、根据本技术实施例的一个方面,提供一种电子设备,该电子设备包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器被配置为经由执行所述可执行指令来执行如以上技术方案中的表格连接方法。
51、根据本技术实施例的一个方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如以上技术方案中的表格连接方法。
52、在本技术的一些实施例中,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如以上技术方案中的表格连接方法。
53、在本技术实施例提供的技术方案中,通过从表格中提取对应于键值的字段数据,可以单独对字段数据进行分区处理,从而在计算节点上对分区数据进行匹配筛选,最终基于筛选得到的交集数据更新待连接的表格;本技术实施例无需对表格的全量数据做分区和匹配处理,能够在提高表格连接效率的同时,极大地节约单个计算节点上的存储资源和计算资源,而且可以减少多个计算节点之间的数据传输量,节约网络带宽资源。
54、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。