Zum Inhalt springen

DuckDB 2.0 LTS bringt Servermodus, Trigger und VARIANT

DuckDB 2.0.0, ein Release mit Langzeit-Support vom 21. Oktober, bringt einen Servermodus, Trigger und VARIANT. Versionen vor 2.0 können seine Dateien nicht lesen.

Von Tech AI Wire Team

4 Min. Lesezeit

XLinkedIn
DuckDBs Artwork zum Release 2.0: eine fliegende Ente aus gepunkteten Linien auf gelbem Hintergrund.
Foto: DuckDB

Die Zahlen

commits since DuckDB 1.5, per the DuckDB team
~20,000
earliest end of support for DuckDB 2.0
Oct 2027
extended end of support for DuckDB 1.5
March 2027

DuckDB hat Version 2.0.0 am 21. Oktober 2026 veröffentlicht. Es ist ein Release mit Langzeit-Support (LTS), den das Projekt mindestens bis Oktober 2027 unterstützt. Es bringt einen eingebauten Servermodus, SQL-Trigger und einen neuen Parser. Außerdem enthält es eine Änderung ohne Rückweg: Datenbankdateien, die 2.0 geschrieben hat, lassen sich mit keiner früheren Version öffnen. Upgrades brauchen daher einen Plan.

DuckDB ist eine Open-Source-SQL-Datenbank für Analysen. Wie SQLite läuft sie in Ihrem Programm statt als separater Server. Anders als SQLite ist sie für große Analyseabfragen über große Tabellen und Dateien wie Parquet und CSV gebaut.

Was DuckDB 2.0 neu bringt

Die Ankündigung von DuckDB nennt 2.0 das bisher größte Feature-Release des Teams, entstanden aus fast 20.000 Commits seit Version 1.5. "DuckDB 2.0 ist vor allem ein Feature-Release", schreibt das DuckDB-Team. Der Codename des Releases lautet "Cinnamon Teal", nach der Entenart Spatula cyanoptera. Das GitHub-Release verwendet den Namen "Cyanoptera".

FunktionWas sie tut
Quack-ServermodusBetreibt DuckDB als Server, mit dem sich andere Clients verbinden
TriggerCREATE TRIGGER führt SQL automatisch aus, vor oder nach einer Änderung an einer Tabelle
Typ VARIANTSpeichert semistrukturierte Daten wie JSON und zieht ihre gemeinsame Struktur heraus, für bessere Kompression und mehr Tempo
Asynchrones I/OLiest Parquet- und CSV-Dateien, während Abfragen laufen, mit mehreren Anfragen gleichzeitig, vor allem um Cloud-Speicher wie Amazon S3 zu beschleunigen
Neuer SQL-ParserEin PEG-basierter Parser ist jetzt Standard; Erweiterungen können eigene SQL-Syntax hinzufügen, und Fehlermeldungen zeigen, wo das Problem liegt
Native ZeitzonenZeitzonen, Kalender und Collations brauchen die ICU-Bibliothek nicht mehr

Ein Trigger ist eine in der Datenbank gespeicherte Regel: Wenn sich eine Zeile ändert, führe auch dieses SQL aus. DuckDB 2.0 unterstützt BEFORE- und AFTER-Trigger auf Zeilen- oder Anweisungsebene. Einige Kombinationen werden noch nicht unterstützt, etwa ein BEFORE ... FOR EACH ROW-Trigger bei UPDATE.

Quack macht DuckDB zum Server

Bisher bediente DuckDB jeweils nur ein Programm. Mit Quack startet CALL quack_serve(...) einen Server, und ein Client verbindet sich mit ATTACH 'quack:...'. Eine neue CONNECT-Anweisung schaltet eine ganze Sitzung auf eine entfernte Datenbank um. Das Kommandozeilen-Tool erhält dazu passende Flags -serve und -connect.

