参考阅读
Transaction Log
- 理解Transaction Log是理解Delta Lake的关键
- Transaction Log 关联到了一些重要功能的实现,如:ACID事务,动态扩展元数据处理,时间追溯
- Delta Lake transaction log 是在Delta Lake table 上执行过的有序的transaction记录。
Transaction Log 用途
- 建立在Apache spark之上,允许在同一个表上同时进行多个读写操作
- 中央仓库追踪所有用户对表的变化
- 当用户第一次读取Delta Lake表 或者查询时,日志就会被更新
- Delta lake 通过 Transaction Log 机制保证 原子性
Transaction Log 如何工作
- 用户的更新表的操作(INSERT,UPDATE,DELETE操作),Delta Lake将该操作分解为一系列离散步骤,这些步骤由以下一个或多个操作组成
- add file -- 添加一个数据文件
- remove file -- 删除一个数据文件
- update metadata -- 更新表的元数据(表面,schema,分区)
- set transaction -- structured streaming 任务提交的带id的微批处理数据集
- change protocol -- 修改协议,添加新功能
- commit info -- 包含此次提交相关的基础信息,如哪个操作,在哪里什么时候