DuckDB とは
DuckDB は高速なインプロセス分析 SQL データベース、いわば「分析のための SQLite」です。呼び出し元のプロセスの中で動くのでサーバーの用意は不要、CSV・Parquet・JSON を直接問い合わせでき(SELECT * FROM 'data.parquet')、豊かで書きやすい SQL 方言と、分析処理での優れた性能を備えています。このパッケージは公式の duckdb CLI を配布しています。
duckdb を実行するだけです。同じ理由で、1 つのデータベースファイルは同時に 1 プロセスのものになります。
apt upgrade を実行するだけで、常に最新版を使い続けられます。
⚡ DuckDB の主な機能
📊 分析のために作られた
列指向・ベクトル化されたエンジンが毎秒数百万行を処理します。集計、結合、ウィンドウ関数を OLAP の速度で。
📁 ファイルに直接クエリ
SELECT * FROM 'events.parquet'。CSV も Parquet も JSON も、インポートなしでそのまま問い合わせ(と書き出し)ができます。
🪶 セットアップ不要
SQLite のようにプロセス内で動きます。バイナリ 1 つ、データベースファイルも任意で 1 つ、管理するものはありません。
🔌 ランタイムの拡張
INSTALL httpfs; が公式リポジトリから署名付き拡張を取得します。S3 / HTTP アクセス、空間データ、全文検索などが揃っています。
🗣️ 書きやすい SQL
SELECT * EXCLUDE、GROUP BY ALL、リスト / 構造体型、PIVOT。日々のクエリから決まり文句を減らす、現代的な方言です。
🤝 ほかのツールと仲良く
拡張により SQLite、PostgreSQL、MySQL を読み込み、Parquet / CSV / JSON に書き出せます。データパイプラインの接着剤として最適です。
🏆 apt で入れるべき理由
- 拡張機能もそのまま: このパッケージは上流公式の glibc ビルドを使っているので、
INSTALL httpfs;が公式のlinux_amd64/linux_arm64拡張リポジトリと一致します - 安定版も含めてすべてのリリースに: 公式アーカイブは DuckDB を testing / unstable にしか置いていませんが、ここでは Bookworm も Trixie も同じ最新版が入ります
- curl して bin に置かない: バイナリを手で
/usr/local/binに落とす代わりに、GPG 署名付きリポジトリを使います - 自動更新: 上流の新しいリリースが、いつもの
apt upgradeで届きます - マルチアーキテクチャ: amd64 と arm64。上流が Linux 向け CLI バイナリを出しているアーキテクチャです
📦 deb.griffo.io からインストールする
ステップ 1: リポジトリを追加する
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt updatesudo apt install extrepo
sudo extrepo enable griffo
sudo apt update🆓 ずっと無料のミラーがあります。 deb-free.griffo.io は、アカウントもサブスクリプションもなしでパッケージをずっと無料で配布しています。上流より最大2か月遅れ、セキュリティ修正は即座に公開されます。現在収録しているのは cliamp、Ghostty、lazydocker、Oh My Posh と Zed です。DuckDB は含まれていないため、今日入手する方法は上のリポジトリだけですが、ご要望があれば追加できます。
🧩 extrepo オプションについて。 extrepo は外部リポジトリを扱う Debian 標準のツールです。署名済みメタデータと照合して鍵を検証したうえで、sources ファイルの作成と署名鍵のインストールを代わりに行います。このリポジトリは griffo、ずっと無料のミラーは griffo-free という名前で登録されているので、Debian(bookworm、trixie、forky、sid)では上のコマンドだけで設定は完了です。
extrepo が用意するのは sources ファイルと鍵だけなので、サブスクリプションの認証情報は引き続き /etc/apt/auth.conf.d/deb.griffo.io.conf に書きます。extrepo は Debian のスイート向けメタデータしか公開していないため Ubuntu は対象外です。Ubuntu では sudo または root のコマンドを使ってください。
ステップ 2: DuckDB をインストールする
sudo apt install -y duckdbapt install -y duckdb🚀 最初の起動
duckdb # インメモリの対話シェル
duckdb mydb.duckdb # 永続的なデータベースファイル
duckdb -c "SELECT * FROM 'events.parquet' LIMIT 10;" # ファイルに直接クエリ
duckdb -c "INSTALL httpfs; LOAD httpfs;" # 公式リポジトリからの拡張📦 パッケージのビルドリポジトリ
Debian パッケージは、この GitHub リポジトリで自動的にビルド・管理されています:
- 📂 duckdb-debian - 最新リリースのビルド
🔗 関連パッケージ
deb.griffo.io では、こちらも配布しています:
- garage - S3 互換オブジェクトストレージ。httpfs 経由で DuckDB からクエリできます
- tigerbeetle - 分散型の金融トランザクションデータベース
- yq - コマンドラインで YAML / JSON / CSV を扱う