Apache Parquet Format

Kennt sich hier jemand mit dem Apache Parquet Format aus? Bisher dachte ich immer, es wäre nur ein besonders geschickt aufgebautes Format für Tabellen. Aber nach etwas genauerer Beschäftigung mit dem Thema scheint es möglich zu sein,

  • in einer Zelle eine Liste von Werten zu speichern
  • in einer Zelle eine komplett neue Struktur zu speichern

Demnach wäre eine Parquet-Datei einer JSON-Datei ähnlicher als einer CSV-Datei.

Parquet wird dann interessant, wenn die Menge an Daten, die man verarbeiten/speichern muss, sehr groß ist. Im Gegensatz zu CSV (zeilenbasiert), ist Parquet ein spaltenbasiertes Format. Dadurch erlaubt es u.a. sehr effiziente Komprimierung, was sich beim Lesen/Analysieren sehr großer Datensätze wegen geringerem I/O positiv bemerkbar macht.
Und ja, Parquet hat Listen und struct Typen, mit der sich beliebig komplexe Werte speichern lassen, ähnlich einem json Objekt. Jedoch würde ich Json nicht mit CSV/parquet vergleichen. Ersteres wird eher als Serialisierung im Datenaustausch (APIs) genutzt. Letztere sind Formate zum Speichern von Daten.
Ich bin ein großer Fan von DuckDB, wenn’s um Datenanalyse geht.

Gruß,
Moritz