Поддержка типа Variant для Apache Iceberg и Delta Lake

Тип VARIANT данных хранит полуструктурированные данные. Примеры работы с данными о варианте запроса см. в разделе "Примеры работы с VARIANTданными о варианте запроса".

Все таблицы Apache Iceberg версии 3 поддерживают тип VARIANT. Ознакомьтесь с функциями Apache Iceberg версии 3. Для таблиц Delta Lake необходимо явно включить поддержку типа VARIANT.

Для чтения и записи таблиц с поддержкой вариантов необходимо использовать Databricks Runtime 15.4 LTS или более поздней версии.

Включение варианта в таблице

Чтобы включить вариант, создайте новую таблицу со столбцом VARIANT типа:

CREATE TABLE table_name (variant_column VARIANT)

Чтобы включить поддержку VARIANT существующей таблицы, используйте следующий синтаксис:

ALTER TABLE table_name SET TBLPROPERTIES('delta.feature.variantType-preview' = 'supported')

Note

Включение функции Variant обновляет протокол записи в таблицу. Это может повлиять на совместимость с внешними клиентами Delta Lake. См. сведения о совместимости функций Delta Lake и протоколах.

Ограничения

VARIANT Поддержка типа данных имеет следующие ограничения:

  • Нельзя использовать вариантные столбцы для секционирования таблицы.
  • Вариантный столбец не может быть ключом кластеризации для таблицы.
  • Нельзя использовать вариантные столбцы с условиями GROUP BY или ORDER BY.
  • Невозможно вызвать DISTINCT вариантный столбец.
  • Нельзя использовать операторы набора SQL (INTERSECT, UNION, EXCEPT) с вариантными столбцами.
  • Нельзя использовать генерацию столбцов для создания столбца варианта.
  • Столбцы "variant" не поддерживают статистику minValues или maxValues.
  • Столбец variant не может содержать значение больше 128 MiB (16 МиБ в Databricks Runtime 17.1 и ниже).