Apache Parquet

Apache Parquet is een kolomgeoriënteerd opslagformaat voor Hadoop. Hadoop is een gratis, op Java gebaseerd programmeerraamwerk dat de verwerking van grote datasets in een gedistribueerde computeromgeving ondersteunt. Parquet is geoptimaliseerd om te werken met complexe gegevens in bulk en bevat methoden voor efficiënte gegevenscompressie en coderingstypen.

Typisch worden gegevens rijgeoriënteerd opgeslagen. Zelfs in databases worden gegevens conventioneel op deze manier opgeslagen en zijn ze geoptimaliseerd voor het werken met één record per keer. Parquet gebruikt een recordversnipperings- en assemblagealgoritme om gegevens op te splitsen en opnieuw samen te voegen zodat de waarden in elke kolom fysiek worden opgeslagen op aaneengesloten geheugenlocaties. Door gegevens per kolom op deze geserialiseerde methode op te slaan, kunnen enorme datasets efficiënt worden doorzocht. Aangezien Hadoop is gemaakt voor big data, is columnaire opslag een aanvullende technologie.  

Data opslaan in een columnair formaat biedt voordelen zoals:

  • Efficiëntere compressie door de ruimte die wordt bespaard door het columnaire formaat.
  • Gelijkenis van de data van kolommen maakt datacompressie mogelijk voor het specifieke type data.
  • Queries die specifieke kolomwaarden zoeken, hoeven niet de gegevens van de hele rij te lezen, waardoor zoekopdrachten sneller gaan.
  • Verschillende coderingen kunnen per kolom worden gebruikt, waardoor betere compressie kan worden gebruikt naarmate deze wordt ontwikkeld.

Parquet's Apache Thrift framework verhoogt de flexibiliteit, zodat kan worden gewerkt met C++, Java en Python.
Parquet is compatibel met de meeste dataverwerkingsframeworks in Hadoop. Andere bestandsformaten voor kolomopslag zijn ORC, RCFile en geoptimaliseerde RCFile.

Parquet is een top-level project dat wordt gesponsord door de Apache Software Foundation (ASF). Het project is ontstaan als een gezamenlijke inspanning van Twitter en Cloudera.