Поделиться через


Динамическое удаление файлов

Динамическое удаление файлов может значительно повысить производительность обработки многих запросов в таблицах Delta Lake. Динамические триггеры запуска файлов для запросов, содержащих инструкции фильтра или WHERE предложения. Вы должны использовать вычислительные ресурсы с поддержкой Photon для использования динамического обрезки файлов в MERGEинструкциях UPDATEи DELETE инструкциях. Только SELECT операторы используют динамическое удаление файлов, если Фотон не используется.

Динамическое удаление файлов особенно эффективно для несекционированных таблиц или для операций объединения с несекционированными столбцами. Влияние динамического удаления файлов зачастую связано с кластеризацией данных, поэтому рекомендуется использовать Z-упорядочение для повышения преимуществ.

Сведения о фоновом выполнении и вариантах использования динамического удаления файлов см. в статье Ускоренная обработка запросов SQL в Delta Lake с помощью динамического удаления файлов.

Настройка

Динамическое удаление файлов управляется следующими параметрами конфигурации Apache Spark:

  • spark.databricks.optimizer.dynamicFilePruning (по умолчанию — true): основной флаг, который направляет оптимизатору команду на отправку фильтров. Если задано значение false, динамическое очистка файлов не будет применяться.
  • spark.databricks.optimizer.deltaTableSizeThreshold (по умолчанию — 10,000,000,000 bytes (10 GB)): представляет минимальный размер (в байтах) таблицы Delta на стороне пробы работоспособности, необходимой для запуска динамического удаления файлов. Если сторона пробы имеет не очень большой размер, то, вероятно, не стоит отправлять фильтры, и можно просто проверить всю таблицу. Размер таблицы Delta можно определить, выполнив команду DESCRIBE DETAIL table_name, а затем просмотрев столбец sizeInBytes.
  • spark.databricks.optimizer.deltaTableFilesThreshold (по умолчанию — 10): представляет количество файлов таблицы Delta на стороне зонда соединения, необходимого для запуска динамического запуска очистки файлов. Если в таблице на стороне пробы содержится меньше файлов, чем указывает пороговое значение, динамическое удаление файлов не запускается. Если таблица содержит лишь несколько файлов, возможно, не стоит активировать динамическое удаление файлов. Размер таблицы Delta можно определить, выполнив команду DESCRIBE DETAIL table_name, а затем просмотрев столбец numFiles.