Definition

Apache Parquet

Apache Parquet ist ein spaltenorientiertes Speicherformat für Hadoop. Hadoop ist ein freies, Java-basiertes Programmier-Framework, das die Verarbeitung großer Datenmengen in einer verteilten Rechenumgebung unterstützt. Parquet ist für die Verarbeitung komplexer Daten in großen Mengen optimiert und enthält Methoden zur effizienten Datenkomprimierungsowie verschiedene Verschlüsselungstypen.

Typischerweise werden Daten zeilenorientiert gespeichert. Selbst in Datenbanken werden Daten konventionell auf diese Weise gespeichert und sind für die Arbeit mit jeweils einem Datensatz optimiert. Parquet verwendet einen Algorithmuszum Zerlegen und Zusammensetzen von Datensätzen, um Daten zu zerlegen und neu zusammenzusetzen, so dass die Werte in jeder Spalte physisch an zusammenhängenden Arbeitsspeicherplätzen (Memory) abgelegt werden. Daten, die in dieser serialisierten Methode spaltenweise gespeichert werden, ermöglichen eine effiziente Suche in riesigen Datensätzen. Da Hadoop für große Datenmengen ausgelegt ist, ist die spaltenweise Speicherung eine ergänzende Technologie. 

Das Speichern von Daten in einem spaltenförmigen Format bietet folgende Vorteile:

  • Effizientere Komprimierung aufgrund der Platzersparnis durch das spaltenförmige Format.
  • Die Ähnlichkeit der Daten von Spalten ermöglicht eine Datenkompression für den spezifischen Datentyp.
  • Abfragen, die nach bestimmten Spaltenwerten suchen, müssen nicht die Daten der gesamten Zeile lesen, was die Suche beschleunigt.
  • Für jede Spalte kann eine andere Kodierung verwendet werden, so dass eine bessere Komprimierung möglich ist, wenn sie entwickelt wird.

Das Apache Thrift-Framework von Parquet erhöht die Flexibilität, so dass mit C++, Java und Python gearbeitet werden kann.

Parquet ist mit der Mehrzahl der Datenverarbeitungs-Frameworks in Hadoop kompatibel. Andere Dateiformate für die spaltenweise Speicherung sind ORC, RCFile und optimiertes RCFile.

Parquet ist ein Top-Level-Projekt, das von der Apache Software Foundation (ASF) gefördert wird. Das Projekt entstand aus einer gemeinsamen Anstrengung von Twitter und Cloudera.

Diese Definition wurde zuletzt im August 2021 aktualisiert

Erfahren Sie mehr über Softwareentwicklung