Eine Delta Table ist eine Tabelle im Delta-Lake-Format: ein Ordner in einem Objekt-Speicher (Cloud-Datenablage wie Amazon S3 oder Azure Blob Storage), der zwei Dinge enthält, nämlich die Nutzdaten in Parquet-Dateien (ein spaltenweise komprimiertes Datei-Format) und ein Transaktions-Log (Änderungsprotokoll) im Unterordner _delta_log/. Über dieses Log bringt eine Delta Table klassische Datenbank-Eigenschaften auf Daten, die sonst als lose Dateien im Data Lake liegen: sichere Änderungen, feste Spalten-Struktur, kontrollierte Schema-Änderungen, Zugriff auf frühere Stände (Time Travel) und kombinierte Insert/Update-Operationen (Upserts).
Was ist eine Delta Table?
Eine Delta Table ist die kleinste eigenständig adressierbare Tabelle im Delta-Lake-Format und damit das Objekt, das Abfragen, Pipelines und Kataloge (Verzeichnis-Dienste für Tabellen) ansprechen. Physisch besteht sie aus zwei Bausteinen: den Parquet-Datendateien (spaltenweise gespeicherte Datenblöcke) im Wurzel-Ordner, optional aufgeteilt in Unter-Ordner nach Partitions-Spalten, und dem Transaktions-Log (chronologisches Änderungsprotokoll) im Ordner _delta_log/. Das Log speichert geordnete JSON-Einträge und in Abständen zusammengefasste Parquet-Checkpoints; jede Änderung an der Tabelle wie Einfügen, Aktualisieren, Löschen, MERGE (kombiniertes Insert/Update), OPTIMIZE (Datei-Reorganisation) oder Schema-Änderung wird als atomarer Eintrag (entweder ganz oder gar nicht) ins Log geschrieben. Lesende Systeme rekonstruieren aus der Log-Reihenfolge den aktuellen oder einen früheren Tabellenstand und lesen anschließend nur die Parquet-Dateien, die für diese Version aktiv sind.
Der Zustand einer Delta Table umfasst mehr als die Rohdaten. Im Log stehen Schema, Partitionsspalten, Clustering-Keys (Liquid Clustering), Deletion Vectors, Datei-Statistiken für Data Skipping und Table Properties. Zugriff läuft über SQL (CREATE TABLE … USING DELTA, SELECT … FROM tabelle VERSION AS OF 1247), die DataFrame-API von Apache Spark, Trino, Apache Flink oder über native Reader in Rust (delta-rs) und Python (deltalake). In einem Katalog (Unity Catalog, Hive Metastore oder AWS Glue) wird eine Delta Table als benanntes Tabellen-Objekt registriert, das auf den Storage-Pfad und das Schema verweist. Ohne diese Registrierung existiert die Tabelle als Pfad, aber nicht als Katalog-Objekt mit Berechtigungen und Lineage.
Der Begriff hat sich mit dem Delta-Lake-Format etabliert, das 2019 von Databricks als Open Source veröffentlicht und seit 2022 unter Apache-2.0-Lizenz in der Linux Foundation gepflegt wird. In der Databricks Data Intelligence Platform und in Microsoft Fabric OneLake ist die Delta Table das Standard-Tabellenformat.
Abgrenzung zu Delta Lake, Iceberg Table, Managed vs. External Table und Parquet-Ordner
Die häufigsten Verwechslungen betreffen die Ebene, auf der der Begriff steht: Format, Instanz oder Katalog-Rolle.
| Begriff | Ebene | Kernunterschied zur Delta Table |
|---|---|---|
| Delta Lake | Format / Projekt | Delta Lake ist die Spezifikation und das Open-Source-Projekt. Eine Delta Table ist die konkrete Tabelle in diesem Format (die Instanz zum Format). |
| Iceberg Table | Analoge Instanz in anderem Format | Konkrete Tabelle im Apache-Iceberg-Format. Anderer Metadaten-Mechanismus (Manifest-Files und Snapshot-Metadata statt geordnetem Commit-Log). Über Delta UniForm ist dieselbe Delta Table zusätzlich als Iceberg lesbar. |
| Managed vs. External Delta Table | Katalog-Rolle | Bei einer Managed Delta Table verwaltet Unity Catalog auch das Storage-Verzeichnis; ein DROP TABLE löscht Katalog-Objekt und Dateien. Bei einer External Delta Table zeigt der Katalog auf einen extern verwalteten Pfad; DROP TABLE entfernt nur die Registrierung. |
| Parquet-Ordner | Rohes Dateiformat | Ein Verzeichnis mit Parquet-Dateien ohne _delta_log/ ist keine Delta Table. Es fehlen Transaktions-Log, Schema-Enforcement, Time Travel und atomare Schreib-Operationen. |
| Delta Live Table / DLT Materialized View | Höherstufige Objekt-Typen | Streaming Tables und Materialized Views aus Databricks Declarative Pipelines werden intern als Delta Table gespeichert, bringen aber zusätzlich Refresh-Semantik und deklarative Definition mit. |
Beispiel: Silver-Delta-Table in einem Lakehouse
Ein Handelsunternehmen betreibt Bronze-, Silver- und Gold-Schichten auf Amazon S3 und registriert alle Tabellen als Delta Tables in Unity Catalog. Die Silver-Kunden-Tabelle ist eine Managed Delta Table: Katalog-Objekt analytics.silver.kunden, das Storage-Verzeichnis liegt unter dem vom Katalog verwalteten Pfad und enthält Parquet-Dateien plus _delta_log/. Ein Change-Data-Capture-Stream aus dem ERP schreibt neue Ereignisse in eine Bronze-Delta-Table; ein Batch-Job aktualisiert die Silver-Delta-Table idempotent mit MERGE INTO. Deletion Vectors markieren gelöschte Zeilen im Log, ohne dass die Parquet-Dateien sofort neu geschrieben werden müssen.
Bei einer Kennzahlen-Diskrepanz fragt das Analytics-Team SELECT * FROM analytics.silver.kunden VERSION AS OF 1247 derselben Delta Table ab und rekonstruiert den Datenstand vom Vortag. Parallel liest ein Snowflake-Cluster dieselbe Silver-Delta-Table über Delta UniForm als Iceberg Table, ohne dass die Daten kopiert werden. Auf einer Auftragspositions-Delta-Table läuft Liquid Clustering nach order_date und customer_id, damit Data Skipping typische Abfragen beschleunigt. Predictive Optimization führt OPTIMIZE und VACUUM automatisch aus.
Delta Table im eigenen Unternehmen umsetzen?
Wir zeigen, wie sich das in deiner Systemlandschaft konkret abbilden lässt.
Format und Entscheidungs-Frame, in dem Delta Tables als Instanz laufen
Data Lakehouse ÜbersichtArchitekturmuster, in dem Delta Tables die transaktionale Tabellenschicht bilden
Unity CatalogKatalog, in dem Delta Tables als Managed oder External Table registriert werden
UniFormIceberg-Kompatibilität für Delta Tables ohne Datenkopie
Apache Icebergalternatives Tabellenformat mit analogen Instanzen
Delta LakeFormat und Projekt hinter dem Begriff
ACID-TransaktionenKonsistenz-Garantien, die eine Delta Table über das Transaktions-Log bereitstellt
Apache Sparkverteilte Engine mit nativem Delta-Reader und -Writer
Deletion VectorsMerge-on-Read-Mechanik für effiziente Deletes in Delta Tables
Change Data FeedRow-Level-Änderungsstrom aus einer Delta Table für Downstream-Konsumenten
Declarative PipelinesStreaming Tables und Materialized Views, die intern als Delta Table materialisieren
Predictive Optimizationautomatische Wartung von Delta Tables im Unity Catalog