Parquet
Che cos'è Parquet?
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.
Caratteristiche di Parquet
- Formato di file open-source e gratuito.
- Neutro rispetto al linguaggio.
- Formato a colonne - i file sono strutturati a colonne invece che a righe, risparmiando spazio e velocizzando le query di analisi.
- Utilizzato per casi d'uso di analisi (OLAP), tipicamente abbinato a database OLTP tradizionali.
- Elevata efficienza nella compressione e decompressione di dati.
- Supporta tipologie di dati complesse e strutture di dati nidificate avanzate.
Vantaggi di Parquet
- Ideale per conservare big data di qualsiasi genere (tabelle di dati strutturati, immagini, video, documenti).
- Riduzione dello spazio di stoccaggio in cloud grazie alla compressione a colonne altamente efficiente e a schemi di codifica flessibili per colonne con diverse tipologie di dati.
- Miglioramento della capacità e delle prestazioni di elaborazione dei dati con tecniche come il "data skipping", grazie al quale le query che prelevano valori specifici dalle colonne non devono leggere l'intera riga di dati.
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.
Vantaggi dello stoccaggio di dati in un formato a colonne
- Lo stoccaggio colonnare utilizzato da Apache Parquet è pensato per offrire maggiore efficienza rispetto ai formati strutturati a righe come CSV. Quando si fa una query su un file a colonne, è possibile saltare i dati irrilevanti molto velocemente. Di conseguenza, le query di aggregazione richiedono meno tempo rispetto ai database a righe. Questa modalità di stoccaggio dei dati si traduce in un risparmio sui costi dell'hardware e in una latenza minima per l'accesso ai dati.
- Apache Parquet è stato sviluppato da zero, pertanto può supportare strutture di dati nidificate avanzate. Il layout dei file di dati di Parquet è ottimizzato per query che elaborano grandi volumi di dati, nell'ordine dei gigabyte per ogni singolo file.
- Parquet è progettato per offrire opzioni di compressione flessibili e schemi di codifica efficienti. Poiché il tipo di dati in ogni colonna è molto simile, la compressione di ogni colonna è semplice (e questo rende le query ancor più veloci). I dati possono essere compressi utilizzando uno dei numerosi codec disponibili; pertanto, diversi file di dati possono essere compressi in diversi modi.
- Apache Parquet funziona al meglio con tecnologie interattive e serverless come AWS Athena, Amazon Redshift Spectrum, Google BigQuery e Google Dataproc.
Differenze fra Parquet e CSV
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:
- Amazon Athena e Spectrum applicano tariffe basate sulla quantità di dati letti per ogni query.
- Google e Amazon applicano tariffe in base alla quantità di dati conservati su GS/S3.
- Google Dataproc applica tariffe a tempo.
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 |
Parquet e Delta Lake
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.