分布式数据库的数据处理方法和装置制造方法及图纸

技术编号:36539252 阅读:22 留言:0更新日期:2023-02-01 16:33
一种分布式数据库的数据处理方法和装置,所述分布式数据库部署在包括主节点和至少一个备用节点的多个数据库节点上,各数据库节点包括相同的目标表副本;所述方法包括:在将源表中的存量数据写入主节点的目标表副本的过程中,对写入主节点的目标表副本的存量数据进行压缩处理,得到压缩块;将所述压缩块写入主节点的第一重做日志;将主节点的第一重做日志同步到各备用节点;数据库节点的第一重做日志用于生成该数据库节点的major SSTable;数据库节点的数据存储结构自上而下包括内存表、minor SSTable和major SSTable;数据库节点存储的数据按照该数据库节点的数据存储结构自上而下的顺序被查询。上而下的顺序被查询。上而下的顺序被查询。

【技术实现步骤摘要】
分布式数据库的数据处理方法和装置


[0001]本公开涉及数据库
,尤其涉及分布式数据库的数据处理方法和装置。

技术介绍

[0002]在分布式数据库中,可能在不同的数据库节点上包括多个相同的目标表副本。在将源表中的数据写入目标表副本时,多个目标表副本之间需要进行同步,以确保各个目标表副本中的数据是一致的。由于同步过程中传输的数据量比较大,因此,有必要对数据同步过程进行改进,以减小数据同步过程中的带宽占用。此外,写入各个目标表副本的数据常常需要被查询,因此,需要保证一定的查询性能。然而,相关技术中难以兼顾目标表副本同步过程中的带宽占用和查询性能。

技术实现思路

