0
点赞
收藏
分享

微信扫一扫

Git 指令深入浅出【2】—— 分支管理

倪雅各 02-29 19:30 阅读 2
数据库

1)Commits:表示一批记录原子性的写入到一张表中。

2)Cleans:清除表中不再需要的旧版本文件。

3)Delta_commit:增量提交指的是将一批记录原子地写入MergeOnRead类型表,其中一些/所有数据都可以写入增量日志。

4)Compaction:将行式文件转化为列式文件。

5)Rollback:Commits或者Delta_commit执行不成功时回滚数据,删除期间产生的任意文件。

每次checkpoint时都会把缓存中数据刷盘,生成deltacommit  文件(增量日志)和commit文件,每n次deltacommit或者每n秒做一次压缩操作,触发压缩时也会触发clean操作,压缩是将coimmit文件压缩,可以设置最大压缩的IO大小

Commit(提交)文件:在Hudi中,commit文件是用于记录数据写入操作的元数据文件。每次写入数据时,Hudi会生成一个commit文件,其中包含了写入数据的时间戳、数据文件的路径等信息。Commit文件的存在可以确保数据的一致性和可恢复性。

DeltaCommit(增量提交)文件:DeltaCommit文件是用于记录增量数据写入操作的元数据文件。增量数据是指在已有数据的基础上进行的更新、插入或删除操作。每次进行增量操作时,Hudi会生成一个DeltaCommit文件,其中包含了增量操作的元数据信息。DeltaCommit文件的存在可以追踪到增量操作的历史,以便在需要时进行回滚或恢复。

Clean(清理)文件:Clean文件是用于记录数据清理操作的元数据文件。当Hudi需要清理或删除过期或无效的数据时,会生成一个Clean文件,其中包含了要清理的数据文件的路径等信息。Clean文件的存在可以确保数据的清理操作被记录和跟踪。

1.开始提交:判断上次任务是否失败,如果失败会触发回滚操作。然后会根据当前时间生成一个事务开始的请求标识元数据。2.构造HoodieRecord Rdd对象:Hudi 会根据元数据信息构造HoodieRecord Rdd 对象,方便后续数据去重和数据合并。3.数据去重:一批增量数据中可能会有重复的数据,Hudi会根据主键对数据进行去重避免重复数据写入Hudi 表。4.数据fileId位置信息获取:在修改记录中可以根据索引获取当前记录所属文件的fileid,在数据合并时需要知道数据update操作向那个fileId文件写入新的快照文件。5.数据合并:Hudi 有两种模式cow和mor。在cow模式中会重写索引命中的fileId快照文件;在mor 模式中根据fileId 追加到分区中的log 文件。6.完成提交:在元数据中生成xxxx.commit文件,只有生成commit 元数据文件,查询引擎才能根据元数据查询到刚刚upsert 后的数据。7.compaction压缩:主要是mor 模式中才会有,他会将mor模式中的xxx.log 数据合并到xxx.parquet 快照文件中去。8.hive元数据同步:hive 的元素数据同步这个步骤需要配置非必需操作,主要是对于hive 和presto 等查询引擎,需要依赖hive 元数据才能进行查询,所以hive元数据同步就是构造外表提供查询。

参考: 

https://download.csdn.net/blog/column/11942229/126891750

Hudi关键术语及其概述-腾讯云开发者社区-腾讯云

数据湖(三):Hudi概念术语 - 知乎

Flink 指南 | Apache Hudi

17张图带你彻底理解Hudi Upsert原理-腾讯云开发者社区-腾讯云

Hudi系列16:Hudi核心参数_hudi文档的配置-CSDN博客

举报

相关推荐

0 条评论