
DuckDBの開発チームは2026年10月21日、分析向けデータベースの新バージョン「DuckDB 2.0.0」を公開しました。長期サポート(LTS)版で、クライアント・サーバー接続の改善や非同期I/O、データ型とCLIの機能拡張を含みます。
Quackでセッション全体をリモートへ接続
DuckDBは従来、アプリケーションと同じプロセス内で動く組み込み型データベースとして開発されてきました。バージョン1.5.3で導入されたQuackは、DuckDBのプロセス同士を接続するプロトコルです。2.0.0では、Quackを実装する拡張機能の性能と安定性を改善しました。
新しいCONNECT文を使うと、接続先を設定したうえで、セッションのクエリ実行先をリモートデータベースへ切り替えられます。Quack経由のDuckDBに加え、PostgreSQLやMySQLも接続先にできます。これらのデータベースでは、テーブルを手元へ転送してから処理する代わりに、クエリを接続先で実行して結果を受け取ります。
QuackはHTTPまたはHTTPSで通信し、クライアントからの要求とサーバーからの応答で処理します。初回接続の後は、クエリごとに1往復で処理でき、大きな結果は複数回の取得要求に分けて受け取れます。サーバーは標準ではlocalhostだけで待ち受け、外部から接続する場合はTLSを終端するリバースプロキシを介する構成が案内されています。
非同期I/OとVARIANTの処理
2.0.0は、Parquet、CSV、DuckDB独自形式のファイルを読み込む非同期I/Oに対応しました。読み込み要求をバックグラウンドで進め、複数の要求を同時に処理することで、データの取得とクエリ処理を並行させます。S3などのオブジェクトストレージから読む場合も、この仕組みを利用できます。
従来の同期I/Oでは、読み込みを要求した処理スレッドがデータ到着を待つため、ネットワーク帯域を十分に使えない場合がありました。新しい方式ではI/Oとクエリ処理を別々に並列化し、取得済みデータの処理中に次のデータを読み込めます。
VARIANT型は、同じ列に行ごとに異なる型や構造の値を格納できるデータ型です。JSONのようなテキストではなく、型情報を持つバイナリデータとして保存されます。2.0.0では、共通する構造を見つけて型がそろったフィールドを列に分ける「shredding」に対応し、DuckDB形式での圧縮や読み取り、Parquetとの読み書きに適用しました。
CLIとSQLの拡張
CLIには、コーディングエージェントが実行結果を読み取りやすくするエージェントモードが加わりました。結果を簡潔なMarkdown表で表示し、一部を省略した場合はそのことを明示します。エラーはJSON形式で返されます。
開発チームのTPC-Hベンチマーク実験では、Claude Codeが読み取るDuckDBの出力トークン数が、エージェントモードの利用時に59%減りました。一方、システムプロンプトなどを含む入力全体に対する削減は約0.5%で、総費用や実行時間の削減にはつながらなかったとしています。
SQLパーサーはPostgreSQL由来の実装から、拡張機能が文法を追加できるPEGベースの独自実装へ切り替わり、2.0.0で標準になりました。構文エラーの位置も、以前より正確に示されます。また、データの挿入・更新・削除に応じてSQLを実行するトリガーが追加されましたが、行単位のUPDATEトリガーなど未対応の組み合わせもあります。
拡張機能とDuckLake
拡張機能向けには、ファイルシステムやテーブル関数などを扱えるC API v2が導入されました。インターフェースはまだ確定しておらず、今後のリリースで変更される可能性があります。組織が署名した拡張機能を独自リポジトリから配布する仕組みも加わりましたが、利用前に設定でリポジトリ登録を許可する必要があり、SQL構文も変更される可能性があります。
データレイクのメタデータをデータベースで管理するDuckLakeでは、バージョン1.1の仕様とDuckDB向け参照実装が公開されました。新しい拡張機能は1.0のカタログも読み書きでき、カタログを移行せずに操作の高速化などを利用できます。階層化したスキーマなど1.1の新仕様に依存する機能には、カタログの移行が必要です。
たとえば、複数のプロセスからテレメトリーを同じデータベースへ書き込みながら、ダッシュボード用にテーブルを問い合わせる用途が紹介されています。DuckDBは同一プロセス内でも引き続き利用でき、複数プロセスからネイティブ形式へ書き込む場合はQuackを使います。
保存形式とサポート期間
2.0.0で新規作成するデータベースファイルは、標準で新しい保存形式を使うため、2.0より前のバージョンでは読み込めません。以前のバージョンで作成したファイルは2.0.0でも読み書きでき、書き込み後もそのファイルの形式は維持されます。旧バージョンでも読めるファイルを作る場合は、保存形式のバージョンを明示できます。
SQLの変更点には、ラムダ式の旧構文x -> x + 1が標準で無効になり、lambda x: x + 1への移行が必要になることが含まれます。旧構文を有効に戻す設定もありますが、この設定と旧構文は2.1で削除される予定です。また、整数除算や剰余演算で除数がゼロの場合、NULLではなくエラーを返すようになりました。
DuckDB 2.0.0のサポート期間は少なくとも2027年10月までです。1.5のサポートは2027年3月まで延長され、1.4 LTSは2026年11月17日に終了します。Intel Macでは2.0.0で本体とコア拡張のサポートが続く一方、コミュニティ拡張のビルド提供は終了し、2.1でプラットフォーム自体のサポートを終える予定です。











