スポンサーリンク

はじめに

「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はファイル形式なので、中身を見るには以下の方法があります。

  1. CLIを使う: duckdb dev.duckdb で起動し、SQLを叩く。
  2. DBeaverなどのツール: DuckDBドライバーを追加してファイルを選択する。
  3. Python: import duckdb 経由で中身を見る。

6. まとめ:DuckDBで基礎を固めよう

DuckDBでdbtの基本(ref関数、testdocs)をマスターすれば、接続先をBigQueryやSnowflakeに変えても、書くSQLやdbtの作法は全く同じです。

今回のステップの振り返り:

  1. pip install dbt-duckdb で準備
  2. dbt init でローカルファイル(.duckdb)を指定
  3. dbt run で爆速変換を体験


この記事が気に入ったら『目黒で働く分析担当の作業メモ』ご支援をお願いします!

※OFUSEに飛びます


おすすめの記事