Le 5 principali caratteristiche di Apache Iceberg per i moderni Data Lake

I big data si sono evoluti significativamente dalla loro nascita alla fine degli anni 2000. Molte organizzazioni si sono adattate rapidamente alla tendenza e hanno costruito le loro piattaforme di big data utilizzando strumenti open source come Apache Hadoop. Successivamente, queste aziende hanno iniziato a incontrare difficoltà nella gestione delle esigenze di elaborazione dei dati in rapida evoluzione. Hanno affrontato sfide nel gestire le modifiche a livello di schema, l’evoluzione degli schemi di partizione e il dover tornare indietro nel tempo per esaminare i dati.

Ho affrontato sfide simili mentre progettavo sistemi distribuiti su larga scala negli anni 2010 per una grande azienda tecnologica e un cliente nel settore sanitario. Alcuni settori necessitano di queste capacità per aderire alle normative bancarie, finanziarie e sanitarie. Aziende fortemente orientate ai dati come Netflix hanno affrontato sfide simili. Hanno inventato un formato di tabella chiamato “Iceberg”, che si basa sui file di dati esistenti e offre funzionalità chiave sfruttando la sua architettura. Questo è rapidamente diventato il principale progetto ASF, poiché ha suscitato un rapido interesse nella comunità dei dati. Esplorerò le 5 principali caratteristiche chiave di Apache Iceberg in questo articolo con esempi e diagrammi.

1. Viaggio nel tempo

Figura 1: Viaggio nel tempo nel formato di tabella Apache Iceberg (immagine creata dall’autore)

Questa funzionalità ti consente di interrogare i tuoi dati così come esistono in qualsiasi punto. Ciò aprirà nuove possibilità per gli analisti di dati e di business per comprendere le tendenze e come i dati si sono evoluti nel tempo. Puoi tornare facilmente a uno stato precedente in caso di errori. Questa funzionalità facilita anche i controlli di audit consentendoti di analizzare i dati in un punto specifico nel tempo.

SQL

 

2. Evoluzione dello Schema

L’evoluzione dello schema di Apache Iceberg consente modifiche allo schema senza sforzi e migrazioni costose. Man mano che le esigenze aziendali evolvono, puoi:

  • Aggiungere e rimuovere colonne senza alcun tempo di inattività o riscritture delle tabelle.
  • Aggiornare la colonna (allargamento).
  • Cambiare l’ordine delle colonne.
  • Rinominare una colonna esistente.

Queste modifiche sono gestite a livello di metadati senza la necessità di riscrivere i dati sottostanti.

SQL

 

3. Evoluzione della Partizione

Utilizzando il formato tabella di Apache Iceberg, puoi cambiare la strategia di partizionamento della tabella senza riscrivere la tabella sottostante o migrare i dati in una nuova tabella. Ciò è reso possibile poiché le query non fanno riferimento direttamente ai valori di partizione come in Apache Hadoop. Iceberg mantiene le informazioni sui metadati per ciascuna versione della partizione separatamente. Ciò rende facile ottenere le suddivisioni durante l’interrogazione dei dati. Ad esempio, interrogando una tabella in base all’intervallo di date, mentre la tabella utilizzava il mese come colonna di partizione (prima) come una suddivisione e il giorno come una nuova colonna di partizione (dopo) come un’altra suddivisione. Questo è chiamato pianificazione delle suddivisioni. Vedi l’esempio qui sotto.

SQL

 

4. Transazioni ACID

Iceberg offre un supporto robusto per le transazioni in termini di Atomicità, Coerenza, Isolamento e Durabilità (ACID). Consente operazioni di scrittura concorrenti multiple, il che permette un alto throughput in lavori intensivi di dati senza compromettere la coerenza dei dati.

SQL

 

Tutte le operazioni in Iceberg sono transazionali, il che significa che i dati rimangono coerenti nonostante i guasti o le modifiche ai dati in modo concorrente.

SQL

 

Supporta anche diversi livelli di isolamento, il che consente di bilanciare le prestazioni e la coerenza in base ai requisiti.

SQL

 

Ecco un riepilogo che mostra come Iceberg gestisce gli aggiornamenti e le cancellazioni a livello di riga.

Figura 2: Processo di cancellazione dei record in Apache Iceberg (immagine creata dall’autore)

5. Operazioni avanzate sulle tabelle

Iceberg supporta operazioni avanzate sulle tabelle come:

  • Creazione/gestione di snapshot delle tabelle: Questo consente di avere un robusto controllo delle versioni.
  • Pianificazione e esecuzione rapida delle query con i suoi metadati altamente ottimizzati
  • Strumenti integrati per la manutenzione delle tabelle, come la compattazione e la pulizia dei file orfani

Iceberg è progettato per funzionare con tutti i principali servizi di archiviazione cloud, come AWS S3, GCS e Azure Blob Storage. Inoltre, Iceberg si integra facilmente con motori di elaborazione dati come Spark, Presto, Trino e Hive.

Pensieri finali

Queste caratteristiche evidenziate consentono alle aziende di costruire laghi di dati moderni, flessibili, scalabili ed efficienti, che possono viaggiare nel tempo, gestire facilmente le modifiche allo schema, supportare transazioni ACID e l’evoluzione delle partizioni.

Source:
https://dzone.com/articles/key-features-of-apache-iceberg-for-data-lakes