Der Server lauscht standardmäßig nur auf dem lokalen Rechner. Für den Fernzugriff empfiehlt das DuckDB-Team, ihn hinter einen Reverse Proxy zu stellen, der die TLS-Verschlüsselung übernimmt. InfoWorld berichtete im August, dass Quack es auch einfacher macht, PostgreSQL- und MySQL-Datenbanken aus der Ferne abzufragen.

Breaking Changes, die Sie vor dem Upgrade prüfen sollten

Laut dem Release-Beitrag und den Release Notes auf GitHub können diese Änderungen bestehenden Code oder Builds brechen:

  • Dateien sind eine Einbahnstraße. DuckDB 2.0 liest und schreibt bestehende Datenbankdateien. "DuckDB-Versionen vor 2.0 können Datenbankdateien, die mit DuckDB 2.0 erstellt wurden, nicht lesen", warnt das Team.
  • Neuer Parser als Standard. SET enable_legacy_parser = true; holt den alten zurück.
  • Lambdas mit einfachem Pfeil sind abgeschaltet. Syntax wie x -> x + 1 ist deaktiviert. SET lambda_syntax = 'enable_single_arrow'; schaltet sie wieder ein, bis Version 2.1 sie entfernt.
  • Ganzzahlige Division durch null löst jetzt einen Fehler aus, statt NULL zurückzugeben.
  • Builds brauchen C++17 statt bisher C++11, und Release-Builds verwenden jetzt den Compiler Clang. Amalgamation-Builds gelten als veraltet.
  • Die Unterstützung für Intel-Macs läuft aus. Community-Erweiterungen werden nicht mehr für macOS auf x86_64 gebaut, und DuckDB 2.1 streicht die Unterstützung.

Die Quellen widersprechen sich in einem Detail. Die Vorschau von InfoWorld beschrieb eine stabile C-API für Erweiterungen. Der Release-Beitrag sagt, die überarbeitete C API v2 sei "noch nicht als stabil markiert", weil das Team sie zuerst im Praxiseinsatz testen will.

Supportzeiträume

VersionUnterstützt bis
DuckDB 2.0 (LTS)Mindestens Oktober 2027
DuckDB 1.5März 2027 (verlängert)
DuckDB 1.4Ende November 2026

Was das für Entwickler bedeutet

Behandeln Sie dies als geplante Migration, nicht als routinemäßiges Update.

  • Kopieren Sie Ihre Datenbankdateien vor dem ersten Öffnen. Sobald DuckDB 2.0 in eine Datei schreibt, kann ein älteres Tool oder ein Teammitglied mit 1.5 sie nicht mehr lesen. Aktualisieren Sie alles, was eine gemeinsam genutzte Datei liest, zur selben Zeit.
  • Testen Sie mit einer Kopie der Produktion. Das DuckDB-Team empfiehlt zuerst ein Schattensystem. Für geschäftskritische Arbeit rät es, auf das erste Patch-Release zu warten, das im November erscheinen soll.
  • Prüfen Sie Ihren Client. Das Kommandozeilen-Tool und der Python-Client sind jetzt bereit. Die Clients für Go, R und Java sowie einige Erweiterungen "können ein paar Tage dauern", sagt das Team.
  • Durchsuchen Sie Ihr SQL nach zwei Mustern. Suchen Sie nach Lambdas mit einfachem Pfeil und nach jeder ganzzahligen Division, die durch null teilen könnte. Beide verhalten sich jetzt anders.
  • Stellen Sie einen Quack-Server nicht direkt ins Netz. Lassen Sie ihn auf localhost, oder setzen Sie einen TLS-Reverse-Proxy davor, wie das Team rät.
  • Teams auf 1.4 sollten zuerst umsteigen. Der Support dafür endet Ende November 2026. Wechseln Sie daher auf 2.0 oder, als kleineren Schritt, auf 1.5.

Quellen

  1. Announcing DuckDB 2.0.0 - DuckDB
  2. DuckDB v2.0.0 release notes - GitHub
  3. DuckDB 2.0 coming this fall with client-server mode - InfoWorld

Ähnliche Artikel