Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Таблицы Delta Lake и Apache Iceberg используют свойства таблицы для настройки поведения и функций, включая макет данных, размер файла, пропуск данных, уровень изоляции и канал изменений данных.
Замечание
Все операции, которые задают или обновляют свойства таблицы, конфликтуют с другими параллельными операциями записи, что приводит к сбою. Databricks рекомендует изменять свойство таблицы только в том случае, если в таблице нет параллельных операций записи.
Изменение свойств таблицы
Чтобы изменить свойства таблицы существующих таблиц, используйте SET TBLPROPERTIES.
Префиксы свойств Delta и Iceberg
Таблицы Delta Lake и Apache Iceberg имеют одинаковые имена свойств таблицы, но требуют различных префиксов:
-
Таблицы Delta Lake: используйте
delta.префикс -
Таблицы Айсберга: используйте
iceberg.префикс
Например, чтобы включить векторы удаления в таблице:
Delta Lake
ALTER TABLE <table-name> SET TBLPROPERTIES ('delta.enableDeletionVectors' = true);
Таблица Айсберга
ALTER TABLE <table-name> SET TBLPROPERTIES ('iceberg.enableDeletionVectors' = true);
Свойства и SparkSession свойства таблицы
Каждая таблица имеет собственные свойства таблицы, которые управляют его поведением. Некоторые SparkSession конфигурации всегда переопределяют свойства таблицы. Например, autoCompact.enabled и optimizeWrite.enabled включите автоматическое сжатие и оптимизированную запись на SparkSession уровне. Databricks рекомендует использовать конфигурации, ограниченные таблицами, для большинства нагрузок.
Значения по умолчанию для новых таблиц можно задать с помощью SparkSession конфигураций. Эти значения по умолчанию применяются только к новым таблицам и не влияют на существующие свойства таблицы.
SparkSession конфигурации используют другой префикс, отличный от свойств таблицы, как показано в следующей таблице:
| Свойство таблицы |
SparkSessionКонфигурация |
|---|---|
delta.<conf>iceberg.<conf> |
spark.databricks.delta.properties.defaults.<conf>spark.databricks.iceberg.properties.defaults.<conf> |
Например, чтобы задать appendOnly = true свойство для всех новых таблиц, созданных в сеансе, задайте следующее:
Delta Lake
SET spark.databricks.delta.properties.defaults.appendOnly = true
Таблица Айсберга
SET spark.databricks.iceberg.properties.defaults.appendOnly = true
Свойства таблицы
Большинство следующих свойств таблицы доступны как для таблиц Delta Lake, так и для таблиц Apache Iceberg, за исключением указанных.
delta. Используйте префикс для таблиц Delta Lake и iceberg. префикса для таблиц Айсберга.
| Недвижимость | Description |
|---|---|
autoOptimize.optimizeWrite |
true для автоматической оптимизации расположения файлов для этой таблицы в процессе записи.См. оптимизированные операции записи. Тип данных: BooleanЗначение по умолчанию: (нет) |
dataSkippingNumIndexedCols |
Количество столбцов для сбора статистики о пропусках данных. Значение -1 обозначает сбор статистики для всех столбцов.См. пропуск данных. Тип данных: IntПо умолчанию: 32 |
dataSkippingStatsColumns |
Список имён столбцов, разделённых запятыми, для сбора статистики и повышения эффективности функции пропуска данных. Это свойство имеет приоритет над dataSkippingNumIndexedCols.См. пропуск данных. Тип данных: StringЗначение по умолчанию: (нет) |
deletedFileRetentionDuration |
Кратчайшее время для хранения логически удаленных файлов данных перед их физическим удалением. Это предотвращает сбои в устаревших модулях чтения после сжатия или перезаписи секций. Databricks рекомендует значение по умолчанию в 7 дней или выше. Если срок хранения слишком короткий, незафиксированные файлы длительных заданий могут быть удалены до их завершения. См. Настройка сохранения данных для запросов по временному перемещению. Тип данных: CalendarIntervalПо умолчанию: interval 1 week |
enableDeletionVectors |
true для включения векторов удаления и прогнозируемой операции ввода-вывода при обновлениях.См. векторы удаления в Databricks и включение векторов удаления. Тип данных: BooleanПо умолчанию: зависит от параметров администратора рабочей области и версии среды выполнения Databricks. См. автоактивацию векторов удаления. |
logRetentionDuration |
Как долго хранить историю для таблицы.
VACUUM операции переопределяют это пороговое значение хранения.Databricks автоматически очищает записи журнала старше интервала хранения при каждой записи контрольной точки. Установка этого свойства на большое значение сохраняет множество записей журнала. Это не влияет на производительность, так как операции с журналом имеют постоянное время выполнения. Операции с журналом параллельны, но становятся более дорогими по мере увеличения размера журнала. См. Настройка сохранения данных для запросов по временному перемещению. Тип данных: CalendarIntervalПо умолчанию: interval 30 days |
minReaderVersion (только Delta Lake) |
Минимальная требуемая версия средства чтения протокола для чтения из этой таблицы. Databricks не рекомендует вручную настраивать это свойство. См. сведения о совместимости функций Delta Lake и протоколах. Тип данных: IntПо умолчанию: 1 |
minWriterVersion (только Delta Lake) |
Минимальная требуемая версия протоколирования для записи в эту таблицу. Databricks не рекомендует вручную настраивать это свойство. См. сведения о совместимости функций Delta Lake и протоколах. Тип данных: IntПо умолчанию: 2 |
format-version (Только управляемые таблицы Apache Iceberg) |
Версия формата таблицы Айсберга. Databricks не рекомендует вручную настраивать это свойство. Ознакомьтесь с функциями Apache Iceberg версии 3. Тип данных: IntПо умолчанию: 2 |
randomizeFilePrefixes |
true для создания случайного префикса для пути к файлу вместо сведений о секциях.Тип данных: BooleanПо умолчанию: false |
targetFileSize |
Целевой размер файла в байтах или более высоких единицах для настройки файла. Например: 104857600(bytes) или 100mb.См. раздел "Управление размером файла данных". Тип данных: StringЗначение по умолчанию: (нет) |
parquet.compression.codec |
Кодек сжатия для таблицы. Допустимые значения: ZSTD, , SNAPPYGZIPLZ4, BROTLI (поддержка зависит от формата)Это свойство гарантирует, что все будущие записи в таблицу будут использовать выбранный кодек, переопределяя значения по умолчанию для кластера или сеанса ( spark.sql.parquet.compression.codec). Однако единовременные настройки DataFrame .write.option("compression", "...") по-прежнему имеют приоритет. Доступно в Databricks Runtime 16.0 и более поздних версий. Обратите внимание, что существующие файлы не перезаписываются автоматически. Для повторного сжатия существующих данных с выбранным форматом используйте OPTIMIZE table_name FULL.Тип данных: StringПо умолчанию: ZSTD |
parquet.format.version (только Delta Lake) |
Версия формата Parquet, используемая при записи файлов данных. При этом 2.12.0 можно включить расширенные кодировки, заголовки страниц данных версии 2 и INT64 метки времени, которые могут повысить производительность запросов и сократить объем хранилища.Допустимые значения: 1.0.0 и 2.12.0которые соответствуют выпускам из формата Apache Parquet.Это свойство можно задать в таблицах Delta Lake и Apache Iceberg. Некоторые читатели OSS Iceberg могут не поддерживать кодировки Parquet версии 2. См. Ограничения. См. раздел Parquet версии 2. Тип данных: StringПо умолчанию: 1.0.0 |
appendOnly |
true для превращения таблицы в доступную только для добавления. Таблицы только для добавления не позволяют удалять существующие записи или обновлять существующие значения.Тип данных: BooleanПо умолчанию: false |
autoOptimize.autoCompact |
Автоматически объединяет небольшие файлы в разделах таблиц, чтобы уменьшить проблемы с небольшими файлами.
auto (рекомендуется), принимает true, legacy, или false.См. раздел "Автоматическое сжатие". Тип данных: StringЗначение по умолчанию: (нет) |
checkpoint.writeStatsAsJson |
true для записи статистики файлов в контрольных точках в формате JSON для столбца stats .Тип данных: BooleanПо умолчанию: false |
checkpoint.writeStatsAsStruct |
true для записи статистики файла в контрольные точки в формате структуры для столбца stats_parsed, а также для записи значений разделов в формате структуры для partitionValues_parsed.Тип данных: BooleanПо умолчанию: true |
checkpointPolicy |
classic для классических контрольных точек.
v2 для контрольных точек v2.См. раздел "Контрольная точка версии 2 " и "Совместимость" для таблиц с отказоустойчивой кластеризации. Тип данных: StringПо умолчанию: classic |
columnMapping.mode |
Позволяет сопоставлять столбцы таблицы и соответствующие столбцы Parquet, которые имеют разные имена. Допустимые значения: none, name и id.См. как переименовывать и удалять столбцы с использованием сопоставления столбцов в Delta Lake. Примечание: Включение columnMapping.mode автоматически включает randomizeFilePrefixes.Тип данных: DeltaColumnMappingModeПо умолчанию: none |
compatibility.symlinkFormatManifest.enabled (только Delta Lake) |
true чтобы настроить таблицу Delta Lake, чтобы все операции записи в таблице автоматически обновляли манифесты.Тип данных: BooleanПо умолчанию: false |
enableChangeDataFeed |
true для включения потока данных изменений.См. раздел "Использование веб-канала изменений". Тип данных: BooleanПо умолчанию: false |
enableTypeWidening |
true для включения расширения типов.См. Расширение типов. Тип данных: BooleanПо умолчанию: false |
isolationLevel |
Степень изоляции транзакции от модификаций, внесенных параллельными транзакциями. Допустимые значения — Serializable и WriteSerializable.См. уровни изоляции (WriteSerializable и Serializable). Тип данных: StringПо умолчанию: WriteSerializable |
randomPrefixLength |
Число символов, которые генерируются для случайных префиксов, когда randomizeFilePrefixes является true.Тип данных: IntПо умолчанию: 2 |
setTransactionRetentionDuration |
Кратчайшее время, в течение которого новые снимки сохраняют идентификаторы транзакций (например, SetTransactions). Срок действия новых моментальных снимков истекает, и они игнорируют идентификаторы транзакций, старше или равные длительности, указанной этим свойством. Идентификатор SetTransaction используется для обеспечения идемпотентности операций записи. Дополнительные сведения см. в разделе "Использование foreachBatch идемпотентной таблицы ".Тип данных: CalendarIntervalЗначение по умолчанию: (нет) |