/ 目錄 / 演練場 / data-engineering-skills
● 社群 AltimateAI ⚡ 即開即用

data-engineering-skills

作者 AltimateAI · AltimateAI/data-engineering-skills

9 個 Claude Code 技能,專為分析工程師設計:7 個 dbt 工作流程 + 2 個 Snowflake 查詢最佳化工具。在真實 dbt 任務上通過率 53%,Snowflake 調校通過率 84%。

涵蓋分析工程師日常工作的技能集。dbt 技能包括建立、除錯、測試、撰寫文件、遷移、重構及漸進式模型。Snowflake 技能可找出高成本查詢,並透過查詢文字或 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 剛以不明確的錯誤訊息失敗,你不確定問題出在 schema、lineage 還是 SQL。

前置條件
  • 可存取 dbt 專案 — cd 進入你的 dbt repo,讓 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,依序診斷:schema → lineage → SQL
  2. 套用修復並驗證
    Apply the fix and run dbt build --select fct_orders+. Show me the before/after row counts.✓ 已複製
    → 執行成功 + 資料列數驗證

結果: CI 通過,並記錄根本原因以防日後重現。

注意事項
  • 修復了下游的症狀,但問題根源在上游 — 此技能強制從上游優先診斷;不要跳過 lineage 步驟
搭配使用: 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.✓ 已複製
    → 依 credits、執行時間、warehouse 排序的表格
  2. 逐一最佳化排名最高的查詢
    For the top offender, use optimizing-query-by-id <query_id>. Propose rewrites with estimated savings.✓ 已複製
    → 重寫後的 SQL + 前後執行計畫比較
  3. 驗證並部署
    Run the rewrite in a test warehouse — confirm same row count and shape before we swap.✓ 已複製
    → 可安全替換的候選版本

結果: 取得優先修復清單,並附有可量化的費用節省估算。

注意事項
  • 重寫後資料列數悄悄改變 — 部署前務必比較差異——此技能會強制執行這個步驟
搭配使用: bigquery-server

將一批 stored procedure 遷移為 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.✓ 已複製
    → 一個或多個 .sql 檔案,以及包含文件與測試的 schema.yml
  2. 建置並驗證
    dbt build the new models and compare row counts to the legacy output.✓ 已複製
    → 資料列數在允許誤差範圍內吻合

結果: 舊有邏輯以可測試的 dbt 模型形式保留。

注意事項
  • Procedure 中有隱藏的副作用(例如 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 + partition / cluster 鍵
  2. 實作並回填
    Apply the incremental config; outline a safe back-fill plan.✓ 已複製
    → 模型 + 回填步驟

結果: 每日執行從數小時縮短至數分鐘。

注意事項
  • 遲到資料導致 unique_key 出現重複 — 使用 merge 策略並加以測試

組合

與其他 MCP 搭配,撬動十倍槓桿

data-engineering-skill + bigquery-server

將相同的依 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 進行舊版遷移時 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 內容但不知道 id 時 0
optimizing-query-by-id query_id 已從介面取得 id 時 1 explain

成本與限制

運行它的成本

API 配額
Snowflake 查詢與其他操作一樣會消耗 credits——讀取 ACCOUNT_USAGE 的費用很低
每次呼叫 Token 數
每次呼叫 dbt 技能約消耗 5–15k tokens
費用
免費技能
提示
每週執行一次 finding-expensive-queries,而非每次工作階段都執行

安全

權限、密鑰、影響範圍

最小權限: 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 succeeds, run fails with column not found

lineage 快取過時——執行 dbt deps + dbt clean + dbt build --select model+

finding-expensive-queries returns nothing

ACCOUNT_USAGE 有約 45 分鐘延遲;另請確認角色已被授予 SNOWFLAKE.ACCOUNT_USAGE 權限

驗證: SHOW GRANTS TO ROLE <role>

替代方案

data-engineering-skills 對比其他方案

替代方案何時用它替代權衡
dbt Cloud IDE偏好使用托管介面而非終端機操作時無法在流程中使用 Claude
SQL query optimizers (Select.dev, etc.)需要視覺化查詢計畫時獨立工具,需切換情境

更多

資源

📖 閱讀 GitHub 上的官方 README

🐙 查看未解決的 issue

🔍 瀏覽全部 400+ MCP 伺服器和 Skills