2025-03-06

Highlights von DuckDB 1.2

The DuckDB team

Gestern haben wir das Bugfix-Release DuckDB 1.2.1 veröffentlicht. Wie üblich finden Sie die vollständige Änderungsliste in den Release Notes und die Installationsanleitung auf der Installationsseite. In diesem Beitrag heben wir ein paar kürzlich hinzugekommene DuckDB-Features und Verbesserungen im Ökosystem hervor.

Neue Clients-Seite

DuckDBs Client-APIs (oder „Treiber“) werden über zentrale Repositories verteilt, etwa CRAN für R und Maven für Java. Damit Nutzer den Rollout einer neuen DuckDB-Version im Blick behalten, haben wir die „Clients“-Seite überarbeitet: Sie zeigt jetzt die aktuelle Version jedes Clients und macht die Support-Stufen der Clients klar.

Einfachere Installation

Im Sinne von DuckDBs „Low Friction“-Prinzip haben wir die Installation des DuckDB-Kommandozeilen-Clients vereinfacht.

Installationsskript unter Linux und macOS

DuckDB lässt sich auf UNIX-artigen Systemen jetzt mit einem Installationsskript einrichten:

Terminal window
curl https://install.duckdb.org | sh

Das Skript ermittelt Betriebssystem und Architektur, holt den Tag des aktuellen Releases und lädt – falls noch nicht vorhanden – das neueste DuckDB-Binary nach ~/.duckdb/cli (der Ordner ~/.duckdb speichert bereits Erweiterungen).

Zum Ausführen braucht es keine Root- (sudo-)Rechte, und es verwendet nur curl und zcat, die weit verbreitet sind. Das Shell-Skript können Sie prüfen, indem Sie install.duckdb.org im Browser öffnen.

Signierte Binaries unter Windows

Ab v1.2.1 liefern wir digital signierte Binaries für den DuckDB-Windows-Kommandozeilen-Client aus. DuckDB lässt sich damit in Umgebungen nutzen, die signierte Binaries voraussetzen.

Weniger bekannte DuckDB-1.2-Features

Ergänzend zum Abschnitt „What’s New in 1.2.0“ im Ankündigungsbeitrag haben wir fünf Features zusammengestellt, die in v1.2.0 neu waren.

OR-/IN-Filter-Pushdown

Ab Version 1.2.0 unterstützt DuckDB OR- und IN-Ausdrücke für Filter-Pushdown. Das hilft besonders beim Abfragen entfernter Parquet-Dateien oder DuckDB-Datenbanken.

CLI-Flag -f

Der DuckDB-CLI-Client unterstützt jetzt das Flag -f, um SQL-Skriptdateien auszuführen:

Terminal window
duckdb -f script.sql

Das entspricht:

Terminal window
duckdb -c ".read script.sql"

Das Feature ist auf der DuckDB-tldr-Seite dokumentiert. Mit installiertem tldr holen Sie die Seite in der CLI über tldr duckdb.

Optionen allowed_directories / allowed_paths

Wir verbessern weiter den Betrieb von DuckDB in sicheren Umgebungen. Die Optionen allowed_directories und allowed_paths beschränken DuckDBs Zugriff auf bestimmte Verzeichnisse bzw. Dateien. Damit lässt sich der Dateisystemzugriff fein steuern. Sie können DuckDB zum Beispiel auf das Verzeichnis /tmp beschränken.

SET allowed_directories = ['/tmp'];
SET enable_external_access = false;
FROM read_csv('test.csv');

Mit dieser Einstellung verweigert DuckDB das Lesen von Dateien im aktuellen Arbeitsverzeichnis:

Terminal window
Permission Error:
Cannot access file "test.csv" - file system operations are disabled by configuration

sum(BOOLEAN)

Sie können jetzt die Summe von BOOLEAN-Ausdrücken direkt berechnen, ohne sie in einen CASE-Ausdruck zu packen:

SELECT sum(l_extendedprice > 500) FROM lineitem;

Das entspricht:

SELECT sum(CASE WHEN l_extendedprice > 500 THEN 1 END) FROM lineitem;

Excel-Erweiterung

Vor DuckDB 1.2 wurden Excel-Dateien nur von der spatial-Erweiterung unterstützt – einer schweren Erweiterung mit mehreren Abhängigkeiten. Ab 1.2 kann die excel-Erweiterung – zuvor auf ein paar Formeln beschränkt – Excel-Tabellen lesen und schreiben. Zum Beispiel:

FROM read_xlsx('test.xlsx', header = true);

Wer mit Google Sheets arbeiten möchte, schaut sich die Community Extension gsheets an.

Im Netz

Im Internet gibt es etliche Repositories und Informationen zu DuckDB. Zwei wichtige stellen wir hervor:

Awesome DuckDB

Das DuckDB-Ökosystem wächst weiter: Viele Projekte entstehen mit DuckDB und in DuckDB. Das Community-Repository awesome-duckdb, gepflegt von David Gasquez, listet sie und hat kürzlich 200 Einträge überschritten.

DuckDB-Dateisignatur

DuckDBs Dateisignatur, DUCK (hex: 44 55 43 4B), steht jetzt auf Wikipedia.

Parquet-Informationsblatt

Wir haben DuckDB auf der Seite „Implementation status“ der Parquet-Dokumentation ergänzt. Dabei haben wir DuckDBs Parquet-Unterstützung verbessert, z. B. um den logischen Typ FLOAT16.