Aprender  /  Guías

Cómo migrar tablas Hive a Apache Iceberg en 2026: tres métodos, con los comandos

Iceberg se ha convertido en el formato de tabla común del mundo de los datos, y AWS acaba de convertir la migración en un servicio gestionado. Estés en AWS o no, estas son las tres formas de migrar una tabla Hive, cuánto tarda cada una y cómo hacer el cambio sin romper los paneles.

Guía9 min de lecturaActualizado el 9 de noviembre de 2026
Bases de datosSQLDatabricksSnowflake
Todas las guías y chuletas

Las tablas Hive son carpetas de archivos más una entrada en un metastore. Funcionan, pero no tienen transacciones, cambiar el particionado obliga a reescribirlo todo y listar millones de archivos ralentiza cada consulta. Apache Iceberg lo resuelve con una verdadera capa de tabla: commits atómicos, cambios de esquema y de particiones sin reescrituras, viaje en el tiempo y planificación rápida. En 2026 es además el formato que Snowflake, Databricks, BigQuery, AWS, DuckDB y Polars leen y escriben. El 4 de noviembre AWS convirtió la migración en una función gestionada de Amazon S3 Tables. Esta guía cubre esa opción y las dos clásicas.

3Métodos de migraciónen el sitio, reescritura, gestionada
10Regiones de AWSpara la migración gestionada de S3 Tables
0Dólarespor la conversión en sí en S3 Tables
40Por cientode movimiento de datos ahorrado por un cliente de Google con la federación de Iceberg

Método 1: en el sitio, con procedimientos de Spark

Iceberg incluye procedimientos de Spark que convierten una tabla Hive existente en una tabla Iceberg sin copiar datos. Leen la lista de archivos, escriben los metadatos y manifiestos de Iceberg y registran la tabla nueva. Los archivos de datos deben ser Parquet, ORC o Avro.

SQL
-- Step 1: try it safely. Creates db.sales_iceberg pointing at the same files.
-- The original Hive table is untouched.
CALL spark_catalog.system.snapshot('db.sales', 'db.sales_iceberg');

-- Test queries, row counts and downstream jobs against db.sales_iceberg...

-- Step 2: convert for real. Replaces db.sales with an Iceberg table
-- (the old Hive table is kept as a backup with a _BACKUP_ suffix).
CALL spark_catalog.system.migrate('db.sales');

-- Alternative: add existing files to an Iceberg table you created yourself
CALL spark_catalog.system.add_files(
  table => 'db.sales_new',
  source_table => 'db.sales'
);

Método 2: reescritura completa con CREATE TABLE AS SELECT

Si la tabla Hive tiene problemas que quieres arreglar de todos modos, como miles de archivos diminutos, particiones equivocadas o una compresión antigua, escribe en su lugar una tabla Iceberg nueva:

SQL
CREATE TABLE lake.db.sales
USING iceberg
PARTITIONED BY (days(order_ts))      -- hidden partitioning: no extra date column needed
TBLPROPERTIES ('write.parquet.compression-codec' = 'zstd')
AS SELECT * FROM spark_catalog.db.sales;

Se lee y escribe cada byte, así que tarda más y duplica el almacenamiento hasta que borres la tabla antigua. A cambio obtienes archivos del tamaño adecuado, compresión moderna y particionado oculto: las consultas filtran por order_ts e Iceberg descarta particiones automáticamente, así que los usuarios ya no necesitan conocer una columna de partición aparte.

Método 3: migración gestionada en Amazon S3 Tables

Novedad del 4 de noviembre de 2026. Si tus tablas Hive están registradas en AWS Glue y guardadas en Parquet, S3 Tables puede hacer toda la migración:

Migración gestionada de S3 Tables
Validarcomprueba la tabla de Glue y los archivos
Convertir y copiara una tabla de S3 en formato Iceberg
Sincronizarvuelve a aplicar los cambios de origen tantas veces como necesites
Cambiar o volver atrásla producción sigue funcionando todo el tiempo
  • Coste: solo pagas los datos que copia el trabajo; la conversión de Hive a Iceberg es gratuita. Los archivos de origen en S3 Intelligent-Tiering mantienen su nivel de acceso.
  • Mejores archivos: las tablas comprimidas con Snappy se recomprimen en Zstandard y se compactan, lo que reduce el almacenamiento y el número de objetos.
  • Límites en el lanzamiento: tablas Hive registradas en Glue, en Parquet, en la misma cuenta y región de AWS, en 10 regiones, entre ellas Irlanda, Fráncfort y Estocolmo en Europa.
  • Para agentes de IA: AWS también publicó una skill de migración para que un agente ejecute el proceso, con tu aprobación.

¿Qué método usar?

En el sitio (migrate)Reescritura (CTAS)S3 Tables gestionada
Copia datosNoSíSí
VelocidadMinutosHoras en tablas grandesSe ejecuta en segundo plano
Corrige archivos pequeños y particionesNoSíCompacta y recomprime
Vuelta atrásDesde la tabla de copia de seguridadConserva la tabla antiguaIntegrada
DóndeCualquier Spark con IcebergCualquier motor IcebergSolo AWS, Glue y Parquet

La lista de comprobación del cambio

  1. 1

    Enumera cada lector y escritor

    Paneles, trabajos de Spark, consultas de Athena o Trino, exportaciones. Cada uno debe admitir Iceberg antes del cambio.

  2. 2

    Detén o pausa las escrituras

    Migra en un momento tranquilo, o usa la sincronización de S3 Tables para ponerte al día antes del cambio.

  3. 3

    Compara los resultados

    Número de filas, sumas de las columnas clave y algunas consultas de ejemplo en la tabla antigua y en la nueva.

  4. 4

    Cambia el nombre

    Apunta los trabajos a la tabla nueva, o deja que migrate sustituya el nombre por ti.

  5. 5

    Programa el mantenimiento

    Iceberg necesita compactación y caducidad de snapshots periódicas; S3 Tables, Databricks y Snowflake pueden hacerlo automáticamente.

  6. 6

    Borra la tabla antigua más tarde

    Conserva la copia de seguridad una o dos semanas antes de eliminarla.

Pon a prueba lo que has aprendido

1/3¿Qué hace el procedimiento migrate de Iceberg con los archivos de datos?

2/3¿Por qué elegir en su lugar una reescritura completa?

3/3¿Qué pagas en la migración gestionada de S3 Tables?

Relacionado: Apache Iceberg v3, DuckDB frente a Polars frente a Spark y cómo elegir una base de datos.

Fuentes: AWS, "Amazon S3 Tables now provide a simple, cost-effective path for data lake modernization" (4 de noviembre de 2026); documentación de Apache Iceberg sobre procedimientos de Spark (snapshot, migrate, add_files) y propiedades de tabla; blog de Google Cloud (4 de noviembre de 2026) para la cifra de talabat. Prueba los procedimientos en una copia antes de usarlos en tablas de producción.

Alessandro Ecclesie AgazziEscrito por Alessandro Ecclesie Agazzi, analytics engineer en Londres. Actualizado el 9 de noviembre de 2026. Sobre mí

¿Te ha resultado útil?

Aquí se publican con regularidad nuevas guías y artículos sobre las novedades en datos e IA. Sígueme en LinkedIn o comparte este artículo con un compañero.