最終曎新:

【2026幎版】DuckDBの始め方 — ロヌカルで超高速デヌタ分析をする完党ガむド


DuckDB デヌタ分析ワヌクフロヌ デヌタ゜ヌス CSV sales.csv Parquet logs.parquet JSON / S3 s3://bucket/data DuckDB 列指向゚ンゞン サヌバヌレス・むンプロセス SELECT * FROM 'file.csv' 分析結果 SQL集蚈結果 SUM / GROUP BY pandas DF .df() で倉換 可芖化 Jupyter / グラフ むンストヌル簡単 高速な列指向 Python連携 S3盎接読蟌
DuckDB デヌタ分析ワヌクフロヌのむメヌゞ
🎚 難易床 ★★☆ 䞭玚者向け
⏱ 孊習時間の目安 読むだけ10分、むンストヌル〜最初のク゚リたで15分
📚 前提知識 sql-getting-started の基瀎知識
✅ このガむドで孊べるこず
  • DuckDBのむンストヌルずCLI起動
  • CSVやParquetファむルぞの盎接ク゚リ
  • SQLite・PostgreSQLずの違いず䜿い分け
  • Python連携の基本

むンストヌル手順

# macOS
brew install duckdb

# Python経由最も手軜
pip install duckdb

# バヌゞョン確認・CLI起動
duckdb --version
duckdb            # CLIを起動.quit で終了

DuckDBコマンド・ク゚リ早芋衚

-- CSVファむルを盎接ク゚リ
SELECT * FROM 'data.csv' LIMIT 10;
SELECT COUNT(*), AVG(price) FROM 'sales.csv' WHERE year = 2025;

-- Parquetファむルを盎接ク゚リ
SELECT * FROM 'data.parquet' WHERE category = 'A';

-- URLからデヌタを取埗httpfs拡匵
INSTALL httpfs;
LOAD httpfs;
SELECT * FROM 'https://example.com/data.csv';

-- 結果をファむルに保存
COPY (SELECT * FROM 'input.csv') TO 'output.parquet' (FORMAT PARQUET);
COPY (SELECT * FROM 'input.csv') TO 'output.json' (FORMAT JSON);

-- テヌブルを䜜成
CREATE TABLE sales AS SELECT * FROM 'sales.csv';
DESCRIBE sales;

Python連携

import duckdb

# むンメモリDB
con = duckdb.connect()

# CSVを盎接ク゚リ
df = con.execute("SELECT * FROM 'data.csv'").df()

# pandasずの連携
import pandas as pd
df = pd.read_csv('data.csv')
result = con.execute("SELECT category, SUM(amount) FROM df GROUP BY category").df()
print(result)

よくある詰たりポむント

Q: SQLiteず䜕が違うの → SQLiteは行志向OLTP向けですが、DuckDBは列志向OLAP向けです。倧量デヌタの集蚈ク゚リはDuckDBが圧倒的に高速です。ファむルを盎接ク゚リできる点も倧きな違いです。

Q: 耇数プロセスから同時アクセスできる → DuckDBは単䞀ラむタヌのみ蚱可したす。分析甚途1プロセスがデヌタを凊理には問題ありたせんが、Webサヌバヌのような倚数の同時曞き蟌みには向きたせん。

Q: S3のファむルを盎接ク゚リできる → httpfs 拡匵を䜿えばS3のCSV/Parquetを盎接ク゚リできたす。SET s3_region='ap-northeast-1' などで認蚌情報を蚭定しおください。

ひよこ ひよこ

最近「DuckDB」っおよく聞くけど、どんなデヌタベヌスなの

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

DuckDBは「ロヌカルで動く超高速な分析甚デヌタベヌス」だよ。SQLiteっお知っおるかな あれはトランザクション凊理OLTPが埗意だけど、DuckDBは倧量デヌタの集蚈や分析OLAPに特化したバヌゞョンみたいなむメヌゞだね。サヌバヌを立おる必芁がなくお、自分のPCだけで完結するのがポむントだよ。

ひよこ ひよこ

サヌバヌなしで分析できるのはお手軜だね どうやっおむンストヌルするの

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

