для чего используется конфигурация spark.databricks.delta.snapshotPartitions в дельте озера? - PullRequest
0 голосов
/ 06 мая 2020

Я проходил через озеро дельта и наткнулся на конфигурацию spark.databricks.delta.snapshotPartitions, но не совсем уверен, для чего она используется? Не могу найти этого и в документации по дельтовому озеру.

В 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

1 Ответ

0 голосов
/ 07 мая 2020

Delta Lake использует Spark для обработки журналов транзакций в каталоге _delta_log. Когда Delta Lake загружает журналы транзакций, оно воспроизводит журналы для генерации текущего состояния таблицы, которая называется Snapshot. На этом шаге выполняется операция повторного разбиения . Вы можете использовать spark.databricks.delta.snapshotPartitions, чтобы указать, сколько разделов использовать в операции repartition. Когда метаданные вашей таблицы растут, вам может потребоваться увеличить эту конфигурацию, чтобы каждый раздел метаданных таблицы мог уместиться в памяти исполнителя.

...