Apache Parquet è un formato open-source di file di dati a colonne, pensato per lo stoccaggio e il recupero efficiente dei dati. Offre una compressione efficiente dei dati e schemi di codifica con prestazioni avanzate per gestire dati complessi in massa. Apache Parquet è nato per essere usato come formato di interscambio comune per carichi di lavoro in batch e interattivi. È simile ad altri formati di file a colonne disponibili in Hadoop, in particolare RCFile e ORC.
Apache Parquet viene implementato utilizzando un algoritmo di assemblaggio che ha polverizzato ogni record e che contiene la struttura di dati complessa utilizzata per immagazzinare i dati. Parquet è ottimizzato per lavorare con dati complessi in massa e offre diverse modalità per la compressione efficiente dei dati e svariate tipologie di codifica dei dati. Questo approccio è particolarmente valido per le query che devono leggere colonne specifiche all'interno di una grande tabella. Parquet può leggere solo le colonne necessarie, riducendo drasticamente il traffico I/O.
CSV è un formato semplice e comune utilizzato da numerosi strumenti quali Excel, Fogli Google e molti altri. Anche se i file CSV sono il formato di default per le pipeline di elaborazione dei dati, presentano alcuni svantaggi:
Parquet aiuta gli utilizzatori a ridurre le necessità di stoccaggio di almeno un terzo per grandi set di dati; inoltre, migliora notevolmente i tempi di scansione e deserializzazione e, quindi, i costi complessivi. La tabella riportata sotto mette a confronto il risparmio economico e l'incremento di velocità garantiti dalla conversione dei dati da CSV a Parquet.
|
Set di dati |
Dimensioni su Amazon S3 |
Tempo di esecuzione della query |
Dati scansionati |
Costo |
|
Dati memorizzati in formato CSV |
1 TB |
236 secondi |
1,15 TB |
$5,75 |
|
Dati memorizzati in formato Apache Parquet |
130 GB |
6,78 secondi |
2,51 GB |
$0,01 |
|
Risparmi |
87% in meno utilizzando Parquet |
34x più veloce |
99% in meno di dati scansionati |
99,7% di risparmio |
Il progetto open-source Delta Lake si basa sul formato Parquet e lo estende con funzionalità aggiuntive come transazioni ACID sullo stoccaggio di oggetti in cloud, viaggi nel tempo, evoluzione degli schemi e semplici comandi DML (CREATE/UPDATE/INSERT/DELETE/MERGE). Delta Lake implementa molte di queste importanti funzionalità attraverso l'uso di un registro di transazioni ordinato che abilita funzionalità di data warehousing sullo stoccaggio di oggetti in cloud. Approfondisci l 'argomento leggendo questo post sul blog di Databricks: Diving into Delta Lake: Unpacking the Transaction Log.
