Sappiamo che la gestione dei dati oggi sta cambiando completamente. Per decenni, le aziende si sono affidate ai data warehouse, che memorizzavano le informazioni in modo appropriato. Sono strutturati, governati e veloci nell’estrazione delle informazioni, anche se costosi e rigidi per natura. Al contrario, i data lake sono più efficienti e consentono la memorizzazione di enormi quantità di dati indipendentemente dalla struttura. Tuttavia, l’emergere dell’architettura del lakehouse combina i vantaggi dei data lake e dei data warehouse. I modelli lakehouse consentono di mantenere la flessibilità fornita dai data lake integrando al contempo l’affidabilità, la governance e le prestazioni di un data warehouse.
Il formato di tabella open-source più notevole creato per l’analisi dei dati su larga scala è Apache Iceberg. Iceberg è in prima linea in questa trasformazione e aumenta il valore dei dati nell’architettura lakehouse. Inoltre, Iceberg offre soluzioni per molti dei problemi che i data lake affrontano, inclusi l’evoluzione dello schema, le transazioni ACID, la coerenza dei dati e le prestazioni delle query.
Questo post del blog è il primo di una serie di tre articoli che esplorano Apache Iceberg e il suo ruolo nelle architetture moderne dei dati. In questo post, l’attenzione sarà rivolta ai seguenti argomenti:
- L’evoluzione dai data warehouse ai data lake
- Le sfide associate agli approcci tradizionali
- Come Apache Iceberg affronta queste limitazioni
I prossimi post di questa serie approfondiranno l’architettura di Iceberg ed esploreranno come funzionano le query all’interno delle tabelle Iceberg.
Sintesi Breve: L’Evoluzione dei Data Lake dai Data Warehouse
Per innumerevoli anni, le aziende hanno fatto affidamento sui data warehouse, che hanno servito come base centrale per l’analisi. Un data warehouse funge da repository centralizzato destinato a catturare dati strutturati da fonti diverse per produrre report e approfondimenti in modo efficiente. Oggi, i data warehouse facilitano prestazioni di query rapide insieme a robusti meccanismi di governance, rendendoli affidabili e ben strutturati.
Tuttavia, le organizzazioni hanno incontrato nuovi problemi con l’aumento del volume dei dati.
- Aumento dei costi di archiviazione a causa delle elevate spese per elaborazione e archiviazione
- Applicazione rigida degli schemi, che ha reso difficile l’integrazione di dati semi-strutturati o non strutturati
- Il supporto per carichi di lavoro di intelligenza artificiale e machine learning era limitato
Come soluzione, le aziende hanno iniziato a utilizzare i data lake. Questo ha consentito alle imprese di mantenere dati grezzi, dati strutturati e dati non strutturati all’interno di archiviazione economica come Amazon S3, Azure Data Lake Storage, Google Cloud Storage e Hadoop Distributed File System.
I benefici dei data lake comprendevano i seguenti fattori:
- Riduzione dei costi di archiviazione all’interno di particolari ambienti cloud
- Utilizzo di nuovi formati di dati come dati non strutturati, semi-strutturati e persino strutturati
- Maggiore utilizzo di applicazioni di intelligenza artificiale e machine learning
Anche con questi vantaggi, i data lake presentavano nuovi problemi come:
- L’assenza di governance e schema ha causato set di dati inconsistenti.
- L’utilizzo inefficiente dell’indicizzazione e delle scansioni complete delle tabelle ha rallentato le prestazioni delle query.
- L’assenza di transazioni ACID ha reso difficile garantire l’integrità dei dati in ambienti multi-utente.
L’emergere del Data Lakehouse
Un data lakehouse unisce tutti i vantaggi di scalabilità ed economia di un data lake con la produttività, l’affidabilità e le caratteristiche transazionali di un data warehouse. Questo è un moderno paradigma di design.
I principali vantaggi di un data lakehouse includono:
- Accogliere sia funzioni di archiviazione che di elaborazione a un prezzo inferiore
- Controllo dei dati efficiente tramite transazioni ACID
- Modifica dello schema senza influenzare le query esistenti – Evoluzione dello schema
- Recupero delle versioni precedenti della tabella attraverso capacità di Time travel
L’introduzione di queste capacità ha portato allo sviluppo di formati di tabella moderni come Delta Lake, Apache Hudi e Apache Iceberg. Queste strutture hanno reso più facile per i data lake operare come i data warehouse, mantenendo comunque la libertà di rimanere flessibili e non strutturati grazie all’introduzione di livelli di metadati strutturati. Tra questi formati di tabella, Apache Iceberg è emerso come una scelta leader, offrendo una soluzione robusta per le organizzazioni che cercano di passare ad architetture di data lakehouse.
Apache Iceberg: Un cambiamento di gioco per i Data Lakehouse
Cosa è un formato di tabella?
Utilizzare un formato tabellare offre un modo efficace per gestire grandi insiemi di informazioni immagazzinate in un data lake. Incapsula alcune funzioni, tra cui:
- Strutturare i dati in tabelle per una gestione e interrogazioni efficaci.
- Eliminare e aggiornare i dati in modo efficiente, nonché modificare gli schemi.
- Migliorare le prestazioni sui tempi di risposta delle interrogazioni modificando i metadati.
Come con altri formati di tabella tradizionali come Hive, c’era una dipendenza da uno storage basato su directory, il che significava che le tabelle erano costruite dal contenuto di determinate directory di file. Tuttavia, questo metodo ha creato un collo di bottiglia nelle prestazioni poiché i motori di interrogazione dovevano filtrare l’intero contenuto delle directory prima di eseguire un’interrogazione.
L’evoluzione da Hive a Iceberg
Il formato di tabella Hive cercava di risolvere il problema della strutturazione dei data lake nei primi anni. Lo scopo era quello di permettere agli utenti di organizzare i dataset in tabelle con interrogazioni simili a quelle utilizzate in SQL da Apache Hive e Presto. Tuttavia, ci sono notevoli svantaggi nel formato Hive:
- Incoerenze dovute a scritture concorrenti da diverse fonti a causa della mancanza di transazioni ACID.
- Operazioni di elenco file costose eseguite a causa di una gestione inefficiente dei metadati.
- Interrogazioni lente causate da sfide di partizionamento di ottimizzazione manuale.
Come Apache Iceberg risolve queste sfide
Apache Iceberg è un formato di tabella moderno che elimina i problemi presentati con Hive, fornendo transazioni ACID, evoluzione dello schema e prestazioni rapide nelle query con i data lake.
Tra i principali vantaggi di Apache Iceberg ci sono:
- Transazioni ACID che garantiscono aggiornamenti affidabili dei dati e coerenza.
- Capacità di viaggiare nel tempo e interrogare i snapshot storici dei dati.
- Evoluzione dello schema che consente di aggiungere, rinominare o eliminare colonne senza interrompere le query esistenti.
- Evoluzione della partizione che ottimizza automaticamente le strategie di partizionamento.
- Riduzione delle scansioni di file non necessarie che consente un’esecuzione delle query più veloce grazie alla gestione efficiente dei metadati.
Osservazioni finali
La gestione dei dati è cambiata drasticamente con l’emergere di Apache Iceberg. Consente alle aziende che transitano verso un approccio data lakehouse di gestire le proprie informazioni in modo economico e altamente scalabile senza sacrificare le prestazioni. È chiaro che l’analisi è stata trasformata con l’invenzione di Apache Iceberg e il suo utilizzo è in costante aumento. Fai attenzione al post finale di questa serie. Nei prossimi due post del blog, l’attenzione si sposterà su:
- Parte 2: L’architettura di Apache Iceberg, inclusi i livelli di dati, metadati e catalogo.
- Parte 3: I meccanismi delle query in Iceberg, inclusi lettura e scrittura, viaggi nel tempo e metodi di ottimizzazione delle query.
Source:
https://dzone.com/articles/the-future-of-data-lakehouses-apache-iceberg