Apache Parquet è un formato di archiviazione orientato alle colonne per Hadoop. Hadoop è un framework di programmazione gratuito basato su Java che supporta l'elaborazione di grandi set di dati in un ambiente di elaborazione distribuito. Parquet è ottimizzato per lavorare con dati complessi in blocco e include metodi per un'efficiente compressione dei dati e tipi di codifica.
In genere, i dati vengono archiviati in modo orientato alle righe. Anche nei database, i dati vengono archiviati convenzionalmente in questo modo e sono ottimizzati per lavorare con un record alla volta. Parquet utilizza un algoritmo di distruzione dei record e di assemblaggio per scomporre i dati e riassemblarli in modo che i valori in ogni colonna siano fisicamente memorizzati in posizioni di memoria contigue. I dati archiviati per colonna in questo metodo serializzato consentono ricerche efficienti su enormi set di dati. Poiché Hadoop è progettato per i big data, l'archiviazione a colonne è una tecnologia complementare.
L'archiviazione dei dati in un formato a colonne offre vantaggi quali:
- Compressione più efficiente grazie allo spazio risparmiato dal formato colonnare.
- La somiglianza dei dati delle colonne consente la compressione dei dati per il tipo specifico di dati.
- Le query che cercano valori di colonna specifici non devono leggere i dati dell'intera riga, rendendo le ricerche più veloci.
- È possibile utilizzare codifiche diverse per colonna, consentendo di utilizzare una migliore compressione durante lo sviluppo.
Il framework Apache Thrift di Parquet aumenta la flessibilità, per consentire di lavorare con C ++, Java e Python.
Parquet è compatibile con la maggior parte dei framework di elaborazione dati in Hadoop. Altri formati di file di archiviazione colonnari includono ORC, RCFile e RCFile ottimizzato.
Parquet è un progetto di alto livello sponsorizzato dalla Apache Software Foundation (ASF). Il progetto è nato come uno sforzo congiunto di Twitter e Cloudera.