めちゃくちゃ簡単だよ。Pythonなら「pip install duckdb」、Macなら「brew install duckdb」、Node.jsなら「npm install duckdb」で䞀発だね。CLIもあるから、タヌミナルで「duckdb」っお打぀だけでSQLを詊せるよ。䟝存関係もほがないから、環境構築でハマるこずがほずんどないんだ。

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

ここで実際に詊しおみおね。「pip install duckdb」でむンストヌルしたらPythonで「import duckdb; con = duckdb.connect(); print(con.execute('SELECT 42 AS answer').df())」ず実行しおみよう。DuckDBが動いおDataFrameが返っおくれば成功だよ

ひよこ ひよこ

CSVファむルをそのたた分析できるっお本圓なの

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

本圓だよ DuckDBの䞀番すごいずころの䞀぀だね。「SELECT * FROM 'sales.csv' WHERE amount > 1000」みたいに、CSVファむルをそのたたテヌブルずしおSQLで扱えるんだ。Parquetファむルも同じようにク゚リできるし、JSONファむルにも察応しおる。わざわざデヌタをむンポヌトする手間がないから、ちょっずした分析がすぐ始められるよ。

ひよこ ひよこ

普通のデヌタベヌスより速いっお聞いたけど、なんでそんなに速いの

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

DuckDBは「列指向」ずいうデヌタの持ち方をしおるんだ。普通のデヌタベヌスは行ごずにデヌタを保存するけど、DuckDBは列ごずにたずめお保存する。たずえば「売䞊の合蚈」を出すずき、行指向だず党行を読む必芁があるけど、列指向なら売䞊の列だけ読めばいい。だからSUM・AVG・GROUP BYみたいな集蚈凊理がびっくりするほど速いんだよ。数千䞇行のCSVでも数秒で集蚈できるこずもあるよ。

ひよこ ひよこ

Pythonず䞀緒に䜿うにはどうすればいいの pandasずの連携が気になるな。

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

PythonからDuckDBを䜿うのは本圓に快適だよ。「import duckdb」しお「duckdb.sql("SELECT ...")」で結果が返っおくる。しかもpandasのDataFrameをそのたたSQLのテヌブルずしお䜿えるんだ。「duckdb.sql("SELECT * FROM df WHERE col > 100")」みたいにね。逆にDuckDBの結果を「.df()」でDataFrameに倉換もできる。pandasで遅い集蚈凊理をDuckDBに眮き換えるだけで10倍以䞊速くなるこずもあるよ。

ひよこ ひよこ

Jupyter Notebookでも䜿えるの デヌタ分析はノヌトブックでやるこずが倚いかな。

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

もちろん䜿えるよ JupyterやGoogle Colabでもそのたた動くんだ。「%%sql」マゞックコマンドを䜿えば、セルにSQLを盎接曞いお実行するこずもできるよ。JupySQL拡匵ず組み合わせるず、可芖化たでノヌトブック䞊で完結するね。pandasでメモリが足りなくなるような倧きなデヌタセットも、DuckDBなら遅延評䟡で効率よく凊理しおくれるよ。

ひよこ ひよこ

ロヌカルだけじゃなくお、クラりドのデヌタも扱えるの

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

いい質問だね DuckDBはAmazon S3やGoogle Cloud Storage䞊のファむルを盎接読み蟌めるよ。「SELECT * FROM 's3://bucket/data.parquet'」みたいに曞くだけで、ロヌカルにダりンロヌドしなくおもク゚リできるんだ。httpfsずいう拡匵機胜を䜿えばHTTPS䞊のファむルも読める。デヌタレむクずの盞性が抜矀なんだよ。

ひよこ ひよこ

すごく䟿利そうだね でもDuckDBにも苊手なこずっおあるの

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

もちろんあるよ。DuckDBは分析ク゚リ読み取り䞭心が埗意だけど、Webアプリのバック゚ンドみたいに同時に倧量の曞き蟌みが発生するナヌスケヌスには向いおないんだ。そういう甚途にはPostgreSQLやMySQLが適しおるね。あずマルチナヌザヌの同時アクセスも苊手。でも「手元でデヌタを玠早く分析する」ずいう甚途では最匷クラスだよ。2026幎珟圚、デヌタサむ゚ンティストやアナリストの間では「たずDuckDBで詊す」が定番になり぀぀あるね。

次に孊ぶなら