DuckDB v2.0 のプレビュー:サーバーモード、トリガー、非同期I/Oなどの新機能
A Preview of DuckDB v2.0
DuckDB v2.0(コードネーム「Cyanoptera」)がこの秋にリリース予定です。v2.0では、SQLパーサー、デフォルトストレージフォーマット、C APIの刷新に加え、いくつかの破壊的変更が含まれます。主な新機能として、DuckDBをサーバーとして利用できるクライアント/サーバーモード、トリガー機能、JSONを高速化したVARIANT型、非同期I/O、新しいSQLパーサー、新しいストレージフォーマットなどが挙げられます。特にクライアント/サーバーモードでは、DuckDBネイティブプロトコル「Quack」により、他のDuckDBプロセスにネットワーク経由で接続し、クエリをルーティングできるようになります。また、リモートプッシュダウンオプティマイザーにより、PostgreSQLやMySQLへのSQL送信も可能になります。VARIANT型は、スキーマ宣言なしで多様な構造のデータを格納でき、JSON on steroidsとも言える機能です。トリガー機能は、監査テーブルなどのユースケースに対応し、SQLレベルで利用可能です。SQL機能の拡充として、NEAREST joins、CTE内DML、ネストスキーマ、変数構文の改善、JSON操作関数、再帰CTEなどが追加されます。非同期I/Oの導入により、S3などのオブジェクトストレージへのアクセスが大幅に高速化され、クエリ処理層と独立してスケーリングできるようになりました。パフォーマンス面では、再帰CTEエンジンの書き換えや、行グループプルーニングの拡張により、特にグラフ処理などで40倍の高速化が報告されています。ストレージフォーマットはv2.0.0に更新され、バッファ管理ARTインデックスにより、大規模インデックスを持つテーブルのオープンが高速化されます。C APIは安定化され、拡張機能の開発・配布が容易になります。また、カスタムリポジトリからの拡張機能インストールも可能になります。
- DuckDB v2.0(コードネーム「Cyanoptera」)がこの秋にリリース予定
- サーバーモード導入により、DuckDBネイティブプロトコル「Quack」でネットワーク経由のクエリルーティングが可能になる
- リモートプッシュダウンオプティマイザーによりPostgreSQLやMySQLへのSQL送信が可能になる
- 非同期I/O導入によりS3等のオブジェクトストレージアクセスが大幅に高速化される
- 再帰CTEエンジンの書き換えによりグラフ処理で40倍の高速化が報告されている
DuckDBは分析系データベースとして急成長しているオープンソースプロジェクトであり、v2.0でのサーバーモード導入はエンベデッドDBからネットワーク対応DBへの進化を示す重要な転換点です。非同期I/Oによるオブジェクトストレージアクセスの高速化や、PostgreSQL/MySQLへのリモートプッシュダウン対応は、データ基盤市場での競争力を高める要因であり、実際のリリース時期と採用動向に注目すべきです。