繁体   English   中英

"Delta 上的 Upserts 只是重复数据?"

[英]Upserts on Delta simply duplicates data?

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

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

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

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

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

  • 版本 0:文件 1、2 和 3<\/li>
  • 版本 1:文件,1、3 和 4<\/li><\/ul>"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM