クラウド
上級

DuckDB (OLAP / 分析DB)(ダックディービー)

CWI Amsterdam 2019年公開のIn-process OLAP データベース。「SQLite for Analytics」を標榜、Columnar Storage・Vectorized Execution・Parquet 直接読込で分析処理に特化。

0 回閲覧
0 いいね
2026/5/15 更新
関連タグ
DB
DuckDB
OLAP

概要

DuckDB は2019年6月Mark Raasveldt / Hannes Mühleisen (CWI Amsterdam・オランダ国立数学コンピュータ研究所) が立ち上げた DuckDB Foundation により MIT ライセンスで公開された In-process OLAP データベース。「SQLite for Analytics」を標榜、SQLite と同様にアプリプロセス内で動く軽量設計ながら、Columnar Storage・Vectorized Execution・Apache Parquet 直接読込・ASOF JOIN 等の現代分析機能をすべて統合、Python / R / Node.js から直接呼出可能。

DuckDB 主要特徴

特徴説明
形態In-process (アプリ内動作)
用途OLAP (分析) 特化
ストレージColumnar (列指向)
実行エンジンVectorized (バッチ処理)
標準SQLPostgreSQL風完全準拠
Parquet直接読込・書込
CSV高速読込
JSONネスト対応
Apache Arrowゼロコピー連携
Iceberg対応
Delta Lake対応
ACID完全準拠
ライセンスMIT

DuckDB vs SQLite

項目SQLiteDuckDB
設計OLTP (取引)OLAP (分析)
ストレージRow-orientedColumnar
実行Tuple-at-timeVectorized
データ規模KB-GBGB-TB
並列処理限定的全コア活用
Parquet拡張ネイティブ
Python統合sqlite3duckdb (Pandas風)

Python 統合例

import duckdb
import pandas as pd

# Pandas DataFrame から直接クエリ
df = pd.read_csv("sales.csv")
result = duckdb.query("SELECT region, SUM(amount) FROM df GROUP BY region").df()

# Parquet 直接読込
duckdb.query("""
    SELECT * FROM 'data/*.parquet'
    WHERE date >= '2024-01-01'
""").df()

# CSV / JSON / Iceberg / Delta Lake 全対応
duckdb.query("SELECT COUNT(*) FROM 's3://bucket/*.parquet'")

ベンチマーク (TPC-H scale 100)

DBクエリ平均時間メモリ
PostgreSQL200秒64GB
MySQL180秒64GB
Snowflake (Cloud)30秒-
BigQuery (Cloud)25秒-
DuckDB (ローカル)15秒16GB
ClickHouse8秒32GB

ローカルマシンでクラウドDWH に匹敵する分析性能・初期コスト$0。

主要機能

Vectorized Execution

伝統的Tuple-at-time (1行ずつ処理) ではなく、1,000-1,024 値の Vector を CPU SIMD 命令で並列処理。CPU キャッシュ最適化・PostgreSQL 比10-100倍高速。

Apache Parquet 直接読込

-- 別途インポート不要
SELECT * FROM 's3://bucket/yellow_tripdata_*.parquet'
WHERE pickup_datetime >= '2024-01-01'
LIMIT 100;

S3 / Cloud Storage / ローカルファイル全対応・遅延読込で必要列のみメモリロード。

ASOF JOIN

時系列データの近似JOIN (DuckDB 0.8+):

SELECT * FROM trades
ASOF JOIN quotes
ON trades.symbol = quotes.symbol
AND trades.time >= quotes.time

金融時系列・センサーデータの「最も近い前の値と結合」を高速処理。

MotherDuck (2023-)

DuckDB Foundation 関連の Serverless DuckDB クラウドサービス:

  • ブラウザでDuckDB 利用
  • ローカル + クラウド ハイブリッド実行
  • 共有 / コラボレーション
  • $25/月 - 法人プラン

duckdb-wasm (ブラウザ DuckDB)

DuckDB を WebAssembly でブラウザ直接動作:

  • 完全ブラウザ内処理 (サーバ不要)
  • Observable / Jupyter Notebook 統合
  • データプライバシ完璧 (データがサーバ送信されない)
  • 数百MB Parquet をブラウザで分析可能

関連用語との違い

  • vs SQLite: 取引 / 分析
  • vs ClickHouse: 単独 / クラスタ
  • vs Snowflake / BigQuery: ローカル無料 / クラウド有料

FAQ

Q1: いつ使うべき? A: 数GB-数TB の分析・Pandas / Polars との連携・Parquet 大量データ・ローカル分析・データサイエンスノートブック。

Q2: PostgreSQL でなくDuckDB? A: 単純集計 / Window Function / GROUP BY 等の分析クエリで10-100倍高速。OLTP は PG 推奨・OLAP はDuckDB 推奨。

Q3: Pandas との関係? A: 補完。Pandas 単独でメモリ不足の大データに DuckDB。DuckDB → Pandas DataFrame 双方向変換可能、Polars と並ぶ「Pandas Killer」。

この記事について
カテゴリークラウド
難易度上級
作成日2026/5/15