Eine Apache-Parquet-Datei ist ein Open-Source-Daten-Storage-Format, das für Spaltendatenbanken bei analytischen Abfragen verwendet wird. Wenn Sie kleine Datensätze, aber Millionen von Zeilen durchsuchen müssen, ist es möglicherweise besser, ein Spaltenformat zu verwenden, um die Performance zu verbessern. Spaltendatenbanken speichern Daten, indem sie Spalten statt der zeilenbasierten Standarddatenbank gruppieren, die nach Zeilen gruppiert wird. Eine Parquet-Datei ist eines von mehreren Spalten-Storage-Formaten.
Was ist eine Parquet-Datei?
Anstatt Zeilen wie eine Excel-Tabelle oder eine relationale Standarddatenbank zu gruppieren, gruppiert eine Apache-Parquet-Datei Spalten für eine schnellere Performance zusammen. Parquet ist ein spaltenorientiertes Storage-Format und keine Datenbank selbst, aber das Parquet-Format ist bei Data Lakes üblich, insbesondere bei Hadoop. Da es sich um ein Spaltenformat handelt, ist es bei Analysedaten-Storage und Abfragen beliebt.
Die meisten Entwickler sind an zeilenbasierten Daten-Storage gewöhnt, stellen sich jedoch vor, eine Excel-Tabelle so zu drehen, dass die Spalten jetzt anstelle nummerierter Zeilen angezeigt werden. Anstatt beispielsweise eine Kundentabelle mit einer Liste von Vor- und Nachnamensspalten zu führen, in denen jeder Vor- und Nachname als Zeile gruppiert ist, speichert eine Parquet-Datei Spalten zusammen, sodass Datenbanken schneller Informationen aus einer bestimmten Spalte zurückgeben können, anstatt jede Zeile mit zahlreichen Spalten zu durchsuchen.
Vorteile von Parkettdateien
Abgesehen von der Abfrage-Performance, die auf der Art und Weise basiert, wie Parquet-Dateien Daten speichern, ist der weitere Hauptvorteil die Kosteneffizienz. Apache-Parquet-Dateien verfügen über eine hocheffiziente Komprimierung und Dekomprimierung, sodass sie nicht so viel Platz benötigen wie eine Standarddatenbankdatei. Durch den geringeren Storage-Platzbedarf könnte ein Unternehmen Tausende von Dollar an Storage-Kosten einsparen.
Spalten-Storage-Formate eignen sich am besten für Big-Data- und Analyseabfragen. Parquet-Dateien können Bilder, Videos, Objekte, Dateien und Standarddaten speichern, sodass sie in jeder Art von Analyseanwendung verwendet werden können. Da Parquet-Dateistrategien Open Source sind, eignen sie sich auch für Unternehmen, die ihre Daten-Storage- und Abfragestrategien anpassen möchten.
So funktionieren Parquet-Dateien
Parquet-Dateien enthalten spaltenbasierten Storage, aber auch Metadaten. Die Spalten sind in jeder Zeilengruppe zur Effizienz der Abfrage gruppiert, und die Metadaten helfen der Datenbank-Engine, Daten zu finden. Die Metadaten enthalten Informationen über die Spalten, Zeilengruppen, die Daten enthalten, und das Schema.
Das Schema in einer Parquet-Datei beschreibt den spaltenbasierten Storage-Ansatz. Das Schemaformat ist binär und kann in einer Hadoop-Data-Lake-Umgebung verwendet werden. Parquet-Dateien können in jedem Dateisystem gespeichert werden, sodass sie nicht auf Hadoop-Umgebungen beschränkt sind.
Ein Vorteil des Datei-Storage-Formats von Parquet ist eine Strategie namens „Predicate Pushdown“. Mit einem Pushdown-Vorhaben filtert die Datenbank-Engine Daten frühzeitig in der Verarbeitung, sodass gezieltere Daten in die Pipeline übertragen werden. Da weniger Daten auf eine Abfrage abzielen, verbessert dies die Abfrage-Performance. Weniger Datenverarbeitung senkt auch die Nutzung von Computerressourcen und senkt letztendlich auch die Kosten.
Verwendung von Parkettdateien
Parquet-Dateien sind Apache-Dateien, sodass Sie sie in Ihren eigenen Python-Skripten erstellen können, vorausgesetzt, Sie importieren mehrere Bibliotheken. Nehmen wir an, Sie haben einen Tisch in Python:
import numpy as np
import pandas as pd
import pyarrow as pa
df = pd.DataFrame({'one': [-1, 4, 1.3],
'two': ['blue', 'green', 'white'],
'three': [False, False, True]},
index=list('abc'))
table = pa.Table.from_pandas(df)
Mit dieser Tabelle können wir jetzt eine Parquet-Datei erstellen:
import pyarrow.parquet as pq
pq.write_table(table, 'mytable.parquet')
Der obige Code erstellt die Datei „mytable.parquet“ und schreibt die Tabelle in sie. Sie können jetzt aus Ihrer bevorzugten Datenbank lesen und die Daten importieren oder die Daten für Ihre eigenen Abfragen und Analysen verwenden.
Sie können diese Tabelle auch mit Python aus der Datei lesen:
pq.read_table('mytable.parquet', columns=['one', 'three'])
Mit der Funktion Write() können Sie Optionen festlegen, wenn Sie die Tabelle in eine Datei schreiben. Eine Liste der Optionen finden Sie auf der Website von Apache, aber hier ist ein Beispiel für die Einstellung der Kompatibilität der Datei mit Apache Spark:
import numpy as np
import pandas as pd
import pyarrow as pa
df = pd.DataFrame({'one': [-1, 4, 1.3],
'two': ['blue', 'green', 'white'],
'three': [False, False, True]},
flavor=’spark’)
table = pa.Table.from_pandas(df)
Fazit
Wenn Sie Parquet-Dateien für Hadoop, Apache Spark oder andere kompatible Datenbanken verwenden möchten, können Sie die Dateierstellung mit Python automatisieren oder Dateien zur Analyse in die Datenbankumgebung importieren. Parquet-Dateien verwenden Komprimierung, um den Speicherplatzbedarf zu senken, aber Sie benötigen immer noch eine übermäßige Storage-Kapazität für Big-Data-Silos. Pure Storage kann Ihnen mit unserer Deduplizierungs- und Komprimierungstechnologie bei Big-Data-Storage helfen.