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


Справочник по свойствам таблицы Delta

Delta Lake резервирует свойства таблицы Delta, начиная с delta.. Эти свойства могут иметь определенные значения и влиять на поведение при задании этих свойств.

Примечание.

Все операции, которые задают или обновляют свойства таблицы, конфликтуют с другими параллельными операциями записи, что приводит к сбою. Databricks рекомендует изменять свойство таблицы только в том случае, если в таблице нет параллельных операций записи.

Как взаимодействуют свойства таблицы и свойства SparkSession?

Свойства разностной таблицы задаются для каждой таблицы. Если свойство задано в таблице, то это параметр, за которым следует по умолчанию.

Некоторые свойства таблицы связаны с конфигурациями SparkSession, которые всегда имеют приоритет над свойствами таблицы. К некоторым примерам относятся spark.databricks.delta.autoCompact.enabled и spark.databricks.delta.optimizeWrite.enabled конфигурации, которые включают автоматическое сжатие и оптимизированную запись на уровне SparkSession, а не на уровне таблицы. Databricks рекомендует использовать конфигурации с табличной областью для большинства рабочих нагрузок.

Для каждого свойства разностной таблицы можно задать значение по умолчанию для новых таблиц с помощью конфигурации SparkSession, переопределяя встроенное значение по умолчанию. Этот параметр влияет только на новые таблицы и не переопределяет или не заменяет свойства, заданные в существующих таблицах. Префикс, используемый в SparkSession, отличается от конфигураций, используемых в свойствах таблицы, как показано в следующей таблице:

Конфигурация Delta Lake Конфигурация SparkSession
delta.<conf> spark.databricks.delta.properties.defaults.<conf>

Например, чтобы задать свойство delta.appendOnly = true для всех новых таблиц Delta Lake, созданных в сеансе, укажите следующее:

SET spark.databricks.delta.properties.defaults.appendOnly = true

Чтобы изменить свойства таблицы существующих таблиц, используйте SET TBLPROPERTIES.

Свойства разностной таблицы

Доступные свойства таблицы Delta включают следующие:

Свойство
delta.appendOnly

true для этой таблицы Delta, доступной только для добавления. Если доступно только добавление, существующие записи не могут быть удалены и существующие значения не могут быть обновлены.

См. справочник по свойствам таблицы Delta.

Тип данных: Boolean

По умолчанию: false
delta.autoOptimize.autoCompact

auto для Delta Lake для автоматической оптимизации макета файлов для этой таблицы Delta.

См. раздел "Автоматическое сжатие" для Delta Lake в Azure Databricks.

Тип данных: Boolean

Значение по умолчанию: (нет)
delta.autoOptimize.optimizeWrite

true для Delta Lake для автоматической оптимизации макета файлов для этой таблицы Delta во время записи.

См . оптимизированные записи для Delta Lake в Azure Databricks.

Тип данных: Boolean

Значение по умолчанию: (нет)
delta.checkpoint.writeStatsAsJson

true для Delta Lake для записи статистики файла в контрольных точках в формате JSON для столбца stats.

См. статью "Управление статистикой на уровне столбцов" в контрольных точках.

Тип данных: Boolean

По умолчанию: true
delta.checkpoint.writeStatsAsStruct

true для Delta Lake для записи статистики файла в контрольные точки в формате структуры для столбца stats_parsed и записи значений секций в качестве структуры partitionValues_parsed.

См. статью "Управление статистикой на уровне столбцов" в контрольных точках.

Тип данных: Boolean

Значение по умолчанию: (нет)
delta.checkpointPolicy

classic для классических контрольных точек Delta Lake. v2 для контрольных точек версии 2.

См. сведения о совместимости таблиц с отказоустойчивой кластеризации.

Тип данных: String

По умолчанию: classic
delta.columnMapping.mode

Включено ли сопоставление столбцов для столбцов таблицы Delta и соответствующих столбцов Parquet, использующих разные имена.

См. раздел "Переименование и удаление столбцов" с сопоставлением столбцов Delta Lake.

Примечание. Включение delta.columnMapping.mode автоматически включается
delta.randomizeFilePrefixes.

Тип данных: DeltaColumnMappingMode

По умолчанию: none
delta.dataSkippingNumIndexedCols

Количество столбцов для Delta Lake для сбора статистики о пропуске данных. Значение -1 обозначает сбор статистики для всех столбцов.

См . сведения о пропусках данных для Delta Lake.

Тип данных: Int

По умолчанию: 32
delta.dataSkippingStatsColumns

Разделенный запятыми список имен столбцов, на которых Delta Lake собирает статистику для повышения функциональности пропуска данных. Это свойство имеет приоритет над delta.dataSkippingNumIndexedCols.

