分布式数据库的数据表处理方法、装置、设备及存储介质制造方法及图纸

技术编号:38595672 阅读:8 留言:0更新日期:2023-08-26 23:32
本申请提供了一种分布式数据库的数据表处理方法、装置、设备及存储介质;分布式数据库包括多个节点;方法包括:获取分布式数据库中待连接的第一数据表和第二数据表,其中,第一数据表中的数据和第二数据表中的数据分散存储至多个节点中;获取第一数据表的第一数据分布以及第二数据表的第二数据分布;基于第一数据分布以及第二数据分布,对全量数据执行部分复制、部分重分布以及部分保持不变的操作,其中,全量数据包括第一数据表中的数据和第二数据表中的数据;对第一数据表中经过操作后的数据、以及第二数据表中经过操作后的数据进行连接操作,得到连接结果。通过本申请,能够解决数据倾斜问题,进而提高数据处理效率。进而提高数据处理效率。进而提高数据处理效率。

【技术实现步骤摘要】
分布式数据库的数据表处理方法、装置、设备及存储介质


[0001]本申请涉及数据处理及数据库
,尤其涉及一种分布式数据库的数据表处理方法、装置、设备及存储介质。

技术介绍

[0002]分布式数据库通常使用较小的计算机系统,每台计算机(又称节点)可单独放在一个地方,每台计算机中都可能有数据库管理系统(DBMS,DataBase Management System)的一份完整的拷贝副本,或者部分拷贝副本,并具有自己局部的数据库,位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的逻辑上集中、物理上分布的大型数据库。
[0003]数据倾斜是分布式数据库的难点,在特定数据分布的情况下,数据倾斜会造成分布式数据库的某些特定节点处理的数据量是其他节点的几百甚至上千倍,进而造成整体处理缓慢。
[0004]然而,对于如何解决分布式数据库中的数据倾斜问题,相关技术尚无有效的解决方案。

技术实现思路

