/ ディレクトリ / プレイグラウンド / data-engineering-skills
● コミュニティ AltimateAI ⚡ 即起動

data-engineering-skills

作者 AltimateAI · AltimateAI/data-engineering-skills

アナリティクスエンジニアリング向けの Claude Code スキル9種:dbt ワークフロー7種 + Snowflake クエリオプティマイザー2種。実際の dbt タスクで53%、Snowflake チューニングで84%のパス率を達成。

アナリティクスエンジニアリングの日常業務を支えるスキル群です。dbt スキルはモデルの作成、デバッグ、テスト、ドキュメント作成、マイグレーション、リファクタリング、インクリメンタルモデルをカバーします。Snowflake スキルは高コストクエリの特定と、SQLテキストまたは query_id によるクエリ最適化を行います。基本方針:「書く前に読む。書いた後にビルドする。出力を検証する。」

なぜ使うのか

主な機能

ライブデモ

実際の動作

data-engineering-skill.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "data-engineering-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/AltimateAI/data-engineering-skills",
        "~/.claude/skills/data-engineering-skills"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "data-engineering-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/AltimateAI/data-engineering-skills",
        "~/.claude/skills/data-engineering-skills"
      ],
      "_inferred": true
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "data-engineering-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/AltimateAI/data-engineering-skills",
        "~/.claude/skills/data-engineering-skills"
      ],
      "_inferred": true
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "data-engineering-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/AltimateAI/data-engineering-skills",
        "~/.claude/skills/data-engineering-skills"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "data-engineering-skill",
      "command": "git",
      "args": [
        "clone",
        "https://github.com/AltimateAI/data-engineering-skills",
        "~/.claude/skills/data-engineering-skills"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "data-engineering-skill": {
      "command": {
        "path": "git",
        "args": [
          "clone",
          "https://github.com/AltimateAI/data-engineering-skills",
          "~/.claude/skills/data-engineering-skills"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add data-engineering-skill -- git clone https://github.com/AltimateAI/data-engineering-skills ~/.claude/skills/data-engineering-skills

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: data-engineering-skills

失敗する dbt モデルを無駄なく効率的にデバッグする

👤 CI が失敗して赤くなったアナリティクスエンジニア ⏱ ~20 min intermediate

使うタイミング: dbt run が不可解なエラーで失敗し、スキーマ・リネージ・SQLのどこに問題があるか分からない場合。

前提条件
  • dbt プロジェクトにアクセス可能 — dbt リポジトリに cd して、Claude が models/ を参照できるようにする
  • スキルがインストール済み — git clone https://github.com/AltimateAI/data-engineering-skills ~/.claude/skills/data-engineering-skills
フロー
  1. Claude にエラーとモデルを渡す
    Use debugging-dbt-errors. Here's the stderr and models/marts/fct_orders.sql. Diagnose the root cause — don't guess.✓ コピーしました
    → Claude が上流の ref を読み取り、スキーマ → リネージ → SQL の順に診断する
  2. 修正を適用して検証する
    Apply the fix and run dbt build --select fct_orders+. Show me the before/after row counts.✓ コピーしました
    → クリーンな実行結果 + 行数の検証

結果: CI がグリーンになり、再発防止のために根本原因が記録される。

注意点
  • バグが上流にあるのに下流の症状を修正してしまう — スキルは上流優先の診断を強制するため、リネージのステップを省略しないこと
組み合わせ: bigquery-server · github

Snowflake の高コストクエリを特定して修正する

👤 Snowflake の請求額が増加しているアナリティクスリード ⏱ ~60 min intermediate

使うタイミング: 経理から Snowflake のコストを指摘され、ダッシュボードを壊さずに削減が必要な場合。

前提条件
  • ACCOUNT_USAGE にアクセスできる Snowflake ロール — 通常は ACCOUNTADMIN、またはコスト分析専用のロール
フロー
  1. 最もコストの高いクエリを特定する
    Use finding-expensive-queries to list the top 20 queries in the past 30 days by credit cost. Group by app/user.✓ コピーしました
    → クレジット、実行時間、ウェアハウス別のランキングテーブル
  2. 上位のクエリを最適化する
    For the top offender, use optimizing-query-by-id <query_id>. Propose rewrites with estimated savings.✓ コピーしました
    → 書き換えた SQL + 最適化前後の explain プラン
  3. 検証してデプロイする
    Run the rewrite in a test warehouse — confirm same row count and shape before we swap.✓ コピーしました
    → 安全に入れ替え可能な候補

結果: 測定可能なコスト削減額を伴う、優先度付きの修正リスト。

注意点
  • 書き換えにより行数が静かに変わってしまう — デプロイ前に必ず差分を確認すること — スキルはこれを強制する
組み合わせ: bigquery-server

ストアドプロシージャ群を dbt モデルにマイグレーションする

👤 レガシー SQL から dbt への移行を進めるチーム ⏱ ~90 min advanced

使うタイミング: ネストされた CTE だらけのウェアハウスを引き継ぎ、ドキュメントとテスト付きの dbt モデルに変換したい場合。

フロー
  1. スキルにソース SQL を指定する
    Use migrating-sql-to-dbt. Here's proc_monthly_revenue.sql. Convert it to dbt models with refs, documentation, and at least 2 tests per model.✓ コピーしました
    → 1つ以上の .sql ファイル、ドキュメントとテストを含む schema.yml
  2. ビルドして検証する
    dbt build the new models and compare row counts to the legacy output.✓ コピーしました
    → 許容範囲内で行数が一致する

結果: レガシーロジックがテスト可能な dbt モデルとして管理される。

注意点
  • プロシージャ内の隠れた副作用(UPDATE文など) — スキルが副作用を検出してフラグを立てる — 盲目的に変換せず、副作用部分は分離すること
組み合わせ: github

フルリフレッシュの遅いモデルをインクリメンタルに変換する

👤 dbt の実行時間が長いアナリティクスエンジニア ⏱ ~45 min advanced

使うタイミング: 日次モデルのデータ量が増え、フルリフレッシュが現実的でなくなった場合。

フロー
  1. モデルを分析する
    Use developing-incremental-models on models/events.sql. Pick a strategy (merge / insert_overwrite / delete+insert) and justify.✓ コピーしました
    → 戦略 + unique_key + パーティション/クラスターキーの推奨
  2. 実装してバックフィルする
    Apply the incremental config; outline a safe back-fill plan.✓ コピーしました
    → モデル + バックフィル手順

結果: 日次実行が数時間ではなく数分で完了するようになる。

注意点
  • 遅延データにより unique_key で重複が発生する — merge を使用してテストすること

組み合わせ

他のMCPと組み合わせて10倍の力を

data-engineering-skill + bigquery-server

同じ optimize-by-id パターンを BigQuery の高コストクエリにも適用する

Adapt finding-expensive-queries for BigQuery INFORMATION_SCHEMA.JOBS and list top 20.✓ コピーしました
data-engineering-skill + github

マイグレーションしたモデルごとに PR を作成し、個別にレビュー可能にする

For every migrated model, open a GitHub PR with dbt test output attached.✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
creating-dbt-models model spec 新規モデル作成時 0
debugging-dbt-errors error log, model CI またはローカル実行が失敗した時 0
testing-dbt-models model テスト未実装のモデルがある時 0
documenting-dbt-models model ドキュメント未作成のモデルがある時 0
migrating-sql-to-dbt legacy SQL レガシー SQL のマイグレーション時 0
refactoring-dbt-models model 可読性の低いモデルを整理する時 0
developing-incremental-models full-refresh model 実行時間が長すぎる時 0
finding-expensive-queries lookback window コスト調査時 ACCOUNT_USAGE query
optimizing-query-text SQL text SQL は分かるが query_id が不明な時 0
optimizing-query-by-id query_id UI から query_id を取得済みの時 1 explain

コストと制限

運用コスト

APIクォータ
Snowflake クエリは通常と同様にクレジットを消費します — ACCOUNT_USAGE の読み取りは低コストです
呼び出しあたりのトークン
dbt スキル1回の呼び出しにつき5〜15kトークン
金額
無料スキル
ヒント
finding-expensive-queries は毎セッションではなく、週1回の実行を推奨します

セキュリティ

権限、シークレット、影響範囲

最小スコープ: dbt: read + write to your project Snowflake: ACCOUNT_USAGE for cost skills
認証情報の保管: dbt profiles.yml / Snowflake キーペアを環境変数に設定;スキル自体はシークレットを保存しません
データ送信先: スキルから直接のデータ送出はありません
絶対に付与しない: SYSADMIN to the Claude session unless absolutely needed

トラブルシューティング

よくあるエラーと対処法

dbt compile は成功するが、run で column not found エラーが発生する

リネージが古くなっています — dbt deps + dbt clean + dbt build --select model+ を実行してください

finding-expensive-queries が結果を返さない

ACCOUNT_USAGE には約45分の遅延があります。また、ロールに SNOWFLAKE.ACCOUNT_USAGE の権限があることを確認してください

確認: SHOW GRANTS TO ROLE <role>

代替案

data-engineering-skills 他との比較

代替案代わりに使う場面トレードオフ
dbt Cloud IDEターミナルよりもマネージド UI を好む場合Claude を活用できない
SQL query optimizers (Select.dev, etc.)ビジュアルなクエリプランが必要な場合別ツール・別コンテキストになる

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る