Parquet is een open-source bestandsformaat dat beschikbaar is voor elk project in het Hadoop ecosysteem. Apache Parquet is ontworpen voor zowel efficiënte als performante platte kolomvormige opslagformaten van gegevens in vergelijking met rijgebaseerde bestanden zoals CSV- of TSV-bestanden.
Parquet gebruikt het recordshredding- en assemblage-algoritme dat superieur is aan het eenvoudig afvlakken van geneste naamruimten. Parquet is geoptimaliseerd om te werken met complexe gegevens in bulk en beschikt over verschillende manieren voor efficiënte gegevenscompressie en coderingstypen. Deze aanpak is vooral geschikt voor query’s die bepaalde kolommen uit een grote tabel moeten lezen. Parquet kan alleen de benodigde kolommen lezen, waardoor de IO sterk wordt geminimaliseerd.
Voordelen van het opslaan van gegevens in een kolom-formaat:
- Kolom-opslag zoals Apache Parquet is ontworpen om efficiëntie te bieden in vergelijking met rij-gebaseerde bestanden zoals CSV. Bij query’s kun je met kolom-opslag de niet-relevante gegevens heel snel overslaan. Hierdoor zijn aggregatie queries minder tijdrovend in vergelijking met rij-georiënteerde databases. Deze manier van opslaan heeft zich vertaald in besparingen op hardware en een minimale latency voor de toegang tot gegevens.
- Apache Parquet is vanaf de basis opgebouwd. Daarom is het in staat geavanceerde geneste gegevensstructuren te ondersteunen. De lay-out van Parquet-gegevensbestanden is geoptimaliseerd voor query’s die grote gegevensvolumes verwerken, in het gigabyte-bereik voor elk afzonderlijk bestand.
- Parquet is gebouwd om flexibele compressieopties en efficiënte coderingsschema’s te ondersteunen. Aangezien het gegevenstype voor elke kolom vrij gelijkaardig is, is de compressie van elke kolom rechttoe rechtaan (wat query’s nog sneller maakt). Gegevens kunnen worden gecomprimeerd door een van de verschillende beschikbare codecs te gebruiken; als gevolg hiervan kunnen verschillende gegevensbestanden verschillend worden gecomprimeerd.
- Apache Parquet werkt het beste met interactieve en serverloze technologieën zoals AWS Athena, Amazon Redshift Spectrum, Google BigQuery en Google Dataproc.
Verschil tussen Parquet en CSV
CSV is een eenvoudig en wijdverspreid formaat dat wordt gebruikt door veel tools zoals Excel, Google Sheets, en tal van anderen kunnen CSV-bestanden genereren. Hoewel CSV-bestanden het standaardformaat zijn voor dataverwerkingspijplijnen heeft het enkele nadelen:
- Amazon Athena en Spectrum brengen kosten in rekening op basis van de hoeveelheid gegevens die per query wordt gescand.
- Google en Amazon brengen kosten in rekening op basis van de hoeveelheid gegevens die op GS/S3 is opgeslagen.
- Google Dataproc kosten zijn op tijd gebaseerd.
Parquet heeft zijn gebruikers geholpen de opslagbehoefte met minstens een derde te verminderen bij grote datasets, bovendien heeft het de scan- en deserialisatietijd sterk verbeterd, en daarmee de totale kosten.
De volgende tabel vergelijkt zowel de besparingen als de snelheid die is verkregen door gegevens van CSV naar Parquet te converteren.
Dataset |
Grootte op Amazon S3 |
Runtijd van query |
Gegevens gescand |
Kosten |
Gegevens opgeslagen als CSV-bestanden |
1 TB |
236 seconden |
1.15 TB |
|
Gegevens opgeslagen in Apache Parquet Formaat |
130 GB |
6,78 seconden |
2.51 GB |
|
Besparingen |
87% minder bij gebruik van Parquet |
34x sneller |
99% minder gegevens gescand |
99.7% besparing |