Esquema de tabla de Iceberg en evolución - Amazon Athena

Esquema de tabla de Iceberg en evolución

Las actualizaciones de esquemas Iceberg son cambios de metadatos únicamente. No se modifican los archivos de datos cuando se realiza una actualización del esquema.

El formato Iceberg admite los siguientes cambios de evolución del esquema:

  • Agregar: agrega una nueva columna a una tabla o struct anidada.

  • Eliminar: elimina una columna existente de una tabla o struct anidada.

  • Renombrar: cambia el nombre de una columna o campo existente en una struct anidada.

  • Reordenar: cambia el orden de columnas.

  • Promoción de tipos: amplía el tipo de una columna, campo de struct, clave de map, valor de map‭ o elemento de list. En la actualidad, se admiten los siguientes casos para las tablas de Iceberg:

    • número entero a número entero grande

    • flotante a doble

    • aumento de la precisión de un tipo decimal

ALTER TABLE ADD COLUMNS

Agrega una o más columnas a una tabla de Iceberg existente.

Sinopsis

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

Ejemplos

En el siguiente ejemplo, se agrega una columna comment de tipo string a una tabla de Iceberg.

ALTER TABLE iceberg_table ADD COLUMNS (comment string)

En el siguiente ejemplo, se agrega una columna point de tipo struct a una tabla de Iceberg.

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

En el siguiente ejemplo, se agrega una columna points, que es una matriz de estructuras, a una tabla de Iceberg.

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

ALTER TABLE DROP COLUMN

Esto descarta una columna de una tabla de Iceberg existente.

Sinopsis

ALTER TABLE [db_name.]table_name DROP COLUMN col_name

Ejemplo

ALTER TABLE iceberg_table DROP COLUMN userid

ALTER TABLE CHANGE COLUMN

Cambia el nombre, el tipo, el orden o el comentario de una columna.

nota

ALTER TABLE REPLACE COLUMNS no se admite. Debido a que REPLACE COLUMNS elimina todas las columnas y, luego, agrega otras nuevas, no es compatible con Iceberg. CHANGE COLUMN es la sintaxis preferida para la evolución del esquema.

Sinopsis

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

Ejemplo

ALTER TABLE iceberg_table CHANGE comment blog_comment string AFTER id

SHOW COLUMNS

Muestra las columnas de una tabla.

Sinopsis

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

Ejemplo

SHOW COLUMNS FROM iceberg_table