Esquema de tabela Iceberg em evolução - Amazon Athena

Esquema de tabela Iceberg em evolução

As atualizações de esquema do Iceberg são alterações somente de metadados. Nenhum arquivo de dados é alterado quando você executa uma atualização de esquema.

O formato Iceberg suporta as seguintes alterações na evolução do esquema:

  • Adicionar: adiciona uma nova coluna a uma tabela ou a uma struct aninhada.

  • Descartar: remove uma coluna existente de uma tabela ou struct aninhada.

  • Renomear: renomeia uma coluna ou campo existente em uma struct aninhada.

  • Reordenar: altera a ordem das colunas.

  • Promoção de tipo: amplia o tipo de uma coluna, um campo struct, uma chave map, um valor map ou um elemento list. Atualmente, há suporte para os seguintes casos nas tabelas Iceberg:

    • inteiro para grande inteiro

    • float para double

    • aumento da precisão de um tipo decimal

ALTER TABLE ADD COLUMNS

Adiciona uma ou mais colunas a uma tabela Iceberg existente.

Resumo

ALTER TABLE [db_name.]table_name ADD COLUMNS (col_name data_type [,...])

Exemplos

O exemplo a seguir adiciona uma coluna comment do tipo string em uma tabela Iceberg.

ALTER TABLE iceberg_table ADD COLUMNS (comment string)

O exemplo a seguir adiciona uma coluna point do tipo struct em uma tabela Iceberg.

ALTER TABLE iceberg_table ADD COLUMNS (point struct<x: double, y: double>)

O exemplo a seguir adiciona uma coluna points, que é uma matriz de structs , em uma tabela Iceberg.

ALTER TABLE iceberg_table ADD COLUMNS (points array<struct<x: double, y: double>>)

ALTER TABLE DROP COLUMN

Descarta uma coluna de uma tabela Iceberg existente.

Resumo

ALTER TABLE [db_name.]table_name DROP COLUMN col_name

Exemplo

ALTER TABLE iceberg_table DROP COLUMN userid

ALTER TABLE CHANGE COLUMN

Altera o nome, o tipo, a ordem ou o comentário de uma coluna.

nota

Não há suporte ao ALTER TABLE REPLACE COLUMNS. Como REPLACE COLUMNS remove todas as colunas e, em seguida, adiciona colunas novas, ele não é compatível no Iceberg. CHANGE COLUMN é a sintaxe preferida para a evolução do esquema.

Resumo

ALTER TABLE [db_name.]table_name CHANGE [COLUMN] col_old_name col_new_name column_type [COMMENT col_comment] [FIRST|AFTER column_name]

Exemplo

ALTER TABLE iceberg_table CHANGE comment blog_comment string AFTER id

SHOW COLUMNS

Mostra as colunas em uma tabela.

Resumo

SHOW COLUMNS (FROM|IN) [db_name.]table_name

Exemplo

SHOW COLUMNS FROM iceberg_table