🔧 dbt技術記事まとめ - 2025-10-16

📋 概要

dbtに関する最新技術記事を収集しました。Qiita、dev.to、技術ブログRSSから2件の記事をピックアップしています。

📊 収集統計

  • Qiita記事: 2件
  • dev.to記事: 0件
  • RSS記事: 0件
  • 収集日: 2025-10-16

  • 🧰 基本機能の概要

  • 🧭 主要なコマンド

  • 📝 開発時によく使うTips

    を整理して紹介します👇


🧰 dbt の基本機能

機能名説明
モデル(Models)SQLファイルで変換ロジックを定義し、dbt run で実行してテーブル/ビューを作成models/orders.sql
マクロ(Macros)Jinjaテンプレートで共通処理を部品化{{ my_macro('arg') }}
テスト(Tests)データの品質チェック。not_nullunique などの汎用テストのほか、自作テストも可能dbt test
ドキュメント生成モデルやカラムの説明・依存関係グラフを自動生成dbt docs generate / dbt docs serve
依存関係管理ref() でモデル間の依存関係を明示化SELECT * FROM {{ ref('orders') }}
環境管理profiles.yml で接続先(BigQuery, Snowflake, Redshiftなど)を管理開発・本番の切り替えが容易
スナップショット過去データの履歴管理(SCD2対応)dbt snapshot
ソース(Sources)元データテーブルを明示的に定義{{ source('raw', 'customers') }}

🧭 よく使う dbt コマンド

コマンド内容よく使う場面
dbt debug接続確認・環境チェック初回セットアップ時
dbt runモデルを実行してテーブル/ビューを生成本番・開発実行
dbt run --select model_name特定モデルだけ実行部分的な再実行
dbt test定義済みのテストを実行品質チェック
dbt buildrun + test + snapshot + seed をまとめて実行本番リリース時
dbt docs generateドキュメントを生成グラフやモデル説明作成
dbt docs serveローカルでドキュメントをWeb表示依存関係の可視化
dbt seedCSVからテーブルを作成マスタデータの取り込み
dbt snapshotスナップショット実行履歴管理
dbt cleanキャッシュなどの不要ファイル削除環境リセット
dbt deps外部パッケージのインストールpackages.yml 変更時

📝 開発でよく使う Tips

1. モデルの依存関係を明示する

1
2
3
4
5
-- models/customer_orders.sql
SELECT *
FROM {{ ref('orders') }} o
JOIN {{ ref('customers') }} c
  ON o.customer_id = c.id

👉 ref を使うことで、依存順に自動で実行されるようになります。


2. ソースを明示してデータ基盤をドキュメント化

1
2
3
4
5
6
7
# models/src.yml
version: 2
sources:
  - name: raw
    tables:
      - name: customers
      - name: orders
1
SELECT * FROM {{ source('raw', 'customers') }}

3. カラムテストを設定

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# models/schema.yml
version: 2
models:
  - name: customers
    columns:
      - name: id
        tests:
          - unique
          - not_null
      - name: email
        tests:
          - not_null

👉 dbt test で自動的に品質チェックが走る。


4. テンプレート化(マクロ)

1
2
3
4
-- macros/clean_email.sql
{% macro clean_email(column_name) %}
    lower(trim({{ column_name }}))
{% endmacro %}
1
2
3
4
5
-- models/customers_clean.sql
SELECT
  id,
  {{ clean_email('email') }} as email_clean
FROM {{ ref('customers') }}

5. モデルの依存関係をグラフで確認

1
2
dbt docs generate
dbt docs serve

http://localhost:8080 にアクセスすると、DAG(依存関係グラフ)が見られます✨


🧪 よく使う開発フロー(例)

  1. dbt debug で接続チェック
  2. dbt run --select my_model でモデル作成
  3. dbt test で品質確認
  4. dbt docs generate && dbt docs serve で可視化
  5. 本番時は dbt build を実行

🏗️ よく使われる連携

  • BigQuery / Snowflake / Redshift / Databricks など主要DWHに対応
  • GitHub Actions や Prefect / Airflow でCI/CD連携可能
  • Looker / Tableau / Hex などのBIツールと併用されるケース多数

🔗 関連リンク

このデータモデルを実行します。今度はCREATE VIEWと表示されましたね。ちなみに–full-refreshというオプションをつけている理由ですが、先程の検証で、このデータモデルは既にテーブルとして存在しているため、そのまま実行してもエラーになります。同データモデルを「完全に作り直す」ために、このオプションを使用しています。

$ dbt run –models stg_orders –full-refresh

📝 まとめ

dbtの最新動向をお届けしました。継続的な学習と実践により、技術の理解を深めていきましょう!


この記事は自動収集システムにより生成されました。記事の詳細は各リンク先をご確認ください。

技術ネタ、趣味や備忘録などを書いているブログです
Hugo で構築されています。
テーマ StackJimmy によって設計されています。