Articles

Parquet

Posted on

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

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *