DuckDBという分析向けデータベースをご存知でしょうか。SQLiteのように手軽に使えて分析処理は20〜40倍速いです。しかも無料で利用できます。この記事ではDuckDBの特徴と始め方を解説します。

DuckDBとは何か

DuckDBはインプロセス型のOLAPデータベースです。つまりサーバー不要で動作します。また、SQLiteと同様に単一ファイルで管理できます。しかしカラム型ストレージで分析に特化しています。さらにPythonやR、Node.jsなど多言語に対応しています。特にpip install duckdbだけで始められます。

SQLiteとの違いと使い分け

SQLiteは行指向でトランザクション処理が得意です。一方でDuckDBはカラム指向で集計処理が高速です。たとえば数百万行のGROUP BYが数秒で完了します。また、CSVやParquetファイルを直接クエリできます。さらにJOINの最適化も優れています。そのため分析用途ではDuckDBが圧倒的に有利です。

DuckDBの始め方と基本操作

Pythonならimport duckdbだけで利用開始できます。具体的にはduckdb.sql()でSQLを直接実行します。また、pandasのDataFrameとも自動連携します。さらにCLIツールも提供されています。しかしGUIが必要ならDBeaver等を使います。特にJupyter Notebookとの相性が抜群です。

DuckDBの活用例

ログ分析やCSVデータの集計に最適です。たとえばS3上のParquetファイルを直接クエリできます。また、ETL処理のプロトタイプにも使えます。さらにBIツールのバックエンドとしても機能します。つまりデータ分析の手軽な入り口として最適です。このようにDuckDBはSQLiteの手軽さと分析力を兼ね備えたツールです。