Cos'è Apache Iceberg?

Apache Iceberg è un formato di tabella dati distribuito, guidato dalla community, con licenza Apache 2.0 e open source al 100% che aiuta a semplificare l'elaborazione dei dati su set di dati di grandi dimensioni archiviati nei data lake. Gli ingegneri dei dati utilizzano Apache Iceberg perché è veloce, efficiente e affidabile su qualsiasi scala e registra il cambiamento del set di dati nel tempo. Apache Iceberg offre facili integrazioni con i più diffusi framework di elaborazione dati come Apache Spark, Apache Flink, Apache Hive, Presto e altri.

Cos'è un data lake transazionale?

Un data lake è un repository centralizzato che permette di archiviare tutti i dati strutturati e non su qualsiasi scala. Una transazione di dati è una serie di scambi di dati condotti in un'unica operazione. Ad esempio, quando un cliente preleva denaro da un conto bancario, la banca effettua diversi scambi di dati contemporaneamente in un'unica transazione di dati, tra cui la verifica che il conto abbia un saldo sufficiente, la verifica dell'identità e l'addebito del prelievo dal conto. Un data lake transazionale è un tipo di data lake che non solo archivia dati su larga scala, ma supporta anche operazioni transazionali e garantisce che i dati siano accurati, coerenti e consente di tenere traccia di come i dati e la struttura dei dati cambiano nel tempo. Queste proprietà sono note collettivamente come Atomicità, Consistenza, Isolamento e Durabilità (ACID):

  • L'atomicità garantisce che ogni transazione sia un singolo evento che riesce o fallisce completamente; non esiste uno status intermedio. 
  • La coerenza garantisce che tutti i dati scritti siano validi secondo le regole definite del data lake, garantendo che i dati siano accurati e affidabili. 
  • L'isolamento garantisce che più transazioni possano avvenire contemporaneamente senza interferire l'una con l'altra, assicurando che ogni transazione venga eseguita in modo indipendente.
  • La durabilità significa che i dati non vengono persi o danneggiati una volta inviata una transazione. I dati possono essere ripristinati in caso di guasto del sistema, ad esempio un'interruzione dell'alimentazione.

Quali sono i vantaggi dell'uso di Apache Iceberg?

Alcuni dei principali vantaggi dell'utilizzo di Apache Iceberg per i data lake transazionali includono:

  • Familiarità di SQL: Structured query language (SQL) è un linguaggio di query popolare che viene spesso utilizzato in tutti i tipi di applicazioni. Gli analisti di dati e gli sviluppatori imparano e usano SQL perché si integra bene con diversi linguaggi di programmazione ed è anche abbastanza facile da imparare poiché utilizza parole chiave inglesi comuni nelle sue dichiarazioni. Apache Iceberg consente a chiunque abbia familiarità con il linguaggio SQL (Structured Query Language) di creare data lake ed eseguire la maggior parte delle operazioni dei data lake senza dover imparare un nuovo linguaggio.
  • Coerenza dei dati: Apache Iceberg fornisce la coerenza dei dati per garantire che qualsiasi utente che legge e scrive i dati veda gli stessi dati. 
  • Struttura dei dati: Apache Iceberg consente di modificare facilmente la struttura dei dati, nota anche come evoluzione dello schema, il che significa che gli utenti possono aggiungere, rinominare o rimuovere colonne da una tabella di dati senza interrompere i dati sottostanti.
  • Controllo delle versioni dei dati: Apache Iceberg fornisce supporto per il controllo delle versioni dei dati, che consente agli utenti di tenere traccia delle modifiche ai dati nel tempo. Ciò abilita la funzione di viaggio nel tempo, che consente agli utenti di accedere e interrogare le versioni storiche dei dati e di analizzare le modifiche ai dati tra aggiornamenti ed eliminazioni.
  • Supporto multipiattaforma: Apache Iceberg supporta una varietà di diversi sistemi di storage e motori di query, tra cui Apache Spark, Apache Hive e Presto. Ciò semplifica l'utilizzo di Iceberg in una varietà di diversi ambienti di elaborazione dei dati.
  • Elaborazione incrementale: Iceberg supporta l'elaborazione incrementale, che consente agli utenti di elaborare solo i dati che sono stati modificati dall'ultima esecuzione, nota anche come CDC (Change Data Capture). Ciò può contribuire a migliorare l'efficienza e le prestazioni dell'elaborazione dei dati.

Quali sono i casi d'uso più comuni per Apache Iceberg?

