Zum Inhalt springen

DuckLake

DuckLake 1.0 ist im April 2026 erschienen. Lesen Sie den Ankündigungs-Blogbeitrag.

Die Erweiterung ducklake ermöglicht das Anhängen an Datenbanken im DuckLake-Format. Die vollständige Dokumentation dieser Erweiterung steht auf der DuckLake-Website.

Installation und Laden

Um ducklake zu installieren, führen Sie aus:

INSTALL ducklake;

Die Erweiterung ducklake wird beim ersten Einsatz in einer ATTACH-Klausel transparent aus dem offiziellen Erweiterungs-Repository automatisch geladen. Wenn Sie sie manuell laden möchten, führen Sie aus:

LOAD ducklake;

Verwendung

ATTACH 'ducklake:metadata.ducklake' AS my_ducklake (DATA_PATH 'data_files');
USE my_ducklake;

Tabellen

In DuckDB speichert die Erweiterung ducklake die Katalogtabellen für ein DuckLake namens my_ducklake{:.language-sql .highlight} im Katalog __ducklake_metadata_⟨my_ducklake⟩{:.language-sql .highlight}.

Funktionen

DuckLake registriert mehrere Funktionen. Diese sollten mit dem Katalognamen als erstem Argument aufgerufen werden, z. B.:

FROM ducklake_snapshots('my_ducklake');
┌─────────────┬────────────────────────────┬────────────────┬──────────────────────────┐
│ snapshot_id │ snapshot_time │ schema_version │ changes │
│ int64 │ timestamp with time zone │ int64 │ map(varchar, varchar[]) │
├─────────────┼────────────────────────────┼────────────────┼──────────────────────────┤
│ 0 │ 2025-05-26 11:41:10.838+02 │ 0 │ {schemas_created=[main]} │
└─────────────┴────────────────────────────┴────────────────┴──────────────────────────┘

ducklake_snapshots

Gibt die Snapshots zurück, die im DuckLake-Katalog namens catalog gespeichert sind.

Parameter name Parameter type Named parameter Description
catalog VARCHAR no

Die Informationen werden in einer Tabelle mit dem folgenden Schema kodiert:

Column name Column type
snapshot_id BIGINT
snapshot_time TIMESTAMP WITH TIME ZONE
schema_version BIGINT
changes MAP(VARCHAR, VARCHAR[])

ducklake_table_info

Die Funktion ducklake_table_info liefert Informationen zu den Tabellen im DuckLake-Katalog namens catalog.

Parameter name Parameter type Named parameter Description
catalog VARCHAR no

Die Informationen werden in einer Tabelle mit dem folgenden Schema kodiert:

Column name Column type
table_name VARCHAR
schema_id BIGINT
table_id BIGINT
table_uuid UUID
file_count BIGINT
file_size_bytes BIGINT
delete_file_count BIGINT
delete_file_size_bytes BIGINT

ducklake_table_insertions

Die Funktion ducklake_table_insertions gibt die Zeilen zurück, die in einer bestimmten Tabelle zwischen Snapshots gegebener Versionen oder Zeitstempel eingefügt wurden. Die Funktion hat zwei Varianten, je nachdem, ob start_snapshot und end_snapshot die Typen BIGINT oder TIMESTAMP WITH TIME ZONE haben.

Parameter name Parameter type Named parameter Description
catalog VARCHAR no
schema_name VARCHAR no
table_name VARCHAR no
start_snapshot BIGINT / TIMESTAMP WITH TIME ZONE no
end_snapshot BIGINT / TIMESTAMP WITH TIME ZONE no

Das Schema der von der Funktion zurückgegebenen Tabelle entspricht dem der Tabelle table_name.

ducklake_table_deletions

Die Funktion ducklake_table_deletions gibt die Zeilen zurück, die aus einer bestimmten Tabelle zwischen Snapshots gegebener Versionen oder Zeitstempel gelöscht wurden. Die Funktion hat zwei Varianten, je nachdem, ob start_snapshot und end_snapshot die Typen BIGINT oder TIMESTAMP WITH TIME ZONE haben.

Parameter name Parameter type Named parameter Description
catalog VARCHAR no
schema_name VARCHAR no
table_name VARCHAR no
start_snapshot BIGINT / TIMESTAMP WITH TIME ZONE no
end_snapshot BIGINT / TIMESTAMP WITH TIME ZONE no

Das Schema der von der Funktion zurückgegebenen Tabelle entspricht dem der Tabelle table_name.

ducklake_table_changes

Die Funktion ducklake_table_changes gibt die Zeilen zurück, die in einer bestimmten Tabelle zwischen Snapshots gegebener Versionen oder Zeitstempel geändert wurden. Die Funktion hat zwei Varianten, je nachdem, ob start_snapshot und end_snapshot die Typen BIGINT oder TIMESTAMP WITH TIME ZONE haben.

Parameter name Parameter type Named parameter Description
catalog VARCHAR no
schema_name VARCHAR no
table_name VARCHAR no
start_snapshot BIGINT / TIMESTAMP WITH TIME ZONE no
end_snapshot BIGINT / TIMESTAMP WITH TIME ZONE no

Das Schema der von der Funktion zurückgegebenen Tabelle enthält die folgenden drei Spalten plus das Schema der Tabelle table_name.

Column name Column type Description
snapshot_id BIGINT
rowid BIGINT
change_type VARCHAR Der Änderungstyp: insert oder delete

Befehle

ducklake_cleanup_old_files

Die Funktion ducklake_cleanup_old_files räumt alte Dateien im durch catalog bezeichneten DuckLake auf. Bei Erfolg gibt sie eine Tabelle mit einer einzelnen Spalte (Success) und 0 Zeilen zurück.

Parameter name Parameter type Named parameter Description
catalog VARCHAR no
cleanup_all BOOLEAN yes
dry_run BOOLEAN yes
older_than TIMESTAMP WITH TIME ZONE yes

ducklake_expire_snapshots

Die Funktion ducklake_expire_snapshots lässt Snapshots mit den durch den Parameter versions angegebenen Versionen oder solche, die älter sind als der Parameter older_than, ablaufen. Bei Erfolg gibt sie eine Tabelle mit einer einzelnen Spalte (Success) und 0 Zeilen zurück.

Parameter name Parameter type Named parameter Description
catalog VARCHAR no
versions UBIGINT[] yes
older_than TIMESTAMP WITH TIME ZONE yes

ducklake_merge_adjacent_files

Die Funktion ducklake_merge_adjacent_files führt benachbarte Dateien im Speicher zusammen. Bei Erfolg gibt sie eine Tabelle mit einer einzelnen Spalte (Success) und 0 Zeilen zurück.

Parameter name Parameter type Named parameter Description
catalog VARCHAR no

Kompatibilitätsmatrix

Die DuckLake-Spezifikation und die DuckDB-Erweiterung ducklake erscheinen derzeit gemeinsam. Siehe die Kompatibilitätsmatrix.