Apache Parquet ist ein spaltenorientiertes Open-Source-Datendateiformat, das für eine effiziente Datenspeicherung und -abfrage entwickelt wurde. Es bietet effiziente Datenkomprimierungs- und Codierungsschemata mit verbesserter Leistung für die Verarbeitung komplexer Daten in großen Mengen. Apache Parquet ist als gemeinsames Austauschformat für Batch- und interaktive Workloads konzipiert. Es ähnelt anderen in Hadoop verfügbaren Dateiformaten für die Spaltenspeicherung, nämlich RCFile und ORC.
Apache Parquet wird mithilfe des „Record-shredding-and-assembly“-Algorithmus implementiert, der die komplexen Datenstrukturen berücksichtigt, die zum Speichern der Daten verwendet werden können. Parquet ist für die Massenverarbeitung komplexer Daten optimiert und bietet verschiedene Möglichkeiten zur effizienten Datenkomprimierung und -codierung. Dieser Ansatz eignet sich besonders für Abfragen, die bestimmte Spalten aus einer großen Tabelle lesen müssen. Parquet ist in der Lage, nur die benötigten Spalten zu lesen, und minimiert so die E/A erheblich.
CSV ist ein einfaches und gängiges Format, das von vielen Tools wie Excel, Google Sheets und zahlreichen anderen verwendet wird. Obwohl CSV-Dateien das Standardformat für Datenverarbeitungspipelines sind, weisen sie einige Nachteile auf:
Parquet hat seinen Benutzern dabei geholfen, den Speicherbedarf bei großen Datensätzen um mindestens ein Drittel zu reduzieren. Darüber hinaus hat es die Scan- und Deserialisierungszeit und damit die Gesamtkosten erheblich verkürzt. In der folgenden Tabelle werden die Einsparungen sowie die Beschleunigung verglichen, die durch die Konvertierung von Daten aus CSV in Parquet erzielt werden.
|
Datensatz |
Größe in Amazon S3 |
Laufzeit der Abfrage |
Gescannte Daten |
Kosten |
|
Als CSV-Dateien gespeicherte Daten |
1 TB |
236 Sekunden |
1,15 TB |
5,75 $ |
|
Im Apache Parquet-Format gespeicherte Daten |
130 GB |
6,78 Sekunden |
2,51 GB |
0,01 $ |
|
Ersparnisse |
87 % weniger bei Verwendung von Parquet |
34 Mal schneller |
99 % weniger gescannte Daten |
99,7 % Ersparnis |
Das Open-Source-Projekt Delta Lake baut auf dem Parquet-Format auf und erweitert es durch zusätzliche Funktionen wie ACID-Transaktionen auf Cloud-Objektspeicher, Zeitreisen, Schemaentwicklung und einfache DML-Befehle (CREATE/UPDATE/INSERT/DELETE/MERGE). Delta Lake implementiert viele dieser wichtigen Funktionen durch die Verwendung eines geordneten Transaktionsprotokolls, das Data-Warehousing-Funktionalität in Cloud-Objektspeicher ermöglicht. Weitere Informationen finden Sie im Databricks-Blogpost Diving into Delta Lake: Unpacking the Transaction Log.
