Impara  /  Guide

Come migrare tabelle Hive ad Apache Iceberg nel 2026: tre metodi, con i comandi

Iceberg è diventato il formato di tabella comune del mondo dei dati, e AWS ha appena trasformato la migrazione in un servizio gestito. Che tu sia su AWS o no, ecco i tre modi per migrare una tabella Hive, quanto richiede ciascuno e come fare il passaggio senza rompere le dashboard.

Guida9 min di letturaAggiornato il 9 novembre 2026
DatabaseSQLDatabricksSnowflake
Tutte le guide e i cheat sheet

Le tabelle Hive sono cartelle di file più una voce in un metastore. Funzionano, ma non hanno transazioni, cambiare il partizionamento significa riscrivere tutto, ed elencare milioni di file rallenta ogni query. Apache Iceberg risolve tutto questo con un vero livello di tabella: commit atomici, modifiche a schema e partizioni senza riscritture, time travel e pianificazione veloce. Nel 2026 è anche il formato che Snowflake, Databricks, BigQuery, AWS, DuckDB e Polars leggono e scrivono. Il 4 novembre AWS ha trasformato la migrazione in una funzione gestita di Amazon S3 Tables. Questa guida copre quell'opzione e le due classiche.

3Metodi di migrazionesul posto, riscrittura, gestita
10Regioni AWSper la migrazione gestita di S3 Tables
0Dollariper la conversione in sé su S3 Tables
40Percentodi spostamento dati risparmiato da un cliente Google con la federazione Iceberg

Metodo 1: sul posto, con le procedure Spark

Iceberg include procedure Spark che trasformano una tabella Hive esistente in una tabella Iceberg senza copiare i dati. Leggono l'elenco dei file, scrivono metadati e manifest Iceberg e registrano la nuova tabella. I file di dati devono essere 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'
);

Metodo 2: riscrittura completa con CREATE TABLE AS SELECT

Se la tabella Hive ha problemi che vuoi comunque risolvere, come migliaia di file minuscoli, partizioni sbagliate o una compressione vecchia, scrivi invece una nuova tabella Iceberg:

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;

Così leggi e scrivi ogni byte, quindi ci vuole di più e lo spazio raddoppia finché non cancelli la vecchia tabella. In cambio ottieni file di dimensioni giuste, compressione moderna e partizionamento nascosto: le query filtrano su order_ts e Iceberg esclude le partizioni da solo, così gli utenti non devono più conoscere una colonna di partizione separata.

Metodo 3: migrazione gestita in Amazon S3 Tables

Novità del 4 novembre 2026. Se le tue tabelle Hive sono registrate in AWS Glue e salvate in Parquet, S3 Tables può eseguire tutta la migrazione:

Migrazione gestita di S3 Tables
Validazionecontrolla la tabella Glue e i file
Conversione e copiain una tabella S3 in formato Iceberg
Sincronizzazioneriapplica le modifiche della sorgente quando serve
Passaggio o rollbackla produzione continua a girare per tutto il tempo
  • Costo: paghi solo i dati copiati dal job; la conversione da Hive a Iceberg è gratuita. I file sorgente in S3 Intelligent-Tiering mantengono il loro livello di accesso.
  • File migliori: le tabelle compresse con Snappy vengono ricompresse in Zstandard e compattate, riducendo spazio e numero di oggetti.
  • Limiti al lancio: tabelle Hive registrate in Glue, in Parquet, nello stesso account e nella stessa regione AWS, in 10 regioni, tra cui Irlanda, Francoforte e Stoccolma in Europa.
  • Per gli agenti AI: AWS ha pubblicato anche una skill di migrazione con cui un agente può eseguire il flusso, con la tua approvazione.

Quale metodo usare?

Sul posto (migrate)Riscrittura (CTAS)S3 Tables gestita
Copia i datiNoSìSì
VelocitàMinutiOre per le tabelle grandiGira in background
Corregge file piccoli e partizioniNoSìCompatta e ricomprime
RollbackDalla tabella di backupTieni la vecchia tabellaIntegrato
DoveQualsiasi Spark con IcebergQualsiasi motore IcebergSolo AWS, Glue e Parquet

La checklist del passaggio

  1. 1

    Elenca chi legge e chi scrive

    Dashboard, job Spark, query Athena o Trino, esportazioni. Ognuno deve supportare Iceberg prima del passaggio.

  2. 2

    Ferma o metti in pausa le scritture

    Migra in un momento tranquillo, oppure usa la sincronizzazione di S3 Tables per recuperare le modifiche prima del passaggio.

  3. 3

    Confronta i risultati

    Numero di righe, somme delle colonne principali e qualche query di esempio sulla tabella vecchia e su quella nuova.

  4. 4

    Cambia il nome

    Punta i job alla nuova tabella, o lascia che migrate sostituisca il nome per te.

  5. 5

    Pianifica la manutenzione

    Iceberg ha bisogno di compattazione e scadenza degli snapshot regolari; S3 Tables, Databricks e Snowflake possono farlo in automatico.

  6. 6

    Elimina la vecchia tabella più tardi

    Tieni il backup per una o due settimane prima di cancellarlo.

Verifica cosa hai capito

1/3Cosa fa la procedura migrate di Iceberg con i file di dati?

2/3Perché scegliere invece una riscrittura completa?

3/3Cosa paghi nella migrazione gestita di S3 Tables?

Correlati: Apache Iceberg v3, DuckDB contro Polars contro Spark e come scegliere un database.

Fonti: AWS, "Amazon S3 Tables now provide a simple, cost-effective path for data lake modernization" (4 novembre 2026); documentazione di Apache Iceberg sulle procedure Spark (snapshot, migrate, add_files) e sulle proprietà delle tabelle; blog di Google Cloud (4 novembre 2026) per il dato di talabat. Prova le procedure su una copia prima di usarle sulle tabelle di produzione.

Alessandro Ecclesie AgazziScritto da Alessandro Ecclesie Agazzi, analytics engineer a Londra. Aggiornato il 9 novembre 2026. Chi sono

Ti è stato utile?

Qui escono regolarmente nuove guide e articoli sulle novità di dati e AI. Seguimi su LinkedIn o condividi questo articolo con un collega.