mcpField
D
dbt-transformation-patterns

dbt-transformation-patterns

github.com/wshobsonデータ・データベース41.9k11.1k 回インストール2 週間前に更新
リポジトリ

dbt-transformation-patterns について

dbtで分析パイプラインを構築・保守するチーム向けに、モデル階層、テスト、ドキュメント、増分処理を含む変換プロジェクトの構成方法を解説します。

主な機能

  1. 01staging・intermediate・martsでモデルを整理
  2. 02モデル階層ごとの命名規則を適用
  3. 03データ品質テストを計画
  4. 04モデルとリネージを文書化
  5. 05大規模データセットに増分モデルを使用

活用シーン

  1. 01dbtプロジェクトの構成
  2. 02階層型データ変換パイプラインの構築
  3. 03分析モデルへのテストと文書の追加
  4. 04大規模テーブルの増分処理

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/wshobson/agents --skill dbt-transformation-patterns

インストール後、Claude Code で/dbt-transformation-patternsを入力して読み込まれたか確認します。

同梱ファイルreferences/details.md

詳細

dbt 変換パターン

モデル構成、テスト戦略、ドキュメント化、増分処理など、本番環境で利用可能な dbt (data build tool) のパターンです。

このスキルを使う場面

  • dbt でデータ変換パイプラインを構築するとき
  • モデルをステージング、中間、マートのレイヤーに整理するとき
  • データ品質テストを実装するとき
  • 大規模データセット向けの増分モデルを作成するとき
  • データモデルとリネージをドキュメント化するとき
  • dbt プロジェクトの構成をセットアップするとき

中核となる概念

1. モデルレイヤー (メダリオンアーキテクチャ)
sources/          Raw data definitions
    ↓
staging/          1:1 with source, light cleaning
    ↓
intermediate/     Business logic, joins, aggregations
    ↓
marts/            Final analytics tables
2. 命名規則
レイヤープレフィックス例
ステージングstg_stg_stripe__payments
中間int_int_payments_pivoted
マートdim_, fct_dim_customers, fct_orders

クイックスタート

# dbt_project.yml
name: "analytics"
version: "1.0.0"
profile: "analytics"

model-paths: ["models"]
analysis-paths: ["analyses"]
test-paths: ["tests"]
seed-paths: ["seeds"]
macro-paths: ["macros"]

vars:
  start_date: "2020-01-01"

models:
  analytics:
    staging:
      +materialized: view
      +schema: staging
    intermediate:
      +materialized: ephemeral
    marts:
      +materialized: table
      +schema: analytics
# Project structure
models/
├── staging/
│   ├── stripe/
│   │   ├── _stripe__sources.yml
│   │   ├── _stripe__models.yml
│   │   ├── stg_stripe__customers.sql
│   │   └── stg_stripe__payments.sql
│   └── shopify/
│       ├── _shopify__sources.yml
│       └── stg_shopify__orders.sql
├── intermediate/
│   └── finance/
│       └── int_payments_pivoted.sql
└── marts/
    ├── core/
    │   ├── _core__models.yml
    │   ├── dim_customers.sql
    │   └── fct_orders.sql
    └── finance/
        └── fct_revenue.sql

詳細なパターンと実例

詳細なパターンのドキュメントは references/details.md にあります。上記のナビゲーション層では不十分な場合にそのファイルを参照してください。

ベストプラクティス

やるべきこと
  • ステージングレイヤーを使う - データを一度クリーンにし、どこでも使う
  • 積極的にテストする - not null、unique、relationships
  • すべてをドキュメント化する - カラムの説明、モデルの説明
  • 増分処理を使う - 100 万行を超えるテーブルに対して
  • バージョン管理する - dbt プロジェクトを Git で管理する
やってはいけないこと
  • ステージングを飛ばさない - 生データ → マートは技術的負債になる
  • 日付をハードコードしない - {{ var('start_date') }} を使う
  • ロジックを繰り返さない - マクロに抽出する
  • 本番環境でテストしない - dev ターゲットを使う
  • 鮮度を無視しない - ソースデータを監視する

コメント