Articles

Parquet

Posted on

Parquet ist ein Open-Source-Dateiformat, das für jedes Projekt im Hadoop-Ökosystem verfügbar ist. Apache Parquet wurde für ein effizientes sowie performantes flaches, spaltenförmiges Speicherformat von Daten im Vergleich zu zeilenbasierten Dateien wie CSV- oder TSV-Dateien entwickelt.

Parquet verwendet den Record Shredding- und Assembly-Algorithmus, der dem einfachen Flattening von verschachtelten Namespaces überlegen ist. Parquet ist für die Verarbeitung komplexer Daten in großen Mengen optimiert und bietet verschiedene Möglichkeiten zur effizienten Datenkomprimierung und Kodierung von Typen. Dieser Ansatz eignet sich besonders für Abfragen, die bestimmte Spalten aus einer großen Tabelle lesen müssen. Parquet kann nur die benötigten Spalten lesen und minimiert dadurch den IO-Aufwand erheblich.

Vorteile der Speicherung von Daten in einem spaltenbasierten Format:

  • Spaltenbasierte Speicherung wie Apache Parquet ist darauf ausgelegt, im Vergleich zu zeilenbasierten Dateien wie CSV Effizienz zu bringen. Bei Abfragen kann man mit einem spaltenförmigen Speicher sehr schnell die nicht relevanten Daten überspringen. Infolgedessen sind Aggregationsabfragen im Vergleich zu zeilenorientierten Datenbanken weniger zeitaufwändig. Diese Art der Speicherung führt zu Einsparungen bei der Hardware und minimiert die Latenz beim Zugriff auf die Daten.
  • Apache Parquet ist von Grund auf neu aufgebaut. Daher ist es in der Lage, erweiterte verschachtelte Datenstrukturen zu unterstützen. Das Layout von Parquet-Datendateien ist für Abfragen optimiert, die große Datenmengen verarbeiten, im Gigabyte-Bereich für jede einzelne Datei.
  • Parquet ist so aufgebaut, dass es flexible Komprimierungsoptionen und effiziente Kodierungsschemata unterstützt. Da der Datentyp für jede Spalte recht ähnlich ist, ist die Komprimierung der einzelnen Spalten sehr einfach (was Abfragen noch schneller macht). Die Daten können mit einem der verschiedenen verfügbaren Codecs komprimiert werden; dadurch können verschiedene Datendateien unterschiedlich komprimiert werden.
  • Apache Parquet funktioniert am besten mit interaktiven und serverlosen Technologien wie AWS Athena, Amazon Redshift Spectrum, Google BigQuery und Google Dataproc.

Unterschied zwischen Parquet und CSV

CSV ist ein einfaches und weit verbreitetes Format, das von vielen Tools wie Excel, Google Sheets und zahlreichen anderen verwendet wird, die CSV-Dateien erzeugen können. Obwohl die CSV-Dateien das Standardformat für Datenverarbeitungspipelines sind, hat es einige Nachteile:

  • Amazon Athena und Spectrum berechnen nach der Menge der pro Abfrage gescannten Daten.
  • Google und Amazon berechnen nach der Menge der auf GS/S3 gespeicherten Daten.
  • Google Dataproc berechnet zeitbasiert.

Parquet hat seinen Anwendern geholfen, den Speicherbedarf bei großen Datenmengen um mindestens ein Drittel zu reduzieren, außerdem hat es die Scan- und Deserialisierungszeit und damit die Gesamtkosten stark verbessert.

Die folgende Tabelle vergleicht die Einsparungen sowie den Geschwindigkeitszuwachs, der durch die Konvertierung von Daten aus CSV in Parquet erzielt wurde.

Datensatz

Größe auf Amazon S3

Query Run Time

Daten gescannt

Kosten

Daten als CSV-Dateien gespeichert

1 TB

236 Sekunden

1.15 TB

Daten gespeichert im Apache Parquet Format

130 GB

6,78 Sekunden

2.51 GB

Einsparungen

87% weniger bei Verwendung von Parquet

34x schneller

99% weniger gescannte Daten

99.7% Einsparung

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.