首页/数据/数据工程与 ETL 速查/Delta Lake 基础用法
本包目录(311 条)
管道基础52 条
Kafka64 条调度与编排40 条数仓建模52 条数据质量50 条CDC 与同步53 条

Delta Lake 基础用法

Delta Lake 用事务日志(_delta_log)记录每次提交,提供 ACID、时间旅行与 MERGE 更新;Spark 上以路径或元数据表方式读写。

核心JSON 事务日志 + 数据文件,按版本提交
能力MERGE upsert、时间旅行、schema 约束
维护小文件合并、历史清理(VACUUM)

MERGE 与时间旅行(Spark SQL)

MERGE 与时间旅行(Spark SQL)
MERGE INTO delta.`/data/orders` AS t
USING updates AS s ON t.order_id = s.order_id
WHEN MATCHED THEN UPDATE SET *
WHEN NOT MATCHED THEN INSERT *;

SELECT * FROM delta.`/data/orders` VERSION AS OF 12;
VACUUM delta.`/data/orders` RETAIN 168 HOURS;
VACUUM 会物理删除保留期外文件,正在读取的旧版本会失败;保留期要覆盖最长查询与回滚窗口。

易错点

  • 直接删数据文件绕过事务日志会破坏表一致性,清理必须用 VACUUM
  • VACUUM 保留期设得过短,时间旅行与增量读会立刻失效

数据来源与参考

  • Delta Lake 官方文档:Concurrency Control、Time Travel、VACUUM
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