Che cos'è Apache Iceberg?

Ultimo aggiornamento: 01/05/2026

Apache Iceberg è un formato di tabella open source progettato per set di dati analitici su larga scala archiviati in data lake. Le tabelle Iceberg gestiscono i dati come raccolte di file, offrendo maggiore affidabilità, prestazioni e flessibilità per le moderne architetture di dati. Immaginalo come un livello intelligente che si trova al di sopra dello spazio di archiviazione del data lake, come Cloud Storage, e fornisce funzionalità simili a quelle di un database per i tuoi enormi set di dati. Invece di gestire semplicemente i file, Iceberg gestisce le tabelle come raccolte di file di dati, consentendo funzionalità come l'evoluzione dello schema, lo spostamento cronologico e una pianificazione delle query più efficiente. Ciò consente ad analisti di dati, data scientist e ingegneri di lavorare con i dati nei data lake con maggiore facilità ed efficienza e di aumentare i carichi di lavoro analitici.

Che cos'è un data lake transazionale?

Un data lake transazionale non solo archivia i dati su larga scala, ma supporta anche operazioni transazionali per garantire che i dati siano accurati e coerenti. Le tabelle Iceberg abilitano queste proprietà, note collettivamente come ACID.

  • Atomicità: garantisce che ogni transazione venga trattata come una singola unità, che abbia esito positivo o negativo, senza stati intermedi
  • Coerenza: garantisce che tutti i dati scritti siano validi in base alle regole definite del data lake.
  • Isolamento: consente l'esecuzione simultanea di più transazioni senza interferenze reciproche
  • Durabilità: garantisce che i dati non vengano persi o danneggiati una volta inviata una transazione, anche in caso di errore del sistema

Casi d'uso comuni per le tabelle Iceberg

Le tabelle Iceberg sono adatte a una varietà di casi d'uso moderni di data lake e lakehouse, tra cui:

  • Conformità e privacy: ideale per i data lake che richiedono eliminazioni frequenti per applicare le leggi sulla privacy dei dati
  • Aggiornamenti a livello di record: consente di aggiornare singoli record senza ripubblicare interi set di dati, ad esempio i dati di vendita che cambiano a causa dei resi dei clienti
  • Gestione di modifiche imprevedibili: supporta tabelle di dimensioni a variazione lenta (SCD), come i record dei clienti in cui le informazioni di contatto possono cambiare a intervalli sconosciuti
  • Spostamento cronologico e controllo: mantiene una cronologia degli snapshot delle tabelle, consentendo agli utenti di eseguire query sulle versioni storiche per l'analisi delle tendenze o per eseguire il rollback e correggere i problemi
  • Machine learning: fornisce set di dati coerenti e sottoposti a controllo delle versioni, fondamentali per l'addestramento di modelli affidabili

Chi utilizza le tabelle Iceberg?

Diverse figure tecniche sfruttano le tabelle Iceberg per gestire in modo efficiente set di dati di grandi dimensioni:

  • Data engineer e amministratori: utilizzate le tabelle Iceberg per progettare e creare sistemi di archiviazione scalabili e affidabili
  • Analisti e scienziati dei dati: utilizzano la tabella Iceberg per analizzare set di dati di grandi dimensioni con la familiarità di SQL e snapshot storici riproducibili

Vantaggi principali delle tabelle Iceberg

Consente agli utenti che conoscono l'SQL standard di eseguire operazioni complesse sul data lake senza dover apprendere un nuovo linguaggio.

Consente di apportare modifiche senza interruzioni alle strutture dei dati (aggiungendo, rinominando o rimuovendo colonne) senza interrompere le query.

Supporta Change Data Capture (CDC), consentendo agli utenti di elaborare solo i dati che sono cambiati dall'ultima esecuzione per migliorare l'efficienza.

Utilizza i metadati per eliminare i file non necessari, accelerando l'esecuzione delle query attraverso tecniche come il pushdown dei predicati.

Compatibile con vari motori come Spark, Flink, Hive e Presto.

Come funzionano le tabelle Apache Iceberg?

Apache Iceberg introduce un livello di metadati che si trova al di sopra dei file di dati effettivi nel data lake. Questi metadati monitorano la struttura e il contenuto delle tabelle in modo più organizzato e solido rispetto ai tradizionali sistemi basati su file. Ecco una suddivisione dei suoi meccanismi principali:

  • Gestione dei metadati: Iceberg gestisce i file di metadati che descrivono lo schema della tabella, le partizioni e le posizioni dei file di dati. Questi file di metadati vengono in genere archiviati nel data lake insieme ai dati.
  • Catalogo: Iceberg si basa su un catalogo per tenere traccia della posizione dei metadati correnti per ogni tabella. Questo catalogo può essere un servizio come il metastore Hive, un'implementazione basata su file system o un servizio catalogo cloud-native.
  • Snapshot della tabella: ogni volta che viene apportata una modifica alla tabella (ad esempio, aggiunta o eliminazione di dati o evoluzione dello schema), Iceberg crea un nuovo snapshot dei metadati della tabella. Questi snapshot sono immutabili e forniscono un record cronologico dello stato della tabella.
  • Elenchi di manifest e file manifest: ogni snapshot fa riferimento a un elenco di manifest, che a sua volta elenca uno o più file manifest. I file manifest contengono metadati relativi a singoli file di dati, tra cui la loro posizione, i valori di partizione e le statistiche (ad esempio, conteggi di righe e intervalli di valori).