[0003]第一方面,本公开实施例提供一种分布式数据库的数据处理方法,所述分布式数据库部署在包括主节点和至少一个备用节点的多个数据库节点上,各个数据库节点包括相同的目标表副本;所述方法包括:在将源表中的存量数据逐行写入所述主节点的目标表副本的过程中,对写入所述主节点的目标表副本的存量数据进行压缩处理,得到压缩块;将所述压缩块写入所述主节点的第一重做日志;将所述主节点的第一重做日志同步到各个备用节点;其中,数据库节点的第一重做日志用于生成该数据库节点的major SSTable;数据库节点的数据存储结构自上而下依次包括内存表、minor SSTable和major SSTable;数据库节点中存储的数据按照该数据库节点的数据存储结构自上而下的顺序被查询。
[0004]在一些实施例中,所述源表中的增量数据被写入各个数据库节点的内存表和minor SSTable。
[0005]在一些实施例中,所述方法还包括:在将源表中的增量数据写入所述主节点的目标表副本的过程中,将写入所述主节点的目标表副本的增量数据写入所述主节点的第二重做日志;将所述主节点的第二重做日志同步到各个备用节点;数据库节点的第二重做日志用于生成该数据库节点的内存表和minor SSTable。
[0006]在一些实施例中,所述方法还包括:在从所述主节点的目标表副本中查询目标数据时,若从所述主节点的内存表和minor SSTable中均未查询到所述目标数据,对所述主节点的major SSTable中的存量数据进行解压处理;从解压处理后的存量数据中查询所述目标数据。
[0007]在一些实施例中,写入所述主节点的目标表副本的存量数据被划分为一个或多个微块;所述对写入所述主节点的目标表副本的存量数据进行压缩处理,得到压缩块,包括:对写入所述主节点的目标表副本的每个微块进行压缩处理,得到该微块对应的压缩块;其中,数据库节点的重做日志中的多个压缩块被累积为宏块后,用于生成该数据库节点的major SSTable。
[0008]在一些实施例中,所述对写入所述主节点的目标表副本的每个微块进行压缩处
理,包括:对写入所述主节点的目标表副本的每个微块进行按列编码;对编码后的每个微块进行压缩处理。
[0009]在一些实施例中,数据库节点的重做日志中包括该数据库节点的各个宏块的描述信息,用于从该数据库节点的重做日志中解析出宏块。
[0010]在一些实施例中,每个宏块中包括用于生成该宏块的各个压缩块的描述信息,用于从该宏块中解析出各个压缩块。
[0011]第二方面,本公开实施例提供一种分布式数据库的数据处理方法,所述分布式数据库部署在包括主节点和至少一个备用节点的多个数据库节点上,各个数据库节点包括相同的目标表副本;所述方法应用于所述至少一个备用节点中的任意一个备用节点;所述方法包括:在将所述主节点的第一重做日志同步到备用节点后,对同步到备用节点的第一重做日志进行解析,得到至少一个压缩块;其中,所述主节点的第一重做日志中的各个压缩块通过对从源表逐行写入所述主节点的目标表副本的存量数据进行压缩处理得到;将解析得到的各个压缩块写入所述备用节点的major SSTable;其中,所述备用节点的数据存储结构自上而下依次包括内存表、minor SSTable和major SSTable;所述备用节点中存储的数据按照该备用节点的数据存储结构自上而下的顺序被读出。
[0012]第三方面,本公开实施例提供一种分布式数据库的数据处理装置,所述分布式数据库部署在包括主节点和至少一个备用节点的多个数据库节点上,各个数据库节点包括相同的目标表副本;所述装置包括:压缩模块,用于在将源表中的存量数据逐行写入所述主节点的目标表副本的过程中,对写入所述主节点的目标表副本的存量数据进行压缩处理,得到压缩块;第一写入模块,用于将所述压缩块写入所述主节点的第一重做日志;同步模块,用于将所述主节点的第一重做日志同步到各个备用节点;其中,数据库节点的第一重做日志用于生成该数据库节点的major SSTable;数据库节点的数据存储结构自上而下依次包括内存表、minor SSTable和major SSTable;数据库节点中存储的数据按照该数据库节点的数据存储结构自上而下的顺序被读出。
[0013]第四方面,本公开实施例提供一种分布式数据库的数据处理装置,所述分布式数据库部署在包括主节点和至少一个备用节点的多个数据库节点上,各个数据库节点包括相同的目标表副本;所述装置应用于所述至少一个备用节点中的任意一个备用节点;所述装置包括:解析模块,用于在将所述主节点的第一重做日志同步到备用节点后,对同步到备用节点的第一重做日志进行解析,得到至少一个压缩块;其中,所述主节点的第一重做日志中的各个压缩块通过对从源表逐行写入所述主节点的目标表副本的存量数据进行压缩处理得到;第二写入模块,用于将解析得到的各个压缩块写入所述备用节点的major SSTable;其中,所述备用节点的数据存储结构自上而下依次包括内存表、minor SSTable和major SSTable;所述备用节点中存储的数据按照该备用节点的数据存储结构自上而下的顺序被读出。
[0014]第五方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一实施例所述的方法。
[0015]第六方面,本公开实施例提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现任一实施例所述的方法。
[0016]本公开实施例一方面通过对写入主节点的目标表副本的存量数据进行压缩处理后写入主节点的第一重做日志,然后再将主节点的第一重做日志同步到各个备用节点,因此,能够有效减少同步过程中传输的数据量,从而减少目标表副本的数据同步过程中的带宽消耗;另一方面,由于压缩的数据仅用于生成数据存储结构中的最下层数据(即major SSTable的数据),而数据查询过程是按照数据库节点的数据存储结构自上而下的顺序进行的,因此,在查询过程中,会先在未被压缩的内存表和minor SSTable中进行查询,只有在内存表和minor SSTable中均未查询到相关数据时,才需要从major SSTable中查询数据,因此,即便major SSTable中的数据经过了压缩处理,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式数据库的数据处理方法,所述分布式数据库部署在包括主节点和至少一个备用节点的多个数据库节点上,各个数据库节点包括相同的目标表副本;所述方法包括:在将源表中的存量数据逐行写入所述主节点的目标表副本的过程中,对写入所述主节点的目标表副本的存量数据进行压缩处理,得到压缩块;将所述压缩块写入所述主节点的第一重做日志;将所述主节点的第一重做日志同步到各个备用节点;其中,数据库节点的第一重做日志用于生成该数据库节点的major SSTable;数据库节点的数据存储结构自上而下依次包括内存表、minor SSTable和major SSTable;数据库节点中存储的数据按照该数据库节点的数据存储结构自上而下的顺序被查询。2.根据权利要求1所述的方法,所述源表中的增量数据被写入各个数据库节点的内存表和minor SSTable。3.根据权利要求2所述的方法,所述方法还包括:在将源表中的增量数据写入所述主节点的目标表副本的过程中,将写入所述主节点的目标表副本的增量数据写入所述主节点的第二重做日志;将所述主节点的第二重做日志同步到各个备用节点;数据库节点的第二重做日志用于生成该数据库节点的内存表和minor SSTable。4.根据权利要求2所述的方法,所述方法还包括:在从所述主节点的目标表副本中查询目标数据时,若从所述主节点的内存表和minor SSTable中均未查询到所述目标数据,对所述主节点的major SSTable中的存量数据进行解压处理;从解压处理后的存量数据中查询所述目标数据。5.根据权利要求1所述的方法,写入所述主节点的目标表副本的存量数据被划分为一个或多个微块;所述对写入所述主节点的目标表副本的存量数据进行压缩处理,得到压缩块,包括:对写入所述主节点的目标表副本的每个微块进行压缩处理,得到该微块对应的压缩块;其中,数据库节点的重做日志中的多个压缩块被累积为宏块后,用于生成该数据库节点的major SSTable。6.根据权利要求5所述的方法,所述对写入所述主节点的目标表副本的每个微块进行压缩处理,包括:对写入所述主节点的目标表副本的每个微块进行按列编码;对编码后的每个微块进行压缩处理。7.根据权利要求5所述的方法,数据库节点的重做日志中包括该数据库节点的各个宏块的描述信息,用于从该数据库节点的重做日志中解析出宏块。8.根据权利要求5所述的方法,每个宏块中包括用于生成该宏块的各个压缩块的描述信息,用于从该宏块中解析出各个压缩块。9.一种分布式数据库的数据处理方法,所述分布式数据库部署在包括主节点和至少一个备用节点的多个数据库节点上,各个数据库节点包括相同的目标表副本;所述...

【专利技术属性】
技术研发人员:孙坚运谢振江赵裕众
申请(专利权)人:北京奥星贝斯科技有限公司
类型:发明
国别省市:

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

1