Справочник по свойствам таблицы 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 Значение по умолчанию: (нет) |