1

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

  • 我导入了一些镶木地板文件
  • 将它们转换为 delta(创建 1 个 snappy.parquet 文件)
  • 删除一个随机行(创建 1 个新 snappy.parquet 文件)。
  • 我检查了两个 snappy 文件(增量表的版本 0 和版本 1)的内容,它们都包含所有数据,每个数据都有其特定的差异。

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

这是如何扩展的?还是我错过了什么?

4

1 回答 1

1

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

  • 版本 0:文件 1、2 和 3
  • 版本 1:文件,1、3 和 4
于 2022-02-07T07:22:45.613 回答