Die wahrscheinlich beste Alternative zur CSV-Speicherung: Parquet-Daten

Apache Parquet bietet im Vergleich zu herkömmlichen Methoden wie CSV mehrere Vorteile für das Speichern und Abrufen von Daten.

Das Parquet-Format ist für eine schnellere Datenverarbeitung komplexer Typen ausgelegt. In diesem Artikel sprechen wir darüber, wie das Parquet-Format für die ständig wachsenden Datenanforderungen von heute geeignet ist.

Bevor wir uns mit den Details des Parquet-Formats befassen, lassen Sie uns verstehen, was CSV-Daten sind und welche Herausforderungen sie für die Datenspeicherung darstellen.

Was ist CSV-Speicher?

Wir haben alle schon viel über CSV (Comma Separated Values) gehört – eine der gebräuchlichsten Methoden zum Organisieren und Formatieren von Daten. Die CSV-Datenspeicherung ist zeilenbasiert. CSV-Dateien werden mit der Erweiterung .csv gespeichert. Wir können CSV-Daten mit Excel, Google Sheets oder einem beliebigen Texteditor speichern und öffnen. Die Daten sind leicht sichtbar, sobald die Datei geöffnet ist.

Nun, das ist nicht gut – schon gar nicht für ein Datenbankformat.

Wenn das Datenvolumen wächst, wird es außerdem schwierig, es abzufragen, zu verwalten und abzurufen.

Hier ist ein Beispiel für Daten, die in einer .CSV-Datei gespeichert sind:

EmpId,First name,Last name, Division
2012011,Sam,Butcher,IT
2013031,Mike,Johnson,Human Resource
2010052,Bill,Matthew,Architect
2010079,Jose,Brian,IT
2012120,Adam,James,Solutions

Wenn wir es in Excel anzeigen, können wir eine Zeilen-Spalten-Struktur wie unten sehen:

Herausforderungen bei der CSV-Speicherung

Zeilenbasierte Speicher wie CSV eignen sich für Erstellungs-, Aktualisierungs- und Löschvorgänge.

Was ist dann mit dem Read in CRUD?

Stellen Sie sich eine Million Zeilen in der obigen .csv-Datei vor. Es würde eine angemessene Zeit in Anspruch nehmen, die Datei zu öffnen und nach den gesuchten Daten zu suchen. Nicht so cool. Die meisten Cloud-Anbieter wie AWS berechnen Unternehmen basierend auf der Menge der gescannten oder gespeicherten Daten – auch hier verbrauchen CSV-Dateien viel Speicherplatz.

  Die 9 besten Azure-Leistungsüberwachungs- und Fehlerbehebungstools

Der CSV-Speicher verfügt nicht über eine exklusive Option zum Speichern von Metadaten, was das Scannen von Daten zu einer mühsamen Aufgabe macht.

Was ist also die kostengünstige und optimale Lösung zur Durchführung aller CRUD-Operationen? Lassen Sie uns erkunden.

Was ist Parquet-Datenspeicherung?

Parkett ist ein Open-Source-Speicherformat zum Speichern von Daten. Es wird häufig in Hadoop- und Spark-Ökosystemen verwendet. Parquet-Dateien werden als .parquet-Erweiterung gespeichert.

Parquet ist ein stark strukturiertes Format. Es kann auch verwendet werden, um komplexe Rohdaten zu optimieren, die in großen Mengen in Data Lakes vorhanden sind. Dies kann die Abfragezeit erheblich verkürzen.

Durch eine Mischung aus zeilen- und spaltenbasierten (hybriden) Speicherformaten macht Parquet die Datenspeicherung effizient und den Abruf schneller. In diesem Format werden die Daten sowohl horizontal als auch vertikal partitioniert. Das Parquet-Format eliminiert auch weitgehend den Parsing-Overhead.

Das Format schränkt die Gesamtzahl der E/A-Vorgänge und letztendlich die Kosten ein.

Parquet speichert auch die Metadaten, die Informationen zu Daten wie Datenschema, Anzahl der Werte, Position der Spalten, Mindestwert, Höchstwert, Anzahl der Zeilengruppen, Art der Codierung usw. speichern. Die Metadaten werden auf verschiedenen Ebenen in der Datei gespeichert , was den Datenzugriff beschleunigt.

Beim zeilenbasierten Zugriff wie CSV nimmt der Datenabruf Zeit in Anspruch, da die Abfrage durch jede Zeile navigieren und die jeweiligen Spaltenwerte abrufen muss. Mit Parquet Storage kann auf alle benötigten Säulen gleichzeitig zugegriffen werden.