Architettura di Apache Iceberg

L'architettura di Apache Iceberg coinvolge diversi componenti chiave che lavorano insieme:

  • Spazio di archiviazione del data lake: si tratta del livello di archiviazione sottostante, come Cloud Storage, in cui sono archiviati i file di dati effettivi (in formati come Parquet, ORC o Avro) e i file di metadati di Iceberg.
  • Catalogo Iceberg REST: questo componente è responsabile della gestione dei puntatori ai metadati per i tabelle Iceberg. Funge da registry centrale che tiene traccia della versione attuale dei metadati di ogni tabella. Le implementazioni di cataloghi più comuni includono:
  • Metastore Hive: un repository di metadati ampiamente utilizzato, spesso impiegato con sistemi basati su Hadoop.
  • Catalogo del file system: un'implementazione semplice in cui le informazioni del catalogo vengono archiviate direttamente nel file system del data lake.
  • Servizi di catalogazione cloud-native: servizi gestiti offerti dai cloud provider per l'archiviazione e la gestione dei metadati.
  • Metadati Iceberg: si tratta di diversi livelli di file di metadati che tengono traccia della struttura e dei dati della tabella:
  • File di metadati della tabella: questo file punta all'elenco di manifest corrente e contiene informazioni generali sulla tabella, ad esempio lo schema e la specifica di partizionamento.
  • Elenco di manifest: questo file elenca i file manifest che contengono metadati sui file di dati in uno snapshot specifico della tabella.
  • File manifest: questi file contengono informazioni dettagliate sui singoli file di dati, tra cui la posizione, i valori di partizione e le statistiche.
  • Motori di query e framework di elaborazione: si tratta degli strumenti che interagiscono con le tabelle Iceberg per leggere e scrivere dati. Questi motori sfruttano i metadati di Iceberg per ottimizzare la pianificazione e l'esecuzione delle query.
  • Risorse di computing: si tratta dell'infrastruttura sottostante (ad esempio, macchine virtuali e container) che esegue i motori di query e i framework di elaborazione.

Apache Iceberg e data lake

Apache Iceberg migliora in modo significativo le funzionalità dei data lake aggiungendo un formato di tabella affidabile ad alte prestazioni. Nei data lake tradizionali senza un formato di tabella come Iceberg, i dati sono spesso solo una raccolta di file. Ciò può comportare diverse sfide:

  • Mancanza di evoluzione dello schema: modificare la struttura dei dati può essere complesso e soggetto a errori
  • Letture incoerenti: le operazioni di scrittura concorrenti possono portare a query che leggono un mix di dati vecchi e nuovi
  • Esecuzione lenta delle query: senza metadati che guidino i motori di query, questi spesso devono eseguire la scansione di grandi porzioni dei dati
  • Difficoltà con la gestione dei dati: funzionalità come lo spostamento cronologico e il controllo delle versioni non sono immediatamente disponibili

Iceberg risolve queste limitazioni fornendo un livello strutturato al di sopra del data lake. Offre funzionalità simili a quelle di un database ai data lake, trasformandoli in data lakehouse più potenti e gestibili. Gestendo le tabelle come raccolte di file con metadati avanzati, Iceberg offre:

  • Accesso ai dati affidabile e coerente: le proprietà ACID garantiscono l'integrità dei dati
  • Elaborazione efficiente delle query: il salto e il filtraggio dei dati basati sui metadati accelerano le query
  • Gestione flessibile dei dati: l'evoluzione dello schema e lo spostamento cronologico semplificano la manutenzione e l'analisi dei dati
  • Interoperabilità: Iceberg è progettato per essere compatibile con vari motori di query e framework di elaborazione comunemente utilizzati con i data lake

Risolvi le tue sfide aziendali con Google Cloud

I nuovi clienti ricevono 300 $ di crediti senza costi da spendere su Google Cloud.
Parla con un esperto delle vendite di Google Cloud per discutere della tua sfida unica in modo più dettagliato.

Google Cloud e Apache Iceberg

Google Cloud offre un ambiente solido per sfruttare Apache Iceberg. Diversi servizi di Google Cloud si integrano bene con Iceberg, consentendo agli utenti di creare soluzioni di data lakehouse potenti e scalabili.

Fai un passo avanti

Inizia a creare su Google Cloud con 300 $ di crediti senza costi e oltre 20 prodotti sempre senza costi.

Google Cloud