【ダックディービー】

DuckDB とは?

💡 SQLiteの分析番長バージョン!アプリに住み着くアヒルが大量データをサクサク集計
📌 このページのポイント
SQLite vs DuckDB → 同じ組み込み型でも用途が違う SQLite OLTP(トランザクション処理) 行指向ストレージ 1行ずつ読み書きが得意 モバイルアプリ・設定保存 DuckDB OLAP(分析処理) 列指向ストレージ 大量データの集計が得意 データ分析・CSV/Parquet処理 VS 共通点→ サーバー不要・アプリに組み込めるインプロセス型DB
SQLite(OLTP)と DuckDB(OLAP)の用途比較
ひよこ ひよこ

DuckDBってSQLiteと何が違うの?

ペンギン先生 ペンギン先生

SQLiteは「ちょっとしたデータの保存・取得」が得意な汎用DB。DuckDBは「大量データの集計・分析」が得意な分析特化DBなんだ。同じ組み込み型でも用途が全然違うよ

ひよこ ひよこ

分析特化って具体的にどう速いの?

ペンギン先生 ペンギン先生

DuckDBは列指向ストレージを採用していて、たとえば「売上の合計」を出すとき、売上列だけを読み込むから無駄がないんだ。SQLiteだと行ごとに全列読むから遅くなるよ

ひよこ ひよこ

サーバーなしで使えるってことは、Pythonスクリプトの中でも使えるの?

ペンギン先生 ペンギン先生

そう!`pip install duckdb` して数行書くだけで、CSVParquetファイルを直接SQLで分析できるよ。Jupyterノートブックでの探索的データ分析にめちゃくちゃ便利なんだ

ひよこ ひよこ

じゃあBigQueryとかの代わりになるの?

ペンギン先生 ペンギン先生

数百GB程度のデータならローカルで十分戦えるよ。ただしペタバイト級の分散処理やリアルタイムの同時接続には向かない。「クラウドに上げるほどじゃないけどpandasじゃ遅い」という絶妙なポジションだね

ひよこ ひよこ

最近すごく人気みたいだけど、なんでブレイクしたの?

ペンギン先生 ペンギン先生

データエンジニアリングの世界で「ローカルファースト」の流れが来ているんだ。クラウドは便利だけどコストもかかる。DuckDBなら手元のマシンで高速に分析できるから、開発サイクルが一気に短くなるんだよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「DuckDB」って出てきたら「アプリに組み込める分析用の軽量データベース」と思えればだいたいOK!
📖 おまけ:英語の意味
「DuckDB」 = アヒルのデータベース
💬 マスコットのアヒルが由来。SQLiteのように「組み込み型」だけど分析(OLAP)に強いという新しいカテゴリを作ったデータベースだよ
← 用語集にもどる