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 (Tabelleneigenschaftdelta.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} oderUPDATE{:.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_amd64undlinux_arm64 - macOS Intel und Apple Silicon:
osx_amd64undosx_arm64 - Windows AMD64:
windows_amd64
Die Unterstützung der anderen DuckDB-Plattformen ist in Arbeit.