● コミュニティ
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 によるクエリ最適化を行います。基本方針:「書く前に読む。書いた後にビルドする。出力を検証する。」
なぜ使うのか
主な機能
- dbt スキル7種 — 作成、デバッグ、テスト、ドキュメント、マイグレーション、リファクタリング、インクリメンタル
- Snowflake スキル2種 — 高コストクエリの検出、テキスト/IDによる最適化
- タスクのコンテキストに応じてスキルが自動的にアクティベートされる
- ベンチマーク済み:実際の dbt タスクで53%、Snowflake 最適化で84%のパス率
- 依存関係の追跡と出力検証ステップを内蔵
ライブデモ
実際の動作
data-engineering-skill.replay
▶ 準備完了
ユースケース
実用的な使い方: data-engineering-skills
使うタイミング: dbt run が不可解なエラーで失敗し、スキーマ・リネージ・SQLのどこに問題があるか分からない場合。
フロー
-
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 の順に診断する
-
修正を適用して検証する
Apply the fix and run dbt build --select fct_orders+. Show me the before/after row counts.✓ コピーしました
→ クリーンな実行結果 + 行数の検証
結果: CI がグリーンになり、再発防止のために根本原因が記録される。
注意点
- バグが上流にあるのに下流の症状を修正してしまう — スキルは上流優先の診断を強制するため、リネージのステップを省略しないこと
使うタイミング: 経理から Snowflake のコストを指摘され、ダッシュボードを壊さずに削減が必要な場合。
前提条件
- ACCOUNT_USAGE にアクセスできる Snowflake ロール — 通常は ACCOUNTADMIN、またはコスト分析専用のロール
フロー
-
最もコストの高いクエリを特定する
Use finding-expensive-queries to list the top 20 queries in the past 30 days by credit cost. Group by app/user.✓ コピーしました
→ クレジット、実行時間、ウェアハウス別のランキングテーブル
-
上位のクエリを最適化する
For the top offender, use optimizing-query-by-id <query_id>. Propose rewrites with estimated savings.✓ コピーしました
→ 書き換えた SQL + 最適化前後の explain プラン
-
検証してデプロイする
Run the rewrite in a test warehouse — confirm same row count and shape before we swap.✓ コピーしました
→ 安全に入れ替え可能な候補
結果: 測定可能なコスト削減額を伴う、優先度付きの修正リスト。
注意点
- 書き換えにより行数が静かに変わってしまう — デプロイ前に必ず差分を確認すること — スキルはこれを強制する
使うタイミング: ネストされた CTE だらけのウェアハウスを引き継ぎ、ドキュメントとテスト付きの dbt モデルに変換したい場合。
フロー
-
スキルにソース 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
-
ビルドして検証する
dbt build the new models and compare row counts to the legacy output.✓ コピーしました
→ 許容範囲内で行数が一致する
結果: レガシーロジックがテスト可能な dbt モデルとして管理される。
注意点
- プロシージャ内の隠れた副作用(UPDATE文など) — スキルが副作用を検出してフラグを立てる — 盲目的に変換せず、副作用部分は分離すること
使うタイミング: 日次モデルのデータ量が増え、フルリフレッシュが現実的でなくなった場合。
フロー
-
モデルを分析する
Use developing-incremental-models on models/events.sql. Pick a strategy (merge / insert_overwrite / delete+insert) and justify.✓ コピーしました
→ 戦略 + unique_key + パーティション/クラスターキーの推奨
-
実装してバックフィルする
Apply the incremental config; outline a safe back-fill plan.✓ コピーしました
→ モデル + バックフィル手順
結果: 日次実行が数時間ではなく数分で完了するようになる。
注意点
- 遅延データにより unique_key で重複が発生する — merge を使用してテストすること
組み合わせ
他のMCPと組み合わせて10倍の力を
同じ 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.✓ コピーしました
コストと制限
運用コスト
- 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.) | ビジュアルなクエリプランが必要な場合 | 別ツール・別コンテキストになる |