重要
此功能目前以公共预览版提供。
数据类型 VARIANT 存储半结构化数据。 有关使用 VARIANT 的示例,请参阅查询变体数据。
所有 Apache Iceberg v3 表都包含 VARIANT 类型支持。 请参阅 使用 Apache Iceberg v3 功能。 对于 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
启用变体功能会升级表写入器协议。 这可能会影响与外部 Delta Lake 客户端的兼容性。 请参阅 Delta Lake 功能兼容性和协议。
局限性
对数据类型的支持 VARIANT 具有以下限制:
- 不能使用变体列对表进行分区。
- 变体列不能作为表的聚簇键。
- 不能将变体列与
GROUP BY或ORDER BY子句一起使用。 - 无法对变体列调用
DISTINCT。 - 不能将 SQL 集运算符 (
INTERSECT,UNION,EXCEPT) 与变体列一起使用。 - 不能使用列生成来创建变体列。
- 变体列不支持
minValues或maxValues统计信息。 - 变体列不能包含大于 128 MiB 的值(Databricks Runtime 17.1 及更低版本中的 16 MiB)。