Delta 上的更新只是复制数据?

Upserts on Delta simply duplicates data?

我对数据块上的 Delta 和 lakehouse 还很陌生。我有一些问题,基于以下操作:

这是否意味着 delta 只是为每个新版本复制数据?

这如何扩展?还是我遗漏了什么?

是的,这就是 Delta lake 的工作方式 - 当您修改数据时,它不会只写入增量,而是获取受更改影响的原始文件,进行更改,然后将其写回。但请注意,并非所有数据都是重复的 - 只有受影响行所在的文件中的数据才会重复。例如,您有 3 个数据文件,您正在对第二个文件中的某些行进行更改。在这种情况下,Delta 将创建一个编号为 4 的新文件,其中包含必要的更改 + 文件 2 中的其余数据,因此您将拥有以下版本:

  • 版本 0:文件 1、2 和 3
  • 版本 1:文件 1、3 和 4