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.