Apache Parquet bietet im Vergleich zu herkömmlichen Methoden wie CSV mehrere Vorteile beim Speichern und Abrufen von Daten.
Das Parkettformat 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 gehört (Comma Sgetrennt VWerte) – 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 speichern und öffnen mit Excel, Google Sheets oder einen beliebigen Texteditor. Die Daten sind ohne weiteres sichtbar sobald die Datei geöffnet ist.
Nun, das ist nicht gut – definitiv nicht für ein Datenbankformat.
Darüber hinaus wird es mit zunehmendem Datenvolumen schwierig, Abfragen, Verwaltung und Abruf zu machen.
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 folgt sehen:
Herausforderungen bei der CSV-Speicherung
Zeilenbasierte Speicher wie CSV eignen sich für Crette, Update und Delete Operationen.
Was ist mit Rdann CRUD einlesen?
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 Platz.
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 für die Durchführung aller CRUD-Operationen? Lassen Sie uns erkunden.
Was ist Parkett-Datenspeicherung?
Parkett ist ein Open-Source-Speicherformat zum Speichern von Daten. Es ist weit verbreitet in Hadoop und Spark-Ökosysteme. Parkettdateien werden als .parquet-Erweiterung gespeichert.
Parkett 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.
Parquet macht die Datenspeicherung effizient und den Abruf schneller, da eine Mischung aus zeilen- und spaltenbasierten (hybriden) Speicherformaten besteht. In diesem Format werden die Daten sowohl horizontal als auch vertikal partitioniert. Das Parquet-Format eliminiert auch den Parsing-Overhead weitgehend.
Das Format schränkt die Gesamtzahl der E/A-Operationen und letztendlich die Kosten ein.
Parquet speichert auch die Metadaten, die Informationen zu Daten wie Datenschema, Anzahl der Werte, Position der Spalten, Mindestwert, Höchstwertanzahl der Zeilengruppen, Codierungstyp usw. speichern. Die Metadaten werden auf verschiedenen Ebenen in der Datei gespeichert , wodurch der Datenzugriff beschleunigt wird.
Beim zeilenbasierten Zugriff wie CSV dauert der Datenabruf Zeit, da die Abfrage durch jede Zeile navigieren und die jeweiligen Spaltenwerte abrufen muss. Mit der Parkettlagerung können Sie auf alle erforderlichen Säulen gleichzeitig zugreifen.
Zusammenfassend,
- Parkett basiert auf der säulenförmigen Struktur zur Datenspeicherung
- Es ist ein optimiertes Datenformat, um komplexe Daten in großen Mengen in Speichersystemen zu speichern
- Das Parkettformat umfasst verschiedene Methoden zur Datenkomprimierung und -kodierung
- Es reduziert die Datenscan- und Abfragezeit erheblich und benötigt weniger Speicherplatz im Vergleich zu anderen Speicherformaten wie CSV
- 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
Parkettdatenformat
Bevor wir auf ein Beispiel eingehen, wollen wir uns genauer ansehen, wie Daten im Parquet-Format gespeichert werden:
Wir können mehrere horizontale Partitionen, die als Zeilengruppen bekannt sind, in einer Datei haben. Innerhalb jeder Zeilengruppe wird die vertikale Partitionierung angewendet. Die Spalten sind 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 werden, ist das Hinzufügen neuer Daten durch Codieren 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 mit einem anderen einfach zu speichernden Wert (4…) zusammen mit der Anzahl der fortlaufenden Wiederholungen – IT, IT wird zum Speichern auf 0,1,2 geändert mehr Platz. Das Abfragen komprimierter Daten nimmt weniger Zeit in Anspruch.
Kopf-an-Kopf-Vergleich
Nachdem wir nun eine gute Vorstellung davon haben, wie die Formate CSV und Parkett aussehen, ist es an der Zeit, einige Statistiken zum Vergleich der beiden Formate zu erstellen:
CSV | Parkett |
Zeilenbasiertes Speicherformat. | Eine Mischung aus zeilenbasierten und spaltenbasierten Speicherformaten. |
Es verbraucht viel Speicherplatz, da keine Standardkomprimierungsoption verfügbar ist. Zum Beispiel belegt eine 1-TB-Datei den gleichen Speicherplatz, wenn sie auf gespeichert wird Amazon S3 oder jede andere Wolke. | Komprimiert Daten beim Speichern und verbraucht so weniger Speicherplatz. Eine im Parquet-Format gespeicherte 1-TB-Datei benötigt nur 130 GB Speicherplatz. |
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, somit Leistungsoptimierung. |
Die meisten Speichergeräte werden basierend auf dem Speicherplatz berechnet, daher bedeutet das CSV-Format die hohen Speicherkosten. | Geringere Speicherkosten, da die Daten in komprimiertem, codiertem Format gespeichert werden. |
Dateischema muss entweder abgeleitet werden (führt zu Fehlern) oder geliefert werden (umständlich). | 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 Schemata, Arrays, Wörterbücher. |
Fazit
Wir haben anhand von Beispielen gesehen, dass Parkett 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 . bewegt Cloud-Speicher und Raumoptimierung. Alle großen Plattformen wie Azure, AWS und BigQuery unterstützen das Parquet-Format.