Restringir as colunas binárias Apache Iceberg™ ao tamanho máximo (versão preliminar)¶
Atenção
Esta mudança de comportamento faz parte do pacote 2026_02.
Para saber o status atual do pacote, consulte Histórico do pacote.
Quando você especifica o tipo de dados binário para uma coluna em uma tabela Apache Iceberg™, a coluna sempre é mapeada para o tipo de dados binário do Iceberg.
- Antes da mudança:
Você pode especificar o tipo de dados
binary(L)para uma nova coluna em uma tabela Iceberg, que tem o comprimento máximo associado L. O tipo de dadosbinary(L)é mapeado para o tipo de dadosfixed(L), em vez do tipo de dados binário, do Iceberg. Além disso, é possível especificar o tipo de dados binary(L) para as chaves e os elementos das novas colunas de tipo estruturado, que também são mapeadas para o tipo de dadosfixed(L)do Iceberg. Para instruções CTAS, uma colunabinary(L)na tabela de origem é criada com uma colunabinary(L)na nova tabela.- Após a mudança:
Nas tabelas Iceberg, você deve especificar o tipo
binary datacomo binário oubinary(67108864). Esse requisito se aplica quando você cria novas colunas ou define a chave ou o elemento das colunas de tipo estruturado. Ambos os tipos são mapeados para o tipo de dados binário do Iceberg. Para instruções CTAS, uma colunabinary(L)na tabela de origem é criada com uma colunabinary(67108864)na nova tabela. Essa mudança afeta apenas as novas tabelas e as novas colunas em tabelas existentes.
Essa mudança de comportamento está sendo introduzida para alinhar as colunas binárias do Snowflake nas tabelas Iceberg ao tipo binário do Iceberg na especificação de tabela Apache Iceberg™, que não tem comprimento máximo. Essa mudança elimina definições binary(L) ambíguas que entram em conflito com a especificação Iceberg e podem causar problemas de interoperabilidade com mecanismos externos. Por exemplo, antes da mudança, você podia adicionar uma nova coluna com um tipo de dados binário que tivesse um comprimento máximo associado, como binary(10). Em seguida, um mecanismo externo podia inserir um valor nessa coluna que ultrapassasse o comprimento máximo definido.
Ref: 2244