变体类型支持

重要

此功能目前以公共预览版提供。

数据类型 VARIANT 存储半结构化数据。 有关使用 VARIANT 的示例,请参阅查询变体数据

所有 Apache Iceberg v3 表都包含 VARIANT 类型支持。 请参阅 使用 Apache Iceberg v3 功能。 对于 Delta Lake 表,必须显式启用 VARIANT 类型支持。

必须使用 Databricks Runtime 15.3 或更高版本才能读写启用了变体支持的表。

对表启用变体

若要启用变体,请创建一个包含 VARIANT 类型列的新表。

CREATE TABLE table_name (variant_column VARIANT)

若要启用对 VARIANT 现有表的支持,请使用以下语法。

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

警告

启用变体时,Azure Databricks 会升级表协议。 不支持变体的客户端无法读取表。 请参阅 Delta Lake 功能兼容性和协议

限制

对数据类型的支持 VARIANT 具有以下限制。

  • 不能使用变体列对表进行分区。
  • 变体列不能作为表的聚簇键。
  • 不能将变体列与GROUP BYORDER BY子句一起使用。
  • 不能调用 DISTINCT 变体列。
  • 不能将 SQL 集运算符 (INTERSECTUNIONEXCEPT) 与变体列一起使用。
  • 不能使用列生成来创建变体列。
  • 变体列不支持 minValuesmaxValues 统计信息。
  • 变体列不能包含大于 128 MiB 的值(Databricks Runtime 17.1 及更低版本中的 16 MiB)。