См . сведения о пропусках данных для Delta Lake.

Тип данных: String

Значение по умолчанию: (нет)
delta.deletedFileRetentionDuration

Кратчайшее время, в течение которого Delta Lake сохраняет логически удаленные файлы данных перед их физическим удалением. Это делается для предотвращения сбоев в устаревших устройствах чтения после сжатия или перезаписи разделов.

Это значение должно быть достаточно большим, чтобы убедиться, что:

— Это больше, чем самая длинная возможная длительность задания, если выполняется VACUUM при наличии одновременных средств чтения или записи, обращаюющихся к таблице Delta.
— При выполнении потокового запроса, который считывается из таблицы, этот запрос не останавливается дольше, чем это значение. В противном случае запрос может не перезапуститься, так как он должен по-прежнему считывать старые файлы.

Сведения о настройке хранения данных для запросов на поездки по времени.

Тип данных: CalendarInterval

По умолчанию: interval 1 week
delta.enableChangeDataFeed

true для включения веб-канала изменений.

Дополнительные сведения см. в разделе Включение веб-канала изменений.

Тип данных: Boolean

По умолчанию: false
delta.enableDeletionVectors

true для включения векторов удаления и прогнозных операций ввода-вывода для обновлений.

См. раздел " Что такое векторы удаления?".

Тип данных: Boolean

По умолчанию: зависит от параметров администратора рабочей области и версии среды выполнения Databricks. См. векторы автоматического включения удаления
delta.isolationLevel

Степень изоляции транзакции от модификаций, внесенных параллельными транзакциями.

Допустимые значения — Serializable и WriteSerializable.

См . сведения о уровнях изоляции и конфликтах записи в Azure Databricks.

Тип данных: String

По умолчанию: WriteSerializable
delta.logRetentionDuration

Продолжительность хранения журнала для таблицы. VACUUM операции переопределяют это пороговое значение хранения.

Каждый раз при записи контрольной точки Delta Lake автоматически очищает записи журнала, которые созданы до начала интервала хранения. Если для этого свойства задано достаточно большое значение, сохраняется большое число записей журнала. Это не должно повлиять на производительность, так как операции с журналом являются постоянными. Операции с журналом выполняются параллельно, но при увеличении размера журнала затраты возрастают.

Сведения о настройке хранения данных для запросов на поездки по времени.

Тип данных: CalendarInterval

По умолчанию: interval 30 days
delta.minReaderVersion

Минимальная требуемая версия средства чтения протокола для средства чтения, которая позволяет выполнять чтение из этой таблицы Delta.

Databricks рекомендует вручную настроить это свойство.

См. статью Как Azure Databricks управляет совместимостью функций Delta Lake?.

Тип данных: Int

По умолчанию: 1
delta.minWriterVersion

Минимальная требуемая версия средства записи протокола для средства записи, которая позволяет выполнять запись в эту таблицу Delta.

Databricks рекомендует вручную настроить это свойство.

См. статью Как Azure Databricks управляет совместимостью функций Delta Lake?.

Тип данных: Int

По умолчанию: 2
delta.randomizeFilePrefixes

true для Delta Lake для создания случайного префикса для пути к файлу вместо сведений о секции.

Тип данных: Boolean

По умолчанию: false
delta.randomPrefixLength

Если для delta.randomizeFilePrefixes задано значение true, количество символов, создаваемых Delta Lake для случайных префиксов.

Тип данных: Int

По умолчанию: 2
delta.setTransactionRetentionDuration

Наименьший период времени, в течение которого новые моментальные снимки будут сохранять идентификаторы операций (например, SetTransaction). Когда новый моментальный снимок видит идентификатор транзакции, срок действия которого равен или превышает длительность, указанную в этом свойстве, моментальный снимок считает, что срок действия истек и игнорирует транзакцию. Идентификатор SetTransaction используется при создании идемпотентных операций записи. Дополнительные сведения см . в таблице Idempotent, написанной в foreachBatch .

Тип данных: CalendarInterval

Значение по умолчанию: (нет)
delta.targetFileSize

Целевой размер файла в байтах или более высоких единицах для настройки файла. Например,
104857600 (байты) или 100mb.

Сведения о настройке Delta Lake для управления размером файла данных.

Тип данных: String

Значение по умолчанию: (нет)
delta.tuneFileSizesForRewrites

true, чтобы всегда использовать файлы меньшего размера для всех операций оптимизации макета данных в таблице Delta.

false, чтобы никогда не настраивать меньший размер файлов, т. е. запретить активацию автоматического обнаружения.

Сведения о настройке Delta Lake для управления размером файла данных.

Тип данных: Boolean

Значение по умолчанию: (нет)