インプロセス分析用データベースであるDuckDBは、コードネーム「Cinnamon Teal」としてバージョン2.0.0 LTSをリリースしました。このリリースは、安定性に焦点を当てた1.0シリーズから、機能重視のイテレーションへの重要な転換点となります。主要なアーキテクチャの更新には、第一級VARIANT型の統合が含まれており、これによりデータベースはJSONのような半構造化データを列指向のパフォーマンスで保存および実行できるようになります。標準的なJSON形式とは異なり、VARIANT型はネイティブ型として処理されるため、DuckDBは一般的な構造を検出し、それらを圧縮された高性能な列へと「シュレッド(細分化)」することが可能です。

JSON文字列を型付き列に変換する図。
VARIANT型が半構造化JSONデータを高性能な列にどのようにシュレッドするかを示す視覚的表現。duckdb.org

この図は、2.0.0リリースで導入された第一級VARIANT型のメカニズムを説明しています。

2.0.0における最も影響力のあるパフォーマンス向上の一つは、ParquetおよびCSVファイルの読み取りのための非同期I/Oの導入です。I/Oレイヤーをクエリ処理レイヤーから分離することで、DuckDBは複数のバックグラウンド読み取りを同時に発行できるようになります。このアーキテクチャは、ネットワーク遅延がクエリ実行のボトルネックとなり得るAmazon S3などのリモートオブジェクトストレージからデータをクエリする際のスループットを最大化するために特別に設計されています。チームは、この変更によってネットワークの利用効率が大幅に向上し、リモートデータの取得における総実行時間が短縮されることを示すベンチマークを提供しました。

同期I/Oと非同期I/O操作のネットワークスループットを比較するチャート。
DuckDBの新しい非同期I/Oアーキテクチャによって達成されたネットワークスループットの向上比較。duckdb.org

このチャートは、I/Oレイヤーをクエリ処理から分離することで、リモートオブジェクトストレージのスループットをどのように最大化するかを説明しています。

このリリースでは、Claude CodeやCursorのようなAIコーディングエージェント向けに特別に調整されたDuckDB CLIの「エージェントモード」も導入されています。CLIがエージェントによって操作されていることを検出すると、コンパクトなMarkdownテーブルを出力し、切り捨てられた結果を明確に報告し、エラーをJSON形式で提供するモードに自動的に切り替わります。これにより、モデルが解析する必要のあるデータ量が(TPC-Hの実験では最大59%削減)減少し、エージェントは実行前に予想されるクエリコストを確認できるようになります。さらに、今回のアップデートではレガシーなPostgreSQL派生パーサーを、モダンで拡張可能なPEGベースのパーサーに置き換えており、既存のルールとの競合のリスクを負うことなく新しいSQL構文の追加を簡素化しています。

DuckDBは引き続きインプロセスデータベースですが、バージョン2.0.0ではQuackプロトコルを洗練させ、クライアントサーバーアーキテクチャを可能にしています。これにより、ユーザーは新しいCONNECT文を使用してリモートデータベースをアタッチし、切り替えることができます。このプロトコルはPostgreSQLやMySQLなどの他のデータベースと動作するように設計されており、テーブル全体をネットワーク経由でプルするのではなく、クエリを直接リモートサーバーに送信するリモートプッシュダウンオプティマイザを利用します。2.0.0リリースは長期サポート(LTS)バージョンであり、チームは1.5シリーズから移行するユーザーのために移行期間を提供しています。