DuckDBは、リモートデータベースへのアクセス、ストレージI/O、半構造化データ、開発者向けツールの変更をまとめた長期サポート版、バージョン2.0.0を公開した。コードネームは「Cinnamon Teal」。プロジェクトは10月21日のリリースについて、DuckDB 1.5以降の約2万件のコミットを基にした、これまでで最大の機能更新だと説明している。
このリリースでは、1.5系列で先に導入されたQuackプロトコルの役割がさらに本格化する。Quackを使うと、DuckDBは別のプロセスに埋め込まれたデータベースとしてだけでなく、クライアント・サーバー構成でも動作できる。新しい`CONNECT`文は、セッションをリモートのDuckDBサーバーに接続でき、PostgreSQLやMySQLも接続先に指定できる。こうした外部システムに対しては、テーブル全体を転送してから処理する代わりに、リモート・プッシュダウン・オプティマイザーで処理を接続元データベースに送り込めるとDuckDBは説明している。
DuckDB 2.0は、Parquet、CSV、およびデータベース独自のストレージ形式向けに、非同期の入出力も導入する。複数のリクエストを同時に進行させながらバックグラウンドで読み込みを行い、I/Oの同時実行性をクエリ処理の並列性から切り離す。これは、ネットワーク遅延によってクエリのワーカーが待機しがちなオブジェクトストレージ上のデータを扱う際に、リソースの稼働率を高めることを狙った設計だ。
半構造化情報向けには、DuckDB 1.5で初めてプレビュー公開された`VARIANT`型を完全に統合する。テキスト形式のJSONとは異なり、VARIANTは列指向の実行方式を保ちながら、構造の異なる値を格納する。DuckDBは共通する構造を検出し、圧縮や処理のために分離する。この分離は「シュレッディング」と呼ばれる。実装はParquetのインポートとエクスポートにも及び、VARIANTの値を扱うための一連の関数も備える。
コマンドラインクライアントには、ツールを通じてDuckDBを呼び出すコーディング支援エージェント向けのエージェントモードが加わった。簡潔なMarkdown形式で出力し、結果が省略された場合は明示し、エラーはJSONで報告するほか、暴走した処理を停止できる。長時間かかるクエリでは、実行前に予想コストを示す。DuckDBによると、TPC-Hを使った実験では、エージェントが読み取る必要のある出力量が59%減少した。利用者は`-agent`でこの動作を明示的に選択でき、`-no-agent`で無効にできる。
1.5では選択肢として提供されていたPEGベースのSQLパーサーが、標準になる。拡張機能から文法を追加でき、エラーではソース中の位置をより正確に示す。プロジェクトは、新しいパーサーは互換性を重視して設計したと説明しており、アプリケーションで回帰不具合が発生した場合に備え、従来のパーサーを使う設定も残されている。
DuckDB 2.0のサポートは、少なくとも2027年10月まで続く。バージョン1.4は2026年11月下旬まで引き続きサポートされ、1.5のサポートは2027年3月まで延長された。プロジェクトは、別途の審査やパッケージ化が必要なため、一部のクライアントや拡張機能の提供が本体のリリースから数日遅れる可能性があると注意を促している。この段階的な提供と、文書化されている互換性を損なう変更を踏まえると、アップグレードを検討する本番環境の利用者にとって、まず取り組むべきなのは互換性のテストだ。



