Zum Inhalt springen

Delta Lake

Delta Lake ist ein offenes Tabellenformat mit ACID, Time Travel und Schema-Evolution auf Objekt-Speicher. Definition, Funktionsweise und Abgrenzung.

Delta Lake ist ein offenes Tabellenformat für Daten, die in günstigem Cloud-Speicher wie Amazon S3 liegen. Es kombiniert die vorhandenen Datendateien mit einem Transaktions-Log (einer geordneten Änderungshistorie) und macht daraus eine verlässliche Tabelle: mit ACID-Garantien (Änderungen greifen entweder ganz oder gar nicht), festen Spalten-Regeln, Zeitreisen zu früheren Ständen und punktgenauen Updates und Löschungen. Das Format wurde 2019 durch Databricks als Open Source veröffentlicht und wird seit 2022 als Apache-2.0-lizenziertes Projekt in der Linux Foundation gepflegt.

Was ist Delta Lake?

Delta Lake legt eine Tabellen-Schicht über Dateien, die in einem Objekt-Speicher (günstiger Cloud-Ablage wie Amazon S3, Azure Data Lake Storage oder Google Cloud Storage) liegen. Eine Delta-Tabelle besteht aus zwei Bausteinen: den eigentlichen Daten als Parquet-Dateien (ein spaltenweise organisiertes Datei-Format) und einem Transaktions-Log im Ordner _delta_log/. Jede Änderung an der Tabelle, also Einfügen, Aktualisieren, Löschen oder eine Schema-Anpassung, wird als ein Eintrag ins Log geschrieben, entweder komplett oder gar nicht. Anfragende Werkzeuge (Reader) setzen die Tabelle aus dieser Log-Historie zusammen und können so den aktuellen Stand oder jede frühere Version rekonstruieren.

Ausgangspunkt des 2019 veröffentlichten Formats (Paper: Armbrust et al., VLDB 2020) war die Beobachtung, dass reine Data Lakes auf Objekt-Speicher keine Transaktions-, Konsistenz- oder Schema-Garantien liefern; parallele Schreib- und Leseoperationen können inkonsistente Ergebnisse zurückgeben. Delta schließt diese Lücke durch das Transaktions-Log, ohne die Datei-Basis oder die Speicher-Ökonomie des Lakes zu ersetzen.

Zu den Kern-Eigenschaften zählen ACID-Transaktionen mit Optimistic Concurrency Control, Schema-Enforcement und Schema-Evolution, Time Travel über Versions- oder Zeitstempel-Zugriff, MERGE INTO für Upserts, Data Skipping über Spalten-Statistiken sowie Optimierungen wie OPTIMIZE, Z-Ordering, Liquid Clustering, Deletion Vectors und Predictive Optimization. Delta ist Standard-Tabellenformat der Databricks Data Intelligence Platform und in Microsoft Fabric OneLake. Native Reader und Writer existieren für Apache Spark, Trino, Presto, Apache Flink, Rust (delta-rs) und Python (deltalake).

Abgrenzung zu Apache Iceberg, Apache Hudi, Parquet und Data Lakehouse

Delta Lake wird in Praxis-Diskussionen häufig mit verwandten Konzepten vermischt, die entweder ein anderes Tabellenformat oder eine andere Ebene des Storage-Stacks bezeichnen.

BegriffAchseKernunterschied
Apache IcebergAlternatives Tabellenformat2017 von Netflix initiiertes Format mit anderer Metadaten-Struktur (Manifest-Files, Snapshot-Metadata) und REST-Catalog-Spezifikation. Über Delta UniForm sind Delta-Tabellen zusätzlich als Iceberg-Tabellen lesbar.
Apache HudiAlternatives Tabellenformat2016 von Uber initiiertes Format mit Fokus auf CDC und Streaming. Zwei Tabellen-Typen (Copy-on-Write, Merge-on-Read) und eine eigene Timeline-Struktur.
ParquetDateiformat vs. TabellenformatSpaltenorientiertes Dateiformat für die Persistenz einzelner Dateien. Delta legt darüber ein Transaktions-Log, das mehrere Parquet-Dateien zu einer transaktionalen Tabelle bündelt. Ein Parquet-Ordner ist noch keine Delta-Tabelle.
Data LakehouseArchitekturmusterMuster, in dem ein transaktionales Tabellenformat auf einem Data Lake läuft. Delta Lake ist eine Umsetzung der Lakehouse-Schicht; Iceberg und Hudi sind die Alternativen.
Delta TableFormat vs. InstanzDelta Lake ist das Projekt und die Spezifikation; eine Delta Table ist die konkrete Tabelle im Format, mit Wurzel-Pfad, Parquet-Dateien und _delta_log/.

Die häufigste Abgrenzung verläuft zwischen Delta Lake und Apache Iceberg, weil beide Formate denselben Anwendungsfall (transaktionales Tabellenformat auf Objekt-Speicher) mit unterschiedlichen Metadaten-Mechaniken adressieren. Delta arbeitet mit einem geordneten Commit-Log plus Checkpoints, Iceberg mit versionierten Snapshot-Manifesten und einer Katalog-Spezifikation. Über UniForm können Delta-Tabellen ohne Datenkopie zusätzlich als Iceberg-Tabellen gelesen werden.

Parquet, Delta und Lakehouse liegen auf drei Ebenen: Parquet ist das Dateiformat, Delta das Tabellenformat darüber, das Lakehouse die Architektur, in der beide zusammen mit einem Katalog laufen. Die drei Begriffe werden im Sprachgebrauch oft gleichbedeutend verwendet.

Beispiel: Delta Lake als Lakehouse-Schicht in einer Handelsplattform

Ein Handelsunternehmen betreibt Bronze-, Silver- und Gold-Schichten auf Amazon S3 mit Delta Lake. Change-Data-Capture-Ereignisse aus dem ERP werden von einem Structured-Streaming-Job als Delta-Tabellen in Bronze geschrieben; ein nächtlicher MERGE INTO-Job aktualisiert die Silver-Kunden-Tabelle idempotent. Bei einer Kennzahlen-Diskrepanz fragt das Analytics-Team mit VERSION AS OF 1247 denselben Datenstand ab, den der BI-Report am Vortag gesehen hat. Auf der Auftragspositions-Tabelle läuft Liquid Clustering nach order_date und customer_id, damit Data Skipping typische Abfragen beschleunigt.

Unity Catalog verwaltet Berechtigungen, Lineage und Ownership über alle Delta-Tabellen; über Delta UniForm liest ein Snowflake-Cluster dieselben Silver-Tabellen als Iceberg, ohne Datenkopie. Ohne das Delta-Format wären dieselben Parquet-Dateien ein Data Lake ohne Transaktionen: konkurrierende Schreib-Jobs könnten inkonsistente Zwischenstände produzieren, und Schema-Änderungen an Quellsystemen würden Downstream-Jobs still brechen.

Delta Lake im eigenen Unternehmen umsetzen?

Wir zeigen, wie sich das in deiner Systemlandschaft konkret abbilden lässt.

Gespräch vereinbaren