Справочник по свойствам таблицы Delta
Delta Lake резервирует свойства таблицы Delta, начиная с delta.
. Эти свойства могут иметь определенные значения и влиять на поведение при задании этих свойств.
Примечание.
Все операции, которые задают или обновляют свойства таблицы, конфликтуют с другими параллельными операциями записи, что приводит к сбою. Databricks рекомендует изменять свойство таблицы только в том случае, если в таблице нет параллельных операций записи.
Как взаимодействуют свойства таблицы и свойства SparkSession?
Свойства Delta-таблицы задаются для каждой таблицы. Если свойство задано в таблице, то оно используется по умолчанию.
Некоторые свойства таблицы связаны с конфигурациями 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 включают следующие:
Свойство |
---|
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 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 сохраняет логически удаленные файлы данных перед их физическим удалением. Это делается для предотвращения сбоев в устаревших модулях чтения после операций сжатия или перезаписи разделов. Это значение должно быть достаточно большим, чтобы убедиться, что:
См. Настройка хранения данных для запросов временного путешествия. Тип данных: CalendarInterval По умолчанию: interval 1 week |
delta.enableChangeDataFeed true для включения потока данных изменений.См. Включение канала передачи данных об изменениях. Тип данных: Boolean По умолчанию: false |
delta.enableDeletionVectors true для включения векторов удаления и прогнозируемой операции ввода-вывода при обновлениях.См. раздел " Что такое векторы удаления?". Тип данных: Boolean По умолчанию: зависит от параметров администратора рабочей области и версии среды выполнения Databricks. См. векторы автоматического включения удаления |
delta.isolationLevel Степень изоляции транзакции от модификаций, внесенных параллельными транзакциями. Допустимые значения — Serializable и WriteSerializable .Смотрите уровни изоляции и конфликты записи в Azure Databricks. Тип данных: String По умолчанию: WriteSerializable |
delta.logRetentionDuration Как долго хранится история для таблицы Delta. 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 используется для обеспечения идемпотентности операций записи. Дополнительные сведения см. в идемпотентных записях таблицы foreachBatch .Тип данных: CalendarInterval Значение по умолчанию: (нет) |
delta.targetFileSize Целевой размер файла в байтах или более высоких единицах для настройки файла. Например, 104857600 (байты) или 100mb .См. раздел Configure Delta Lake для управления размером файлов данных. Тип данных: String Значение по умолчанию: (нет) |
delta.tuneFileSizesForRewrites true , чтобы всегда использовать файлы меньшего размера для всех операций оптимизации макета данных в таблице Delta.false , чтобы никогда не переходить на более низкие размеры файлов, т. е. предотвратить активацию автоматического определения.См. Настройте Delta Lake для контроля размера файлов данных. Тип данных: Boolean Значение по умолчанию: (нет) |