Apache Iceberg è adatto per molti casi d'uso dei data lake, tra cui:

  • Tabelle di dati nei data lake che richiedono eliminazioni frequenti, ad esempio quando si applicano le leggi sulla privacy dei dati.
  • Tabelle di dati nel data lake che richiedono aggiornamenti a livello di record. Ciò è utile quando il set di dati richiede aggiornamenti frequenti dopo la liquidazione dei dati, ad esempio i dati sulle vendite che possono cambiare a causa di eventi successivi come i resi dei clienti. Iceberg offre funzionalità per aggiornare singoli record senza dover ripubblicare l'intero set di dati.
  • Tabelle di dati in data lake con modifiche imprevedibili, come le tabelle Slowly Changing Dimension (SCD). Un esempio di SCD è una tabella dei record dei clienti che include nome, posizione e informazioni di contatto che possono cambiare nel tempo a intervalli sconosciuti.
  • Quando le transazioni con il data lake richiedono validità, durata e affidabilità dei dati garantite, è possibile implementare i formati di tabella Apache Iceberg per garantire le transazioni ACID.
  • Quando è necessario tornare indietro nel tempo per interrogare le versioni storiche dei dati per eseguire analisi delle tendenze, analizzare le modifiche ai dati in un periodo di tempo o ripristinare o ripristinare una versione precedente per correggere problemi.

Chi usa Apache iceberg?

Ingegneri dei dati, amministratori di dati, analisti di dati e data scientist sono tra le persone che utilizzano Apache Iceberg.  Gli ingegneri e gli amministratori dei dati possono utilizzare Apache Iceberg per progettare e creare sistemi di archiviazione di dati scalabili.  Gli analisti di dati e i data scientist possono utilizzare Apache Iceberg per analizzare set di dati di grandi dimensioni in modo efficiente. 

Perché scegliere Apache Iceberg?

Apache Iceberg offre un modo rapido ed efficiente per elaborare set di dati di grandi dimensioni su larga scala. Questi servizi hanno i seguenti vantaggi:

  1. Open source: Apache Iceberg è un progetto open source, il che significa che è gratuito e può essere personalizzato per soddisfare le tue esigenze specifiche. Ha anche una comunità attiva di sviluppatori che migliorano e aggiungono continuamente nuove funzionalità al progetto. 
  2. Scalabilità: Apache Iceberg è progettato per gestire set di dati di grandi dimensioni in modo efficiente. Può partizionare e organizzare i dati su più nodi, il che aiuta a distribuire il carico di lavoro e velocizzare l'elaborazione dei dati. 
  3. Prestazioni: Apache Iceberg offre una varietà di funzionalità per ottimizzare le prestazioni delle query, tra cui tecniche di archiviazione e compressione a colonne come il predicate push down e l'evoluzione dello schema. 
  4. Flessibilità: Apache Iceberg consente di modificare l'organizzazione dei dati in modo che possano evolversi nel tempo senza dover riscrivere le query o ricostruire le strutture dei dati. Supporta inoltre diversi formati di dati e fonti di dati, il che semplifica l'integrazione con i sistemi esistenti. 
  5. Affidabilità: Apache Iceberg garantisce la coerenza e l'affidabilità dei dati attraverso il supporto per le transazioni. Puoi tenere traccia delle modifiche dei dati nel tempo e tornare alle versioni cronologiche per aiutarti a correggere i problemi.

Quali servizi AWS supportano Iceberg?

Apache Iceberg supporta i framework di elaborazione dati più diffusi come Apache Spark, Apache Flink, Apache Hive e Presto. I servizi AWS come Amazon Athena, Amazon EMR e AWS Glue includono il supporto nativo per i framework transazionali di data lake, tra cui Apache Iceberg. Apache Iceberg, in combinazione con i servizi AWS supportati, abilita un data lake transazionale, spesso basato sull'archiviazione in S3.

  • Amazon Athena è un servizio di analisi interattivo serverless basato su framework open source, che supporta formati di file e tabelle aperte. Athena fornisce un modo semplificato e flessibile per analizzare petabyte di dati dove risiede. Athena fornisce supporto nativo per le query di lettura, viaggi nel tempo, scrittura e DDL per le tabelle Apache Iceberg che utilizzano il formato Apache Parquet per i dati e il catalogo AWS Glue per i loro metastore. 
  • Amazon EMR è la soluzione cloud di big data leader del settore per l'elaborazione dei dati su scala petabyte, l'analisi interattiva e il machine learning utilizzando framework open source come Apache Spark, Hadoop, Presto e Hive. A partire da Amazon EMR 6.5.0, è possibile utilizzare Apache Spark 3 su cluster Amazon EMR con il formato di tabella Iceberg. I framework EMR, tra cui Spark, Trino, Flink e Hive, supportano Apache Iceberg.
  • AWS Glue è un servizio di integrazione dei dati serverless che facilita la scoperta, la preparazione, lo spostamento e l'integrazione dei dati da più origini per l'analisi, il machine learning (ML) e lo sviluppo di applicazioni.  AWS Glue 3.0 e versioni successive supportano il framework Apache Iceberg per data lake. Puoi usare AWS Glue per eseguire operazioni di lettura e scrittura su tabelle Iceberg in Amazon S3 o lavorare con tabelle Iceberg utilizzando il Catalogo dati AWS Glue. Sono supportate anche operazioni aggiuntive tra cui inserimento, aggiornamento e tutte le query Spark, le scritture Spark. 

Fasi successive su AWS

Scopri ulteriori risorse correlate al prodotto
Scopri i servizi di analisi  
Registrati per creare un account gratuito

Ottieni accesso istantaneo al Piano gratuito di AWS.

Registrati 
Inizia a lavorare nella console

Inizia subito a creare nella Console di gestione AWS.

Accedi