Zusammenfassend,

  • Parquet basiert auf der Säulenstruktur zur Datenspeicherung
  • Es ist ein optimiertes Datenformat, um komplexe Daten in großen Mengen in Speichersystemen zu speichern
  • Das Parquet-Format umfasst verschiedene Methoden zur Datenkomprimierung und -codierung
  • Es reduziert die Datenscan- und Abfragezeit erheblich und benötigt im Vergleich zu anderen Speicherformaten wie CSV weniger Speicherplatz
  • Minimiert die Anzahl der E/A-Vorgänge und senkt die Kosten für Speicher und Abfrageausführung
  • Enthält Metadaten, die das Auffinden von Daten erleichtern
  • Bietet Open-Source-Unterstützung
  So nehmen Sie am Naturtag-Event "Animal Crossing: New Horizons" teil

Parquet-Datenformat

Bevor wir auf ein Beispiel eingehen, lassen Sie uns genauer verstehen, wie Daten im Parquet-Format gespeichert werden:

Wir können mehrere horizontale Partitionen haben, die als Zeilengruppen in einer Datei bekannt sind. Innerhalb jeder Zeilengruppe wird eine vertikale Partitionierung angewendet. Die Spalten werden in mehrere Spaltenblöcke aufgeteilt. Die Daten werden als Seiten innerhalb der Spaltenblöcke gespeichert. Jede Seite enthält die codierten Datenwerte und Metadaten. Wie bereits erwähnt, werden die Metadaten für die gesamte Datei auch in der Fußzeile der Datei auf Zeilengruppenebene gespeichert.

Da die Daten in Spaltenblöcke aufgeteilt sind, ist das Hinzufügen neuer Daten durch Kodieren der neuen Werte in einen neuen Block und eine neue Datei ebenfalls einfach. Die Metadaten werden dann für die betroffenen Dateien und Zeilengruppen aktualisiert. Somit können wir sagen, dass Parkett ein flexibles Format ist.

Parquet unterstützt nativ die Komprimierung von Daten mithilfe von Techniken zur Seitenkomprimierung und Wörterbuchcodierung. Sehen wir uns ein einfaches Beispiel für die Wörterbuchkomprimierung an:

Beachten Sie, dass wir im obigen Beispiel die IT-Abteilung viermal sehen. Beim Speichern im Wörterbuch codiert das Format die Daten also mit einem anderen einfach zu speichernden Wert (0,1,2…) zusammen mit der Anzahl der Wiederholungen – IT, IT wird zum Speichern auf 0,2 geändert mehr Platz. Das Abfragen komprimierter Daten nimmt weniger Zeit in Anspruch.

Kopf-an-Kopf-Vergleich

Nachdem wir nun eine ungefähre Vorstellung davon haben, wie die Formate CSV und Parquet aussehen, ist es Zeit für einige Statistiken, um beide Formate zu vergleichen:

  Generative Adversarial Networks (GAN): Eine Einführung

CSV
Parkett
Zeilenbasiertes Speicherformat.
Ein Hybrid aus zeilenbasierten und spaltenbasierten Speicherformaten.
Es verbraucht viel Speicherplatz, da keine Standardkomprimierungsoption verfügbar ist. Beispielsweise belegt eine 1-TB-Datei denselben Speicherplatz, wenn sie auf Amazon S3 oder einer anderen Cloud gespeichert wird.
Komprimiert Daten beim Speichern und verbraucht dadurch weniger Speicherplatz. Eine im Parquet-Format gespeicherte 1-TB-Datei nimmt nur 130 GB Speicherplatz ein.
Die Abfragelaufzeit ist aufgrund der zeilenbasierten Suche langsam. Für jede Spalte muss jede Datenzeile abgerufen werden.
Die Abfragezeit ist aufgrund der spaltenbasierten Speicherung und des Vorhandenseins von Metadaten etwa 34-mal schneller.
Pro Abfrage müssen mehr Daten gescannt werden.
Für die Ausführung der Abfrage werden ca. 99 % weniger Daten gescannt, wodurch die Performance optimiert wird.
Die meisten Speichergeräte werden basierend auf dem Speicherplatz berechnet, sodass das CSV-Format die hohen Speicherkosten bedeutet.
Weniger Speicherkosten, da Daten in komprimiertem, verschlüsseltem Format gespeichert werden.
Das Dateischema muss entweder abgeleitet (was zu Fehlern führt) oder bereitgestellt werden (mühsam).
Das Dateischema wird in den Metadaten gespeichert.
Das Format ist für einfache Datentypen geeignet.
Parquet eignet sich auch für komplexe Typen wie verschachtelte Schemas, Arrays, Wörterbücher.

Fazit 👩‍💻

Wir haben anhand von Beispielen gesehen, dass Parquet in Bezug auf Kosten, Flexibilität und Leistung effizienter ist als CSV. Es ist ein effektiver Mechanismus zum Speichern und Abrufen von Daten, insbesondere wenn sich die ganze Welt in Richtung Cloud-Speicherung und Speicherplatzoptimierung bewegt. Alle wichtigen Plattformen wie Azure, AWS und BigQuery unterstützen das Parquet-Format.