【技术实现步骤摘要】
分布式数据库的数据表处理方法、装置、设备及存储介质
[0001]本申请涉及数据处理及数据库
,尤其涉及一种分布式数据库的数据表处理方法、装置、设备及存储介质。
技术介绍
[0002]分布式数据库通常使用较小的计算机系统,每台计算机(又称节点)可单独放在一个地方,每台计算机中都可能有数据库管理系统(DBMS,DataBase Management System)的一份完整的拷贝副本,或者部分拷贝副本,并具有自己局部的数据库,位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的逻辑上集中、物理上分布的大型数据库。
[0003]数据倾斜是分布式数据库的难点,在特定数据分布的情况下,数据倾斜会造成分布式数据库的某些特定节点处理的数据量是其他节点的几百甚至上千倍,进而造成整体处理缓慢。
[0004]然而,对于如何解决分布式数据库中的数据倾斜问题,相关技术尚无有效的解决方案。
技术实现思路
[0005]本申请实施例提供一种分布式数据库的数据表处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够解决数据倾斜问题,进而提高数据处理效率。
[0006]本申请实施例的技术方案是这样实现的:
[0007]本申请实施例提供一种分布式数据库的数据表处理方法,所述分布式数据库包括多个节点;包括:
[0008]获取所述分布式数据库中待连接的第一数据表和第二数据表,其中,所述第一数据表中的数据和所述第二数据表中的数据分散存储至所述多个节点中;
[00 ...
【技术保护点】
【技术特征摘要】
1.一种分布式数据库的数据表处理方法,其特征在于,所述分布式数据库包括多个节点;所述方法包括:获取所述分布式数据库中待连接的第一数据表和第二数据表,其中,所述第一数据表中的数据和所述第二数据表中的数据分散存储至所述多个节点中;获取所述第一数据表的第一数据分布以及所述第二数据表的第二数据分布;基于所述第一数据分布以及所述第二数据分布,对全量数据执行部分复制、部分重分布以及部分保持不变的操作,其中,所述全量数据包括所述第一数据表中的数据和所述第二数据表中的数据;对所述第一数据表中经过所述操作后的数据、以及所述第二数据表中经过所述操作后的数据进行连接操作,得到连接结果。2.根据权利要求1所述的方法,其特征在于,所述基于所述第一数据分布以及所述第二数据分布,对全量数据执行部分复制、部分重分布以及部分保持不变的操作,包括:基于所述第一数据分布以及所述第二数据分布,确定全量数据中用于执行复制操作的第一数据,所述全量数据中用于执行重分布操作的第二数据,以及所述全量数据中保持不变的第三数据;对所述第一数据执行所述复制操作,对所述第二数据执行所述重分布操作,保持所述第三数据不变。3.根据权利要求2所述的方法,其特征在于,所述基于所述第一数据分布以及所述第二数据分布,确定全量数据中用于执行复制操作的第一数据,所述全量数据中用于执行重分布操作的第二数据,以及所述全量数据中保持不变的第三数据,包括:响应于所述第一数据表和所述第二数据表的分布键都不是连接键,且所述连接键在其中一张数据表中对应的数据包括高频数据,其中,所述高频数据是出现次数大于次数阈值的数据,执行以下处理:将非目标数据表中与所述高频数据匹配的数据,作为用于执行复制操作的第一数据,其中,所述非目标数据表是所述第一数据表和所述第二数据表中不包括所述高频数据的数据表;将目标数据表中除所述高频数据之外的数据、以及所述非目标数据表中除与所述高频数据匹配的数据之外的数据,作为用于执行重分布操作的第二数据,其中,所述目标数据表是所述第一数据表和所述第二数据表中包括所述高频数据的数据表;将所述高频数据作为保持不变的第三数据。4.根据权利要求2所述的方法,其特征在于,所述基于所述第一数据分布以及所述第二数据分布,确定全量数据中用于执行复制操作的第一数据,所述全量数据中用于执行重分布操作的第二数据,以及所述全量数据中保持不变的第三数据,包括:响应于所述第一数据表和所述第二数据表的分布键都不是连接键,所述连接键在所述第一数据表中对应的数据包括第一高频数据,所述连接键在所述第二数据表中对应的数据包括第二高频数据,其中,所述第一高频数据是所述第一数据表中出现次数大于次数阈值的数据,所述第二高频数据是所述第二数据表中出现次数大于次数阈值的数据,且所述第一高频数据和所述第二高频数据之间没有交叠,执行以下处理:将所述第一数据表中与所述第二高频数据匹配的数据、以及所述第二数据表中与所述
第一高频数据匹配的数据,作为用于执行复制操作的第一数据;将所述第一数据表中除所述第一高频数据和与所述第二高频数据匹配的数据之外的数据、以及所述第二数据表中除所述第二高频数据和与所述第一高频数据匹配的数据之外的数据,作为用于执行重分布操作的第二数据;将所述第一高频数据以及所述第二高频数据,作为保持不变的第三数据。5.根据权利要求2所述的方法,其特征在于,所述基于所述第一数据分布以及所述第二数据分布,确定全量数据中用于执行复制操作的第一数据,所述全量数据中用于执行重分布操作的第二数据,以及所述全量数据中保持不变的第三数据,包括:响应于所述第一数据表和所述第二数据表中一张数据表的分布键为连接键,另一张数据表的分布键不是连接键,且所述连接键在非目标数据表中对应的数据包括高频数据,其中,所述非目标数据表是所述第一数据表和所述第二数据表中分布键不是连接键的数据表,所述高频数据是所述非目标数据表中出现次数大于次数阈值的数据,执行以下处理:将目标数据表中与所述高频数据匹配的数据,作为用于执行复制操作的第一数据,其中,所述目标数据表是所述第一数据表和所述第二数据表中分布键是连接键的数据表;将所述非目标数据表中除所述高频数据之外的数据,作为用于执行重分布操作的第二数据;将所述高频数据、以及所述目标数据表中除与所述高频数据匹配的数据之外的数据,作为保持不变的第三数据。6.根据权利要求2至5任一项所述的方法,其特征在于,所述对所述第一数据执行所述复制操作,对所述第二数据执行所述重分布操作,保持所述第三数据不变,包括:将所述第一数据复制到每个所述节点中;将所述第二数据,按照所述连接键在所述多个节点中进行重新分布;保持所述第三数据在所述多个节点中的分布方式不变。7.根据权利要求2所述的方法,其特征在于,所述基于所述第一数据分布以及所述第二数据分布,确定全量数据中用于执行复制操作的第一数据,所述全量数据中用于执行重分布操作的第二数据,以及所述全量数据中保持不...
【专利技术属性】
技术研发人员:李硕,郑礼雄,潘安群,雷海林,伍鑫,张倩,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。