DuckDB 2.0.0 LTS 发布:异步 I/O 提速并新增 AI 智能体识别模式
DuckDB 2.0.0: Neues LTS-Release bringt Performanceschub und KI-Agent-Erkennung | heise online
DuckDB 发布 2.0.0 版本(代号 Cinnamon Teal),这是其迄今最大的功能版本,包含自 1.5 以来的近 2 万次提交,作为 LTS 版本支持至少到 2027 年 10 月。新版本为 Parquet、UTF-8 CSV 和自有存储格式引入异步 I/O,并新增命令行 Agent 模式,在识别到 Claude Code、Codex、Cursor 等编码智能体调用时自动输出紧凑 Markdown 表格、提前中止失控查询并以 JSON 报错。开发者称在 TPC-H 测试中该模式使模型需读取的输出从 123600 token 降至 50800 token,降幅 59%,但因系统提示词占输入大头,总成本与耗时变化不大。
正文
close notice
This article is also available in English.
It was translated with technical assistance and editorially reviewed before publication.
.
DuckDB liegt in der neuen Version 2.0.0 vor, die den Codenamen „Cinnamon Teal“ trägt. Gegenüber dem Vorgänger bietet das Datenbankwerkzeug einen ausgereifteren Servermodus, liest Daten jetzt asynchron und erkennt, wenn KI-Agenten es ansteuern. Ebenfalls neu sind Trigger und ein eigener SQL-Parser.
Weiterlesen nach der Anzeige
Bei DuckDB 2.0.0, das am 21. Oktober erschien, handelt es sich um das bisher größte Feature-Release, in das knapp 20.000 Commits seit DuckDB 1.5 eingeflossen sind, schreibt das DuckDB-Team in seinem Blog. Als LTS-Release (Long-term Service) erhält DuckDB 2.0.0 Support bis mindestens Oktober 2027.
Mehr Serverfunktionen
Erweitert wurde das seit DuckDB 1.5.3 bekannte Quack-Protokoll, über das sich die Datenbank in einem traditionellen Client-Server-Setup ausführen lässt. Mit Version 2.0.0 läuft das Protokoll schneller und stabiler, so die Entwickler.
Neu ist zudem die Anweisung CONNECT. Mit ihr binden Nutzer eine entfernte Datenbank mit einem einzigen Befehl ein und können direkt zu ihr wechseln. CONNECT funktioniert mit jeder Datenbank, die Remote-Ausführung unterstützt, was neben Quack auch PostgreSQL und MySQL einschließt. Für diese beiden schickt ein neuer Remote Pushdown Optimizer die Abfragen direkt an den entfernten Server, statt ganze Tabellen über das Netz zu laden. Im CLI starten die neuen Parameter -serve und -connect einen Quack-Server beziehungsweise verbinden sich direkt mit einem.
Höhere Performance durch asynchrones I/O
DuckDB 2.0.0 bringt asynchrones I/O für Parquet, unkomprimierte CSV-Dateien in UTF-8 und sein hauseigenes Speicherformat mit. Dabei skaliert die I/O-Schicht jetzt unabhängig von der Schicht für die Abfrageverarbeitung, stößt Lesevorgänge im Hintergrund an und hält mehrere Anfragen gleichzeitig offen. Das soll für deutlich mehr Parallelität beim Lesen entfernter Daten und drastisch schnellere Abfragen auf Object Storage wie s3:// sorgen. Wie asynchrones I/O in DuckDB im Detail funktioniert, beschreibt DuckLabs in einem separaten Blogpost.
Weiterlesen nach der Anzeige
Den Datentyp VARIANT für semistrukturierte Daten wie JSON gab es schon in DuckDB 1.5, jetzt ist er voll integriert. Gemeinsame Strukturen in den Daten zerlegt DuckDB nun in Spalten („Shredding“), wodurch sie sich besser komprimieren und schneller verarbeiten lassen.
KI-Agent-Erkennung
Neu ist ein Agent-Modus in der Kommandozeile. Die Datenbank wechselt automatisch in diesen Modus, sobald sie erkennt, dass Coding-Agenten wie Claude Code, Codex oder Cursor sie ansteuern. Dann gibt DuckDB kompakte Markdown-Tabellen aus, weist auf abgeschnittene Ergebnisse hin, bricht ausufernde Abfragen früh ab und meldet Fehler als JSON. Lange Abfragen kündigen vorab ihre erwarteten Kosten an. Mit den Parametern -agent und -no-agent lässt sich der Modus auch manuell ein- oder ausschalten.
Im TPC-H-Test sank die Menge der DuckDB-Ausgaben, die das KI-Modell lesen musste, durch den Agent-Modus um 59 Prozent von 123.600 auf 50.800 Token, sagen die DuckDB-Entwickler. Dafür beantwortete Claude Code die 22 Benchmark-Fragen auf einem Datensatz mit Skalierungsfaktor 100, jeweils dreimal mit und ohne Agent-Modus. Auf Gesamtkosten und Laufzeit wirkte sich das allerdings kaum aus, weil der Systemprompt des Agenten den Großteil der Eingabe ausmacht. Die eingesparten Token entsprechen nur etwa 0,5 Prozent der gesamten Eingabe.
SQL-Trigger und neuer Parser
Trigger gehören jetzt zu den SQL-Werkzeugen von DuckDB 2.0.0. Mit ihnen lassen sich unter anderem Audit-Tabellen oder schrittweise aktualisierte Materialized Views bauen. Parallel dazu löst DuckDB den bisher genutzten, von PostgreSQL abgeleiteten SQL-Parser durch einen eigenen PEG-basierten Parser ab, der bereits seit Version 1.5 optional verfügbar war.
Extensions können mit dem Parser neue SQL-Syntax hinzufügen, und Fehlermeldungen zeigen die genaue Stelle in der Abfrage. Ebenfalls integriert sind eigene Extension-Repositories, über die Organisationen selbst signierte Extensions bereitstellen können, sowie eine überarbeitete C API v2, die aber noch nicht als stabil gilt.
Umzug auf Version 2.0
Da DuckDB 2.0.0 nur wenige Breaking Changes mitbringt, sollte die Migration für die meisten Nutzerinnen und Nutzer unkompliziert verlaufen. Allerdings können ältere DuckDB-Versionen keine Datenbankdateien lesen, die mit Version 2.0 geschrieben wurden. Die DuckDB-Entwickler empfehlen, Version 2.0.0 zunächst auf einem Schattensystem zu testen und erst danach die Produktion umzustellen. Wer geschäftskritische Workloads auf DuckDB ausführt, könnte erwägen, auf das erste Patch-Release zu warten, das für den 18. November geplant ist.
Das vorige LTS-Release 1.4 wird bis 17. November 2026 unterstützt, Version 1.5 bis März 2027. Zusammengefasst sind alle Termine im Release-Kalender. Die vollständigen Release Notes zu DuckDB 2.0.0 stehen auf GitHub. Weitere kleinere Neuerungen stellt das Team in einem Folgebeitrag vor. Benannt wurde die neue Version nach der Zimtente alias Spatula cyanoptera, einer im Westen Nord- und Südamerikas verbreiteten Entenart mit rotbraunem Gefieder.
(mro)