Delta Lake DML 内部原理
读者交流群已经开通了,有需要的可以私信进入读者交流群
Delta Lake 支持 DML(数据操作语言)命令,包括 DELETE、UPDATE 和 MERGE。 这些命令简化了变更数据的捕获 (CDC)、审计和治理以及 GDPR/CCPA 工作流等。
在这篇博文中,我们将演示如何使用这些 DML 命令,以及当运行一个命令时 Delta Lake 在幕后所做的事情,并为这些命令提供一些性能调优技巧。
简单复习
首先,让我们快速回顾一下 Delta Lake 表是如何在文件级别构建的。 当创建新表时,Delta 会将数据保存为一系列 Parquet 文件,还会创建 _delta_log 文件夹,其中包含 Delta Lake 事务日志。 ACID 事务日志用来记录对表所做的每次更改(称为事务)。 当修改表时(例如,通过添加新数据,或执行更新、合并或删除),Delta Lake 会将每个新事务的记录保存为 delta_log 文件夹中以 00…00000 开头的编号 JSON 文件 .json 并计数。 每 10 次记录,Delta 还会在同一文件夹中生成一个“检查点”Parquet 文件,允许快速重新创建表的状态。