Restrict Apache Iceberg™ binary columns to maximum size (Pending)

注意

此行为变更包含在 2026_02 捆绑包中。

有关捆绑包的当前状态,请参阅 捆绑包历史记录

为 Apache Iceberg™ 表中的列指定二进制数据类型时,该列将始终映射到 Iceberg 二进制数据类型。

变更前:

您可以为 Iceberg 表中的新列指定 binary(L) 数据类型,该类型与最大长度 L 相关联。binary(L) 数据类型映射到 Iceberg:code:fixed(L) 数据类型,而不是 Iceberg 二进制数据类型。此外,您可以为新结构化类型列的键和元素指定 binary(L) 数据类型,该类型也会映射到 Iceberg:code:fixed(L) 数据类型。对于 CTAS 语句,源表中的 binary(L) 列会在新表中以 binary(L) 列的形式创建。

变更后:

在 Iceberg 表中,您必须将 binary data 类型指定为二进制或 binary(67108864)。当您创建新列或定义结构化类型列的键或元素时,此要求适用。这两种类型都会映射到 Iceberg 二进制数据类型。对于 CTAS 语句,源表中的 binary(L) 列会在新表中以 binary(67108864) 列的形式创建。此变更仅影响新表和现有表中的新列。

引入此行为变更是为了使 Iceberg 表上的 Snowflake 二进制列与 Apache Iceberg™ 表规范中的 Iceberg 二进制类型保持一致,该类型没有最大长度限制。此变更消除了与 Iceberg 规范冲突的模糊 binary(L) 定义,并避免了与外部引擎的互操作性问题。例如,在进行此变更之前,您可以添加一个二进制数据类型具有关联的最大长度的新列,例如 binary(10)。然后,外部引擎可能会在此列中插入超过定义的最大长度的值。

参考:2244