Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Декомпозиция Variant повышает производительность запросов для столбцов VARIANT, сохраняя часто встречающиеся поля в виде отдельных столбцов в базовых файлах Parquet. Шреддинг уменьшает количество операций ввода-вывода, необходимых для чтения полей, и улучшает сжатие за счёт использования колоночного формата вместо двоичного BLOB-объекта.
См. VARIANTтип, Поддержка типа Variant для Apache Iceberg и Delta Lake и Запрос данных типа Variant.
Requirements
Для чтения и записи разделённых таблиц VARIANT требуется Databricks Runtime 17.3 или более поздняя версия. Для оптимальной производительности запросов с использованием сбора статистики вариантов и пропуска данных Databricks рекомендует Databricks Runtime 18.1 или более поздней версии.
Включение измельчения
Начиная с Databricks Runtime 17.3, шреддинг автоматически включается при создании новой таблицы с одним или несколькими столбцами VARIANT с помощью CREATE TABLE.
CREATE OR REPLACE TABLE и ALTER TABLE не включают автоматическое измельчение. Это позволяет избежать изменения поведения измельчения существующих таблиц и рабочих нагрузок.
Для существующих таблиц можно вручную включить шреддинг, установив для свойства таблицы enableVariantShredding значение TRUE, и отключить его, установив для этого свойства значение FALSE:
Озеро Дельта
ALTER TABLE my_table SET TBLPROPERTIES ('delta.enableVariantShredding' = 'true');
Таблица Айсберга
ALTER TABLE my_table SET TBLPROPERTIES ('iceberg.enableVariantShredding' = 'true');
Убедитесь, что измельчение включено, проверив, что для свойства enableVariantShredding таблицы задано значение true.
Отключить измельчение для конкретной таблицы
Чтобы исключить определённую таблицу из дробления при последующих операциях записи, установите для свойства таблицы enableVariantShredding значение FALSE:
Озеро Дельта
ALTER TABLE my_table SET TBLPROPERTIES ('delta.enableVariantShredding' = 'false');
Таблица Айсберга
ALTER TABLE my_table SET TBLPROPERTIES ('iceberg.enableVariantShredding' = 'false');
Убрать сегментирование из существующей таблицы
Чтобы удалить измельчение в существующей таблице, удалите функцию с ALTER TABLE помощью команды. Эта операция также переписывает измельченные VARIANT данные в месте в неизмененном VARIANT формате и устанавливает для свойства enableVariantShredding таблицы значение false.
ALTER TABLE my_table DROP FEATURE "variantShredding";
Ограничения
- Измельчение данных создает некоторые издержки на операции записи.
- Включение измельчения не преобразует существующие
VARIANTданные в таблице автоматически. Он применяется только к данным, записанным после включения функции. Чтобы переписать существующиеVARIANTданные, используйтеREORG TABLE my_table APPLY (SHRED VARIANT). - Измельчение применяется к столбцам
VARIANTили полям верхнего уровняVARIANTв структурах, за исключениемVARIANTданных, хранящихся в массивах или картах.