Zum Inhalt springen

UniForm (Delta Lake Universal Format)

UniForm ist ein Delta-Lake-Feature ab Version 3.0, das Delta-Tabellen zusätzlich als Iceberg-Tabellen lesbar macht, ohne Datenkopie oder ETL-Job.

UniForm (kurz für „Universal Format") ist eine 2023 mit Delta Lake 3.0 eingeführte Zusatzfunktion, die eine Delta-Tabelle (Datenablage im Delta-Format) gleichzeitig für Werkzeuge lesbar macht, die eigentlich das konkurrierende Format Apache Iceberg erwarten. Die eigentlichen Daten liegen dabei nur einmal auf dem Speicher; UniForm ergänzt lediglich eine zweite Beschreibungsschicht (die sogenannten Metadaten) neben der Delta-Beschreibung, sodass beide Formate auf dieselben Dateien zeigen. Optional funktioniert das auch für ein drittes Format, Apache Hudi. UniForm ist also kein neues Speicherformat, sondern eine Übersetzungs-Ebene zwischen bestehenden Tabellenformaten.

Was ist UniForm?

UniForm ist eine Kompatibilitäts-Schicht innerhalb von Delta Lake. Sie sorgt dafür, dass eine im Delta-Format geschriebene Tabelle zusätzlich als Iceberg-Tabelle gelesen werden kann, ohne dass die Daten kopiert oder umgewandelt werden müssen. Delta Lake und Apache Iceberg sind zwei konkurrierende, offene Tabellenformate im Data-Lakehouse-Umfeld; Werkzeuge wie Databricks nutzen bevorzugt Delta, andere wie Snowflake, Trino oder Amazon Athena bevorzugen Iceberg. UniForm überbrückt diese Trennung. Die Funktion wurde im Sommer 2023 mit Delta Lake 3.0 als Vorschau angekündigt, im Frühjahr 2024 mit Delta Lake 3.2 um eine erweiterte Iceberg-Kompatibilität ergänzt und ist auf dem Databricks-Stack ab Runtime-Version 13.3 LTS produktiv nutzbar. Die Iceberg-Variante ist der Regelfall; die parallel spezifizierte Hudi-Kompatibilität wird deutlich seltener eingesetzt.

Physisch bleibt die Tabelle eine Delta-Tabelle: Parquet-Dateien plus Transaktions-Log im Ordner _delta_log/. Wird UniForm auf einer Tabelle aktiviert, erzeugt Delta Lake bei Schreib- und Optimierungs-Operationen zusätzlich die vollständige Iceberg-Metadaten-Hierarchie (metadata.json, Manifest-Liste als snap-*.avro und Manifest-Files) neben dem Delta-Log. Die Parquet-Daten selbst werden nicht dupliziert; sie liegen genau einmal auf dem Objekt-Speicher und werden von beiden Metadaten-Sichten referenziert.

Aktiviert wird das Feature über die Tabellen-Property delta.universalFormat.enabledFormats = 'iceberg', typischerweise per ALTER TABLE oder direkt in der CREATE TABLE-Anweisung. Voraussetzungen sind aktives Column Mapping (Modus name oder id) sowie ein Iceberg-kompatibler Feature-Stand der Tabelle. Delta bleibt die schreibende Autorität; Iceberg-Reader wie Trino, Snowflake, Amazon Athena oder BigQuery über den Iceberg-REST-Catalog von Unity Catalog sehen die Tabelle als Iceberg-Tabelle und lesen daraus, schreiben aber nicht zurück.

Der Zweck des Features ist Interoperabilität ohne Duplikate: Statt eine Delta-Tabelle per ETL-Job oder CREATE TABLE AS SELECT in eine parallele Iceberg-Tabelle zu spiegeln, liefert UniForm die Iceberg-Sicht direkt aus derselben Datei-Basis. Zwei-Kopien-Architekturen, die früher für Multi-Engine-Zugriff nötig waren, entfallen; Storage-Kosten und Ingestions-Synchronisation reduzieren sich entsprechend.

Abgrenzung zu Delta Lake, Apache Iceberg, Delta Sharing und Katalog-Kategorien

UniForm wird häufig mit verwandten Konzepten verwechselt, die entweder auf einer anderen Ebene des Storage-Stacks liegen oder eine andere Frage beantworten.

BegriffAchseKernunterschied
Delta LakeBasis-TabellenformatDelta Lake ist das Tabellenformat aus Parquet-Dateien plus Transaktions-Log. UniForm ist ein optionales Feature *innerhalb* von Delta Lake ab Version 3.0 und bringt kein eigenes Storage-Format mit.
Apache IcebergParalleles TabellenformatIceberg ist ein eigenständiges Tabellenformat mit anderer Metadaten-Struktur (Manifest-Baum, REST-Catalog-Spezifikation). UniForm ersetzt Iceberg nicht; es übersetzt Delta-Metadaten in eine Iceberg-lesbare Form.
Delta SharingSharing-ProtokollDelta Sharing ist ein offenes Protokoll für organisations- und katalog-übergreifenden Zugriff auf Delta- oder Iceberg-Tabellen. UniForm ist eine Format-Kompatibilitäts-Ebene innerhalb einer Tabelle; Delta Sharing regelt den Zugriff auf Tabellen zwischen Kontrahenten.
Managed / External TablesKatalog-KategorienManaged und External Tables beschreiben im Unity Catalog Eigentum und Speicher-Ort der Tabelle. UniForm ist orthogonal dazu und lässt sich für beide Kategorien aktivieren.
Iceberg-Konverter / CTAS-KopieDuplizierender AnsatzKlassisch entstehen bei Multi-Engine-Zugriff zwei parallele Tabellen (Delta plus Iceberg-Kopie), gepflegt über ETL-Jobs. UniForm vermeidet die Zweit-Kopie über die Metadaten-Ebene.

Die häufigste Abgrenzung verläuft zwischen UniForm und Apache Iceberg selbst. Iceberg ist das Ziel-Format, das über UniForm sichtbar wird; UniForm ist der Übersetzungs-Mechanismus dorthin. Für Organisationen, die primär Iceberg schreiben und Delta nur lesen wollen, existiert der symmetrische Weg über Unity Catalog Managed Iceberg: In diesem Fall ist die Tabelle nativ Iceberg, und Delta-Clients lesen darüber. UniForm adressiert die umgekehrte Richtung: Delta als schreibendes Format, Iceberg-Reader als Konsumenten.

UniForm und Delta Sharing arbeiten auf unterschiedlichen Ebenen und ergänzen sich: UniForm regelt das Format-Interface einer Tabelle, Delta Sharing das Verteilungs-Interface zwischen Organisationen. Eine mit UniForm ausgestattete Tabelle kann zusätzlich über Delta Sharing angeboten werden.

Beispiel: UniForm für Multi-Engine-Zugriff in einem Konzern

Ein Konzern betreibt seine Silver- und Gold-Schichten als Delta-Tabellen auf Amazon S3 unter Unity Catalog. Das Data-Engineering-Team schreibt aus Databricks-Jobs via Apache Spark; ein zweites Analytics-Team steht auf Snowflake und liest über den Iceberg-REST-Catalog von Unity Catalog. Ohne UniForm blieben zwei Optionen: entweder ein nächtlicher CREATE TABLE AS SELECT in eine parallele Iceberg-Tabelle mit den bekannten Kosten (zweite Datei-Basis, ETL-Wartung, Zeit-Versatz), oder das Snowflake-Team greift auf eine ältere Datenkopie zu.

Mit ALTER TABLE silver.customer_orders SET TBLPROPERTIES ('delta.universalFormat.enabledFormats' = 'iceberg') erzeugt Delta Lake bei jedem Commit zusätzlich die Iceberg-Metadaten. Die Snowflake-Warehouses lesen dieselben Parquet-Dateien als Iceberg-Tabelle über den Unity-Catalog-REST-Endpoint. Es gibt genau eine Datei-Basis, genau eine Owner-Verantwortung im Delta-Katalog, und die Schema-Änderungen aus dem Delta-Schreibpfad sind sofort in der Iceberg-Sicht sichtbar. Ein zweiter Katalog-Eintrag oder ein ETL-Job ist nicht nötig.

UniForm (Delta Lake Universal Format) im eigenen Unternehmen umsetzen?

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

Gespräch vereinbaren