spark.databricks.delta.snapshotPartitions 配置在 Delta Lake 中的用途是什么?

what is spark.databricks.delta.snapshotPartitions configuration used for in delta lake?

我在穿越 delta lake 时遇到了一个配置 spark.databricks.delta.snapshotPartitions 但是不太确定它的用途是什么?在 delta lake 文档中也找不到这个。

在 delta lake github 中找到以下代码,但不确定 属性 是如何工作的

  val DELTA_SNAPSHOT_PARTITIONS =
    buildConf("snapshotPartitions")
      .internal()
      .doc("Number of partitions to use when building a Delta Lake snapshot.")
      .intConf
      .checkValue(n => n > 0, "Delta snapshot partition number must be positive.")
      .createOptional

Delta Lake 使用 Spark 处理 _delta_log 目录中的事务日志。当 Delta Lake 加载事务日志时,它会重放日志以生成 table 的当前状态,称为 Snapshot。这一步有一个repartition操作。您可以使用 spark.databricks.delta.snapshotPartitions 来配置在 repartition 操作中使用多少个分区。当您的 table 元数据增长时,您可能需要增加此配置,以便 table 元数据的每个分区都可以放入执行程序内存中。