[0005]本申请实施例提供一种分布式数据库的数据表处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够解决数据倾斜问题,进而提高数据处理效率。
[0006]本申请实施例的技术方案是这样实现的:
[0007]本申请实施例提供一种分布式数据库的数据表处理方法,所述分布式数据库包括多个节点;包括:
[0008]获取所述分布式数据库中待连接的第一数据表和第二数据表,其中,所述第一数据表中的数据和所述第二数据表中的数据分散存储至所述多个节点中;
[0009]获取所述第一数据表的第一数据分布以及所述第二数据表的第二数据分布;
[0010]基于所述第一数据分布以及所述第二数据分布,对全量数据执行部分复制、部分重分布以及部分保持不变的操作,其中,所述全量数据包括所述第一数据表中的数据和所述第二数据表中的数据;
[0011]对所述第一数据表中经过所述操作后的数据、以及所述第二数据表中经过所述操作后的数据进行连接操作,得到连接结果。
[0012]本申请实施例提供一种分布式数据库的数据表处理装置,所述分布式数据库包括多个节点;包括:
[0013]获取模块,用于获取所述分布式数据库中待连接的第一数据表和第二数据表,其中,所述第一数据表中的数据和所述第二数据表中的数据分散存储至所述多个节点中;
[0014]所述获取模块,还用于获取所述第一数据表的第一数据分布以及所述第二数据表的第二数据分布;
[0015]操作模块,用于基于所述第一数据分布以及所述第二数据分布,对全量数据执行部分复制、部分重分布以及部分保持不变的操作,其中,所述全量数据包括所述第一数据表中的数据和所述第二数据表中的数据;
[0016]连接模块,用于对所述第一数据表中经过所述操作后的数据、以及所述第二数据表中经过所述操作后的数据进行连接操作,得到连接结果。
[0017]本申请实施例提供一种电子设备,包括:
[0018]存储器,用于存储可执行指令;
[0019]处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的分布式数据库的数据表处理方法。
[0020]本申请实施例提供一种计算机可读存储介质,存储有计算机可执行指令,用于被处理器执行时,实现本申请实施例提供的分布式数据库的数据表处理方法。
[0021]本申请实施例提供一种计算机程序产品,包括计算机程序或计算机可执行指令,用于被处理器执行时,实现本申请实施例提供的分布式数据库的数据表处理方法。
[0022]本申请实施例具有以下有益效果:
[0023]针对分布式数据库中待连接的第一数据表和第二数据表,基于第一数据表的第一数据分布以及第二数据表的第二数据分布,对全量数据执行部分复制、部分重分布以及部分保持不变的操作,如此,使得经过操作后的全量数据在多个节点中的分布基本均匀,避免了相关技术在针对全量数据进行重新分布时,将大量的数据复制到同一节点中导致的数据倾斜问题,进而提升了数据处理效率。
附图说明
[0024]图1是本申请实施例提供的分布式数据库的数据表处理系统100的架构示意图;
[0025]图2是本申请实施例提供的电子设备600的结构示意图;
[0026]图3是本申请实施例提供的分布式数据库的数据表处理方法的流程示意图;
[0027]图4是本申请实施例提供的分布式数据库的数据表处理方法的流程示意图;
[0028]图5是本申请实施例提供的执行时长与数据倾斜之间的对应关系示意图;
[0029]图6是相关技术提供的分布式数据库的数据表处理方法的原理示意图;
[0030]图7是本申请实施例提供的分布式数据库的数据表处理方法的原理示意图;
[0031]图8是本申请实施例提供的分布式数据库的数据表处理方法的原理示意图;
[0032]图9是相关技术提供的分布式数据库的数据表处理方法的原理示意图;
[0033]图10是本申请实施例提供的分布式数据库的数据表处理方法的原理示意图;
[0034]图11是本申请实施例提供的分布式数据库的数据表处理方法的原理示意图;
[0035]图12是本申请实施例提供的分布式数据库的数据表处理方法的原理示意图;
[0036]图13是本申请实施例提供的分布式数据库的数据表处理方法的原理示意图;
[0037]图14是本申请实施例提供的效果对比示意图。
具体实施方式
[0038]为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有
做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
[0039]在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
[0040]可以理解的是,在本申请实施例中,涉及到用户信息等相关的数据,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
[0041]在以下的描述中,所涉及的术语“第一\第二\...”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\...”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
[0042]除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的
的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
[0043]对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
[004本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式数据库的数据表处理方法,其特征在于,所述分布式数据库包括多个节点;所述方法包括:获取所述分布式数据库中待连接的第一数据表和第二数据表,其中,所述第一数据表中的数据和所述第二数据表中的数据分散存储至所述多个节点中;获取所述第一数据表的第一数据分布以及所述第二数据表的第二数据分布;基于所述第一数据分布以及所述第二数据分布,对全量数据执行部分复制、部分重分布以及部分保持不变的操作,其中,所述全量数据包括所述第一数据表中的数据和所述第二数据表中的数据;对所述第一数据表中经过所述操作后的数据、以及所述第二数据表中经过所述操作后的数据进行连接操作,得到连接结果。2.根据权利要求1所述的方法,其特征在于,所述基于所述第一数据分布以及所述第二数据分布,对全量数据执行部分复制、部分重分布以及部分保持不变的操作,包括:基于所述第一数据分布以及所述第二数据分布,确定全量数据中用于执行复制操作的第一数据,所述全量数据中用于执行重分布操作的第二数据,以及所述全量数据中保持不变的第三数据;对所述第一数据执行所述复制操作,对所述第二数据执行所述重分布操作,保持所述第三数据不变。3.根据权利要求2所述的方法,其特征在于,所述基于所述第一数据分布以及所述第二数据分布,确定全量数据中用于执行复制操作的第一数据,所述全量数据中用于执行重分布操作的第二数据,以及所述全量数据中保持不变的第三数据,包括:响应于所述第一数据表和所述第二数据表的分布键都不是连接键,且所述连接键在其中一张数据表中对应的数据包括高频数据,其中,所述高频数据是出现次数大于次数阈值的数据,执行以下处理:将非目标数据表中与所述高频数据匹配的数据,作为用于执行复制操作的第一数据,其中,所述非目标数据表是所述第一数据表和所述第二数据表中不包括所述高频数据的数据表;将目标数据表中除所述高频数据之外的数据、以及所述非目标数据表中除与所述高频数据匹配的数据之外的数据,作为用于执行重分布操作的第二数据,其中,所述目标数据表是所述第一数据表和所述第二数据表中包括所述高频数据的数据表;将所述高频数据作为保持不变的第三数据。4.根据权利要求2所述的方法,其特征在于,所述基于所述第一数据分布以及所述第二数据分布,确定全量数据中用于执行复制操作的第一数据,所述全量数据中用于执行重分布操作的第二数据,以及所述全量数据中保持不变的第三数据,包括:响应于所述第一数据表和所述第二数据表的分布键都不是连接键,所述连接键在所述第一数据表中对应的数据包括第一高频数据,所述连接键在所述第二数据表中对应的数据包括第二高频数据,其中,所述第一高频数据是所述第一数据表中出现次数大于次数阈值的数据,所述第二高频数据是所述第二数据表中出现次数大于次数阈值的数据,且所述第一高频数据和所述第二高频数据之间没有交叠,执行以下处理:将所述第一数据表中与所述第二高频数据匹配的数据、以及所述第二数据表中与所述
第一高频数据匹配的数据,作为用于执行复制操作的第一数据;将所述第一数据表中除所述第一高频数据和与所述第二高频数据匹配的数据之外的数据、以及所述第二数据表中除所述第二高频数据和与所述第一高频数据匹配的数据之外的数据,作为用于执行重分布操作的第二数据;将所述第一高频数据以及所述第二高频数据,作为保持不变的第三数据。5.根据权利要求2所述的方法,其特征在于,所述基于所述第一数据分布以及所述第二数据分布,确定全量数据中用于执行复制操作的第一数据,所述全量数据中用于执行重分布操作的第二数据,以及所述全量数据中保持不变的第三数据,包括:响应于所述第一数据表和所述第二数据表中一张数据表的分布键为连接键,另一张数据表的分布键不是连接键,且所述连接键在非目标数据表中对应的数据包括高频数据,其中,所述非目标数据表是所述第一数据表和所述第二数据表中分布键不是连接键的数据表,所述高频数据是所述非目标数据表中出现次数大于次数阈值的数据,执行以下处理:将目标数据表中与所述高频数据匹配的数据,作为用于执行复制操作的第一数据,其中,所述目标数据表是所述第一数据表和所述第二数据表中分布键是连接键的数据表;将所述非目标数据表中除所述高频数据之外的数据,作为用于执行重分布操作的第二数据;将所述高频数据、以及所述目标数据表中除与所述高频数据匹配的数据之外的数据,作为保持不变的第三数据。6.根据权利要求2至5任一项所述的方法,其特征在于,所述对所述第一数据执行所述复制操作,对所述第二数据执行所述重分布操作,保持所述第三数据不变,包括:将所述第一数据复制到每个所述节点中;将所述第二数据,按照所述连接键在所述多个节点中进行重新分布;保持所述第三数据在所述多个节点中的分布方式不变。7.根据权利要求2所述的方法,其特征在于,所述基于所述第一数据分布以及所述第二数据分布,确定全量数据中用于执行复制操作的第一数据,所述全量数据中用于执行重分布操作的第二数据,以及所述全量数据中保持不...

【专利技术属性】
技术研发人员:李硕郑礼雄潘安群雷海林伍鑫张倩
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1