Parquet, Iceberg und Data Lakehouses verstehen
(davidgomes.com)Verstehen: Parquet, Iceberg und BroadIns Data Lakehouse
-
Methoden der Datenspeicherung (Dateien und im Arbeitsspeicher)
- Es gibt verschiedene Dateiformate für den Zugriff auf und die Speicherung von Daten
- Einige Systeme verwenden hauptsächlich geschlossene Datenformate, aber die meisten Systeme unterstützen offene Datenformate
- Zu den wichtigsten Open-Source-Dateiformaten gehören Apache Avro, Parquet, ORC, Arrow, Feather und Protobuf
- Diese Formate liefern Spezifikationen dafür, wie Daten im tatsächlichen Binärlayout angeordnet werden
- Parquet unterstützt Komprimierung gut, während sich Avro gut zum Lesen bestimmter Zeilenblöcke eignet
- Sie unterstützen Schema-Evolution und Dateiaufteilung, was für die Parallelverarbeitung essenziell ist
- Mit verschiedenen Programmiersprachen und Tools kann in diesen Formaten gearbeitet werden
-
Verwaltung großer Datenmengen – Iceberg und Delta Lake
- Es wird eine Methode benötigt, um verschiedene Tabellen zu speichern, einzelne Schemata weiterzuentwickeln, Daten effizient zu partitionieren und externen Tools das einfache Lesen des Schemas zu ermöglichen
- Hive, Iceberg und Delta Lake unterstützen alle ein Schema-Register oder Metastore
- Iceberg und Delta Lake verwenden Parquet als einzelnes Dateiformat
- Iceberg und Delta Lake sind keine Query- oder Storage-Engines, sondern offene Spezifikationen, die es Query-Engines ermöglichen, die Arbeit auszuführen
- Sie ermöglichen Funktionen wie Partitionierungs-Evolution, Schema-Evolution, Datenkomprimierung, ACID-Transaktionen, effiziente Query-Optimierung und Time Travel
-
Was sind Data Lakes und Data Lakehouses?
- Ein Data Lake ist ein Ort, an dem Unternehmen große Datenmengen in Rohformaten wie OCR-, Parquet- oder CSV-Dateien speichern
- Ein Data Lakehouse ist eine Kombination von Funktionen auf einem Data Lake, die unter anderem die Ausführung von SQL-Abfragen, das Einrichten von Batch-Jobs und die Konfiguration von Data Governance ermöglichen
- Ein Data Lakehouse kann als Version eines offenen Data Warehouse betrachtet werden
- Da Data Warehouses wie Snowflake und BigQuery offene Datenformate wie Iceberg unterstützen, verschwimmt die Grenze zwischen Data Warehouses und Data Lakehouses zunehmend
Die Meinung von GN⁺
- Iceberg und Delta Lake spielen als Metadaten-Layer für die Verwaltung großer Datensätze eine wichtige Rolle. Sie ermöglichen effizientes Datenmanagement und Query-Optimierung und sind daher für Data Scientists und Engineers nützlich.
- Data Lakehouses verbinden die Vorteile von Data Lakes und Data Warehouses und stellen damit ein neues Paradigma für Datenmanagement und Analyse vor. Das bietet die Möglichkeit, datengestützte Entscheidungen weiter zu stärken.
- Mit der wachsenden Unterstützung für Iceberg ist zu erwarten, dass Systeme für Datenmanagement und Analyse schrittweise standardisierter und interoperabler werden. Das dürfte mehr Flexibilität und Effizienz bei der Auswahl und Nutzung von Datenplattformen bringen.
2 Kommentare
Ich habe Iceberg und Delta Lake verglichen; hier ist das wirklich übersichtlich zusammengefasst.
Das entspricht fast genau meiner eigenen Einschätzung und Meinung.
Der online durchgeführte Benchmark wurde mit Spark ausgeführt, und der Head of DevRel von Tabular schrieb, dass der Benchmark zwar als Referenz dienen könne, aber keine große Bedeutung habe.
Wenn man sich für Open Source entscheiden will, scheint
icebergdie einzige Wahl zu sein.Die Zusammenfassung ist gut, aber es wäre noch besser, wenn es auch Links zu den verwendeten Referenzen gäbe.
Hacker-News-Kommentar
Apache Iceberg und Delta Lake werden oft als offene Tabellenformate bezeichnet, aber tatsächlich gibt es Unterschiede.
In der Datenbankwelt ist es ein großer Wandel, dass Delta, Iceberg und Hudi Daten in Open-Source-Formaten auf Storage wie S3 speichern.
Ich habe jahrelang mit Parquet-Dateien auf S3 gearbeitet, aber nicht genau verstanden, was Iceberg ist. Der Artikel erklärt Iceberg jedoch gut.
Die beste Methode, Apache-Arrow-DataFrames als Dateien auf der Festplatte zu speichern, ist Feather, aber man kann sie auch in das Apache-Parquet-Format umwandeln.
Ich habe schon von Data Lakes gehört, aber „Data Lakehouse“ klingt nach einem Ort, an dem wohlhabende Daten im Sommer mit Datenbooten zum Datenangeln fahren.
Ich arbeite auf GCP mit etwa 100 TB Daten, nutze BigQuery als Query Engine und einfache Hive-Partitionierung. Ich bin zufrieden damit, dass ich alle Abfragen ausführen kann und die Kosten sehr niedrig sind, aber die Latenz ist ziemlich hoch geworden (für das Unternehmen kein großes Problem).
Ich bin sehr begeistert von Iceberg, aber als ich es zuletzt untersucht habe, war nur die Spark-Bibliothek eine Implementierung, und Trinos Iceberg-Connector war stark von Hive abhängig.
Ich frage mich, warum niemand all das anhand konkreterer Beispiele erklären kann. Man sollte erklären, wie Daten gespeichert werden, wie man sie verbindet und abfragt und wie schnell die Abfragen sind (Transaktionsgeschwindigkeit versus „Analyse“-Geschwindigkeit).
In allen Benchmarks, die ich online gesehen habe, zeigt das Delta-Lake-Format eine deutlich bessere Performance als Iceberg.
Es wird eingeräumt, dass der Blogpost weder zu 100 % umfassend ist noch für die meisten Menschen der beste Einstiegspunkt sein dürfte.