はじめに
「dbtを試したいけれど、BigQueryやAWSの設定は面倒…」「まずは自分のPCの中だけで完結させたい」
そんな方に最適なのが DuckDB を使った構成です。
DuckDBは「分析用のSQLite」とも呼ばれる軽量なデータベースで、dbtと組み合わせることで、1円もかけず、ネットワーク環境も気にせずにデータパイプラインを構築できます。
1. なぜ練習にDuckDBがいいのか?
- 設定がゼロ: Google CloudやAWSのアカウント作成が不要です。
- ファイル1つで完結: データベースがただの「ファイル」として保存されます。
- 爆速: 数百万行程度のデータなら、手元のPCで瞬時に処理が終わります。
2. 環境構築
まずは必要なライブラリをインストールします。
2.1 アダプターのインストール
pip install dbt-duckdb
2.2 プロジェクトの初期化
dbt init my_duckdb_project
【入力のポイント】
- Which database?:
duckdbを選択 - path:
dev.duckdb(作成されるデータベースファイルの名前です)
3. ハンズオン:データを動かしてみる
3.1 最初のモデル作成
models/sample_model.sql を作成します。
{{ config(materialized='table') }}
select
1 as id,
'DuckDB' as db_name,
current_date as processed_at
3.2 実行
dbt run
実行すると、プロジェクトフォルダ内に dev.duckdb というファイルが生成されます。これがデータベース本体です。
4. DuckDBならではの「神」機能:外部ファイルの直接読み込み
DuckDBがdbt練習に最適な最大の理由は、CSVやParquetファイルをそのままテーブルとして扱える点です。
例えば、dataフォルダに置いた users.csv を読み込むモデルはこれだけで書けます:
-- models/stg_users.sql
select * from read_csv_auto('data/users.csv')
5. データの確認方法
DuckDBはファイル形式なので、中身を見るには以下の方法があります。
- CLIを使う:
duckdb dev.duckdbで起動し、SQLを叩く。 - DBeaverなどのツール: DuckDBドライバーを追加してファイルを選択する。
- Python:
import duckdb経由で中身を見る。
6. まとめ:DuckDBで基礎を固めよう
DuckDBでdbtの基本(ref関数、test、docs)をマスターすれば、接続先をBigQueryやSnowflakeに変えても、書くSQLやdbtの作法は全く同じです。
今回のステップの振り返り:
pip install dbt-duckdbで準備dbt initでローカルファイル(.duckdb)を指定dbt runで爆速変換を体験


