- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
3.1Paimon表模式
Paimon表底层使用LSMTree进行数据存储,在底层数据如何组织存储数据又分为不同的
Paimon表模式。下面先介绍LSMTree原理,然后再介绍Paimon表模式。
3.1.1LSMTree
LSM树(Log-StructuredMerge-Tree,日志合并结构树)是一种为优化写入性能而设计的分层、
有序、面向磁盘的数据结构,其核心原理是将随机写转化为顺序批量写,以提升整体写入效率,
LSM树因其写入性能优势,广泛应用于现代NoSQL数据库如HBase、Cassandra、RocksDB等。
LSM树由两部分组成,内存部分和磁盘部分,如下图所示:
内存部分:由一个MemTable(可变)和一个或者多个ImmutableMemTable(不可变)
组成。
磁盘部分:SSTable分层存储,通常被组织成多个Level,Level0包含最新的数据,LevelN
表示最老的数据。
以上架构图中涉及到的名词解释如下:
MemTable:内存中的有序数据结构,负责存储新写入的数据,支持高效的插入、查找和排
序操作。当内存中的数据达到一定量时,MemTable会被写入磁盘,成为不可变的
ImmutableMemTable。
ImmutableMemTable:一旦MemTable被写入磁盘,它就变为不可修改的Immutable
MemTable,其作用是暂时保存待写入磁盘的数据,确保数据不丢失并加快写入速度。
SSTable(SortedStringTable):磁盘上的持久化数据文件,数据写入磁盘后不会再修
改,每个SSTable中的数据是有序的,LSM树通过将新数据写入新的SSTable,如果要修改数
据时,LSMTree直接将修改数据写入到新的SSTable中,同样,删除数据时,LSMTree不
直接删除数据,而是写一个数据删除标记记录到一个新的SSTable中来避免了随机写入。
LSM查询数据时,查询按新到老的顺序从MemTable、ImmutableMemTable、SSTable(从
Level0到更高的Level)逐层查找目标数据,如果在新SSTable中找到了需查找的数据或相应的
删除标记,则直接返回查找结果;如果没有找到,再到老的SSTable中进行查找,直到最老的
SSTable查找完。
Compaction(合并):合并多个SSTable为一个新的SSTable的过程,删除旧数据和标记为
删除的数据,Compaction通过减少SSTable的数量,同时把修改前的数据或删除的数据真正
从SSTable中删除,优化查询性能。
3.1.2Paimon表模式
PaimonDataFie存储中使用了LSMTree的结构并进行结构改造,每个bucket是一个独立的LSM
树结构,包含多个文件,如下图所示:
当写入数据时,写入到LSM树的新记录会首先缓存在内存中,当内存缓冲区满时,所有内存中
的记录将被排序并刷新到磁盘,根据写入过程中的不同处理方式,存在三种表模式:MOR、
COW、MOW,下面分别介绍:
MOR(MergeOnRead,读时合并)
默认模式,数据写入时仅执行minorcompactions,读取时需要进行合并各个SSTfile。这种模
式特点是在读取数据如果分桶数据量非常大,读取性能非常差,但写入性能非常好。
使用这种模式时,可以设置参数“compaction.optimization-interval”(默认没有值)指定定
时执行Compaction的时间间隔,从而减少读取过程中对不同版本数据的合并操作,提高查询速
度。
COW(CopyOnWrite,写时复制)
这种模式在写入数据时同步进行全量合并,所有数据都会合并到最高Level,数据读取时不需再次
合并数据,读取性能非常好,由于每次写入数据都需要全量合并,每次写入都需要读取、写入并
生成新文件,导致写入性能差。
文档评论(0)