Apache Parquet ist ein Open-Source-Dateiformat, das Daten im Spaltenformat (im Gegensatz zum Zeilenformat) speichert. Als spaltenbasiertes Datenspeicherformat bietet es gegenüber zeilenbasierten Formaten mehrere Vorteile für analytische Workloads. Ihre Wahl des Datenformats kann erhebliche Auswirkungen auf die Abfrageleistung und die Kosten haben. Daher ist es wichtig, die Unterschiede zwischen Apache Parquet und anderen Dateiformaten zu verstehen.
Vorteile von Apache Parquet
Einfach ausgedrückt sind zeilenbasierte Formate wie CSV und JSON (meistens) für Menschen lesbar, während spaltenbasierte Formate für Computer optimiert sind. Als spaltenbasiertes Dateiformat kann Apache Parquet von Computern viel effizienter und kostengünstiger gelesen werden als andere Formate, was es zu einem idealen Dateiformat für Big Data, Analysen und Data Lake- Speicher macht. Einige der Hauptvorteile von Parquet sind seine hohe Leistung, effiziente Komprimierung und seine Stellung als Industriestandard.
Hochleistung
In Apache Parquet werden die Werte jeder Spalte zusammen auf der Festplatte gespeichert. Da analytische Abfragen für einen Vorgang oft nur eine Teilmenge von Spalten benötigen, verringert sich dadurch die zu lesende Datenmenge.
Parquet-Dateien enthalten auch Statistiken zu den in der Datei gespeicherten Daten, z. B. Mindest- und Höchstwerte für die Daten der Spalte in der Datei und wie viele Zeilen sich in diesem Segment befinden. Auf diese Weise können Engines ganze Segmente oder ganze Dateien überspringen, je nachdem, nach welchem Teil des Datensatzes der Job sucht.
Diese beiden Funktionen führen zu erheblichen Leistungsverbesserungen und niedrigeren Gesamtkosten, da weniger Daten gelesen werden müssen.
Effiziente Komprimierung
Apache Parquet unterstützt hocheffiziente Komprimierung. Viele Komprimierungscodecs sind effektiver, wenn sie ähnliche Daten komprimieren. Das spaltenorientierte Format von Parquet bedeutet, dass Spalten mit ähnlichen Daten gemeinsam komprimiert werden können, was zu einer höheren Effizienz führt.
Komprimierte Daten lassen sich kostengünstiger speichern als Rohdaten. Daher können durch die Verwendung von Parquet die Kosten für die Speicherung großer Datensätze gesenkt werden. Komprimierte Daten lassen sich auch leistungsstärker lesen als unkomprimierte Daten, wenn E/A den Engpass darstellt, was bei analytischen Workloads häufig der Fall sein kann. Daher können komprimierte Daten in Parquet-Dateien auch die Leistung verbessern.
Industriestandard
Apache Parquet ist das spaltenorientierte Dateiformat nach Industriestandard. Parquet-Dateien können von nahezu allen verfügbaren Engines und Tools gelesen werden. Dies bietet Ihnen Interoperabilität für die Verwendung mehrerer Tools heute und die Gewissheit, dass Sie auch morgen neue Engines und Tools nutzen können, da diese höchstwahrscheinlich Parquet unterstützen.
Nachteile von Apache Parquet
Obwohl Apache Parquet das Industriestandard-Dateiformat für analytische Workloads ist, gibt es einige Nachteile, die Sie beachten sollten. Unterschiedliche Workloads und Anforderungen können in bestimmten Situationen zu einem anderen Format führen.
Binärbasierte Dateien können von Menschen nicht gelesen werden
Parquet ist ein binärbasiertes (und nicht textbasiertes) Dateiformat, das für Computer optimiert ist. Parquet-Dateien sind daher nicht direkt für Menschen lesbar. Sie können eine Parquet-Datei nicht wie eine CSV-Datei in einem Texteditor öffnen und sich ihren Inhalt ansehen. Es gibt Dienstprogramme, die die binäre Darstellung in eine textbasierte umwandeln, z. B. parquet-tools , aber das ist ein zusätzlicher Schritt.
Langsamere Schreibzeiten
Das Schreiben von Parquet-Dateien kann langsamer sein als das Schreiben in zeilenbasierten Dateiformaten, hauptsächlich weil sie Metadaten über den Dateiinhalt enthalten. Für Analysezwecke werden diese langsameren Schreibzeiten durch schnelle Lesezeiten mehr als ausgeglichen. In Situationen, in denen Datenaktualität und Ereignislatenz am wichtigsten sind (z. B. im Bereich von 10 Millisekunden), kann es sich jedoch lohnen, ein zeilenbasiertes Format ohne Statistiken wie Avro oder CSV zu verwenden.
Apache Parquet im Vergleich zu CSV
Das weltweit am häufigsten verwendete Dateiformat ist CSV (Comma-Separated Values). Es wird von bekannten Anwendungen wie Microsoft Excel oder Google Sheets verwendet. CSV-Dateien lassen sich zwar problemlos für die menschliche Überprüfung öffnen und einige Datenanalysten können problemlos mit großen CSV-Dateien arbeiten, aber die Verwendung von Apache Parquet bietet gegenüber CSV viele Vorteile.
Vorteile von Parquet gegenüber CSV
Analyse
Parquet eignet sich besser für OLAP-Workloads (Analytical Processing) als CSV. CSV eignet sich gut für den Datenaustausch, da es textbasiert ist und ein sehr einfacher Standard ist, den es schon seit sehr langer Zeit gibt. Die Spaltenstruktur und Statistiken von Parquet ermöglichen es jedoch, Abfragen auf die relevantesten Daten für analytische Abfragen zu konzentrieren, indem eine Teilmenge der zu lesenden Spalten und Zeilen ausgewählt wird. Im Gegensatz dazu erfordert ein zeilenbasiertes Format wie CSV, dass Sie die gesamte Datei lesen, und wenn eine Tabelle aus CSV-Dateien besteht, die gesamte Tabelle/Partition.
Wo Leistung zählt
Da Abfragen nur für eine Teilmenge von Spalten und nicht für den gesamten Datensatz durchgeführt werden, können ganze Dateien übersprungen werden, wenn die Abfrage dies nicht erfordert. Parquet bietet eine viel bessere Komprimierung und die Antworten sind mit Parquets viel schneller als mit CSV.
Kostengünstiger
Parquets kann im Vergleich zu CSV zu erheblichen Kosteneinsparungen sowohl bei I/O als auch bei der Speicherung führen. So konnte beispielsweise das Data-as-a-Service-Unternehmen Veraset nach der Umstellung von CSV auf Parquet die Zeit für die Ausführung seiner Datenpipeline um die Hälfte reduzieren und die erforderliche Infrastruktur reduzieren, was zu jährlichen Einsparungen von einer halben Million Dollar führte deepfake.
Apache Parquets im Vergleich zu Apache Avro
Apache Avro ist wie Parquets ebenfalls ein binäres Dateiformat. Allerdings ist Avro ein zeilenbasiertes Dateiformat, ähnlich wie CSV, und wurde zur Minimierung der Schreiblatenz entwickelt. Avro-Dateien haben weitaus weniger Zeilen pro Datei als Parquets, manchmal sogar nur eine Zeile pro Datei. Der häufigste Anwendungsfall für Avro sind Streaming-Daten.
Parquets bietet gegenüber Avro und CSV dieselben Vorteile. Es eignet sich besser für Analysen, bietet eine bessere Leistung und ist kostengünstiger.
Vorteile von Avro gegenüber CSV
Apache Avro-Dateien enthalten das Schema der Datensätze, die in die Datei eingebettet sind. Dies ist insbesondere bei Streaming-Analysen nützlich, beispielsweise wenn sich das Schema der Anwendung, die die Daten erzeugt, im Laufe der Zeit ändern kann.
Avro ist auch ein Binärprotokoll und bietet eine bessere Leseleistung als CSV.
Vorteile von CSV gegenüber Avro
Der Hauptvorteil von CSV gegenüber Avro liegt darin, dass es sich um ein textbasiertes Dateiformat handelt. Dadurch ist es für Menschen besser lesbar, was den Austausch kleinerer Dateien mit Personen, die mit den Daten nicht vertraut sind, wie z. B. anderen Geschäftseinheiten oder externen Organisationen, erleichtern kann.
Bereit, tiefer einzusteigen? Lesen Sie weitere technische Artikel zu Apache Parquets.