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 demap
, valor demap
o elemento delist
. 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 COLUMNcol_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
[COMMENTcol_comment
] [FIRST|AFTERcolumn_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