如果您更新 Delta table 的分区列,会发生什么情况?

What happens if you update the column of a Delta table by which it is partitioned?

如果您更新 Delta table 的分区列会发生什么情况? 它会大大降低写入性能吗? 我试图从文档中找出到目前为止我还不能知道的内容是否可以说我们是否有底层镶木地板,Delta 是否在没有更新现有分区行的情况下重建新文件,或者它是否通过事务日志条目虚拟处理?

你总能从历史中得到这些信息。例如,这是对分区列执行更新操作后来自 operationsMetric 列的数据。如您所见,它重写了文件:

{
  "numRemovedFiles": "5", 
  "numCopiedRows": "0", 
  "numAddedChangeFiles": "0", 
  "executionTimeMs": "478", 
  "scanTimeMs": "34", 
  "numAddedFiles": "5", 
  "numUpdatedRows": "5", 
  "rewriteTimeMs": "444"
}

如果您检查文件名,就会发现它们是不同的。