Zum Inhalt springen

Unity-Catalog-Erweiterung

Die Erweiterung unity_catalog fügt Unterstützung für den Unity Catalog auf Basis des Delta-Lake-Formats und der DuckDB-Delta-Erweiterung hinzu.

Die Erweiterung delta fügt Unterstützung für das Open-Source-Speicherformat Delta Lake hinzu. Sie basiert auf dem Delta Kernel. Die Erweiterung bietet Leseunterstützung für Delta-Tabellen, lokal und remote.

Implementierungsdetails finden Sie im Ankündigungs-Blogbeitrag.

Note Beide Erweiterungen werden nur auf bestimmten Plattformen unterstützt.

Installation und Laden

Zum Installieren und Laden führen Sie aus:

INSTALL unity_catalog;
LOAD unity_catalog;

Verwendung

Wenn Sie bereits ein Unity-Catalog-Setup mit Databricks oder Unity Catalog OSS haben, konfigurieren Sie ein Secret mit Token, Endpoint und Region und binden Sie anschließend Ihren Katalog an:

CREATE SECRET (
TYPE unity_catalog,
TOKEN '⟨token⟩',
ENDPOINT '⟨endpoint⟩',
AWS_REGION '⟨region⟩'
);
ATTACH 'my_catalog' AS my_catalog (TYPE unity_catalog, DEFAULT_SCHEMA 'main');

Dabei ist ENDPOINT Ihr REST-API-Endpunkt des Unity Catalog und TOKEN ein geeignetes Credential. Für Databricks ist ENDPOINT Ihre Workspace-URL (typischerweise https://⟨instance⟩.cloud.databricks.com/) und TOKEN kann z. B. ein Personal Access Token mit dem Scope unity-catalog sein — die vollständige Übersicht finden Sie unter Access Control in Unity Catalog. Für OSS Unity Catalog siehe die Dokumentation zu OSS Unity Catalog.

Lesen

SHOW ALL TABLES;
SELECT * FROM my_catalog.my_schema.my_table LIMIT 10;

Schreiben

Standard-Inserts werden unterstützt:

INSERT INTO my_catalog.my_schema.my_table VALUES (1, 'hello');
INSERT INTO my_catalog.my_schema.my_table SELECT * FROM other_table;

Kataloggesteuerte Commits

Tabellen in Databricks Unity Catalog können kataloggesteuerte Commits (Catalog-Coordinated Commits / CCv2) verwenden. Dabei übernimmt Databricks die Commit-Koordination, statt direkt ins Delta-Log zu schreiben. DuckDB verwendet dieses Protokoll transparent, wenn die angebundene Tabelle es erfordert — die Insert-Syntax bleibt identisch:

INSERT INTO my_catalog.my_schema.my_catalog_managed_table VALUES (1, 'hello');

Note DuckDB unterstützt CREATE TABLE-DDL noch nicht. CMC-fähige Tabellen müssen daher über Spark oder die UC-CLI angelegt werden (Tabelleneigenschaft delta.feature.catalogManaged). Sobald eine Tabelle CMC-fähig ist, liest und schreibt DuckDB sie transparent.

Funktionen

Diese Erweiterung unterstützt:

  • Auflisten verfügbarer Tabellen: SHOW ALL TABLES;{:.language-sql .highlight}
  • Arbeiten mit Tabellen über Standard-SQL: SELECT * FROM ⟨catalog⟩.⟨schema⟩.⟨table⟩;{:.language-sql .highlight}
  • Time Travel: SELECT * FROM ... AT (VERSION => ...);{:.language-sql .highlight}
  • Inserts: INSERT INTO ... VALUES (...);{:.language-sql .highlight}
  • Checkpointing einzelner Tabellen: CALL unity_catalog_checkpoint_table('my_catalog.my_schema.my_table');{:.language-sql .highlight}

Derzeit nicht unterstützt:

  • DELETE{:.language-sql .highlight} oder UPDATE{:.language-sql .highlight}
  • Erstellen oder Ändern von Tabellen, Views oder Schemas

Unterstützte DuckDB-Versionen und Plattformen

Die Erweiterung unity_catalog (und delta) unterstützt derzeit die folgenden Plattformen:

  • Linux AMD64 (x86_64 und ARM64): linux_amd64 und linux_arm64
  • macOS Intel und Apple Silicon: osx_amd64 und osx_arm64
  • Windows AMD64: windows_amd64

Die Unterstützung der anderen DuckDB-Plattformen ist in Arbeit.