Community生產力與協作github.com

wshobson/dbt-transformation-patterns

掌握 dbt(資料建構工具),進行分析工程:模型組織、測試、文件撰寫與增量策略。適用於建立資料轉換、創建資料模型或實作分析工程最佳實務。

dbt-transformation-patterns 是什麼?

這個技能旨在協助開發者與 AI 代理精通 dbt(data build tool),專注於分析工程領域。它涵蓋了 dbt 專案的核心面向,包括模型組織(如使用星型或雪花型 schema)、測試(確保資料品質與完整性)、文件自動生成(透過 dbt docs)以及增量策略(如增量模型與快照)。此技能對於任何需要建立可維護、可擴展的資料轉換管線的團隊來說都非常有用,支援 dbt Core 與 dbt Cloud 平台。透過遵循此技能的指引,使用者可以標準化其資料模型,減少錯誤,並加快分析工作流程。其運作方式是透過提供結構化的模式與最佳實務,系統性地管理 dbt 專案,從模型設計到部署與監控。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/wshobson/agents/tree/main/skills/dbt-transformation-patterns

Installed? Explore more 生產力與協作 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

dbt-transformation-patterns 是做什麼的?

掌握 dbt(資料建構工具),進行分析工程:模型組織、測試、文件撰寫與增量策略。適用於建立資料轉換、創建資料模型或實作分析工程最佳實務。

概述

dbt 是一個強大的工具,讓分析工程師能夠像軟體工程師處理應用程式程式碼一樣,以模組化、可測試且可文件化的方式管理資料轉換。此 dbt 轉換模式技能提供了一套全面的指引與模式,協助你最大化 dbt 的效益。

核心模式

模型組織

  • 來源與中繼資料: 使用 YAML 檔案明確定義資料來源,並設定其測試與文件屬性。
  • 分層架構: 將模型分層組織(例如 staging、intermediate、marts),以建立清晰的依賴關係與職責分離。
  • 命名慣例: 採用一致的命名風格(例如 stg_、int_、fct_、dim_),快速識別模型類型與層級。

測試

  • 內建測試: 利用 dbt 的內建測試(如 unique、not_null、accepted_values、relationships)確保資料品質。
  • 自訂測試: 使用 SQL 或 dbt_utils 套件建立自訂資料測試,驗證特定業務邏輯。
  • 測試範圍: 將測試套用於來源、模型與最終輸出,建立全面的測試涵蓋率。

文件撰寫

  • 自動化文件: 使用 dbt docs generate 命令產生專案文件,包含模型描述、欄位定義與測試結果。
  • 描述與說明: 在 YAML 檔案中為每個模型與欄位撰寫清晰、簡潔的描述,並可加入 Markdown 格式的說明。
  • 視覺化: 利用自動產生的 DAG 圖譜視覺化模型依賴關係。

增量策略

  • 增量模型: 對大型資料集使用 incremental 策略,僅處理新資料或變更的資料,而非完整重新處理。
  • 策略類型: 根據資料來源與需求,選擇適當的增量策略(例如 merge、insert_overwrite、append)。
  • 增量邏輯: 使用 is_incremental() 條件判斷語法,在模型定義中靈活控制增量行為。

專案結構範例

my_dbt_project/
├── models/
│   ├── staging/
│   │   ├── stg_orders.sql
│   │   └── stg_orders.yml
│   ├── intermediate/
│   │   └── int_orders_enriched.sql
│   └── marts/
│       ├── fct_orders.sql
│       └── dim_customers.sql
├── tests/
│   └── assert_order_total_positive.sql
├── dbt_project.yml
└── profiles.yml

其他建議

  • 版本控制: 將 dbt 專案儲存在 Git 儲存庫中,以便追蹤變更與協作。
  • 環境管理: 使用 target 與 profile 設定將開發、測試與生產環境分離。
  • 持續整合: 將 dbt 測試與部署整合到 CI/CD 管線中,確保每次變更都經過驗證。

平台支援

此技能設計支援 dbt Core(命令列版本)與 dbt Cloud(託管服務),並可與任何支援的資料平台(如 Snowflake、BigQuery、Redshift、Databricks 等)搭配使用。

結論

透過遵循這些 dbt 轉換模式,你將能建立可靠、高效且易於維護的資料轉換專案,進而提升分析工程團隊的生產力與資料品質。

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

wshobson/accessibility-compliance

Implement WCAG 2.2 compliant interfaces with mobile accessibility, inclusive design patterns, and assistive technology support. Use when auditing accessibility, implementing ARIA patterns, building for screen readers, or ensuring inclusive user experiences.

wshobson/airflow-dag-patterns

Build production Apache Airflow DAGs with best practices for operators, sensors, testing, and deployment. Use when creating data pipelines, orchestrating workflows, or scheduling batch jobs.

wshobson/angular-migration

Migrate from AngularJS to Angular using hybrid mode, incremental component rewriting, and dependency injection updates. Use when upgrading AngularJS applications, planning framework migrations, or modernizing legacy Angular code.

wshobson/anti-reversing-techniques

Understand anti-reversing, obfuscation, and protection techniques encountered during software analysis. Use this skill when analyzing malware evasion techniques, when implementing anti-debugging protections for CTF challenges, when reverse engineering packed binaries, or when building security research tools that need to detect virtualized environments.

wshobson/api-design-principles

Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers. Use when designing new APIs, reviewing API specifications, or establishing API design standards.

wshobson/architecture-decision-records

Write and maintain Architecture Decision Records (ADRs) following best practices for technical decision documentation. Use when documenting significant technical decisions, reviewing past architectural choices, or establishing decision processes.

wshobson/architecture-patterns

Implement proven backend architecture patterns including Clean Architecture, Hexagonal Architecture, and Domain-Driven Design. Use this skill when designing clean architecture for a new microservice, when refactoring a monolith to use bounded contexts, when implementing hexagonal or onion architecture patterns, or when debugging dependency cycles between application layers.

wshobson/async-python-patterns

Master Python asyncio, concurrent programming, and async/await patterns for high-performance applications. Use when building async APIs, concurrent systems, or I/O-bound applications requiring non-blocking operations.

wshobson/attack-tree-construction

Build comprehensive attack trees to visualize threat paths. Use when mapping attack scenarios, identifying defense gaps, or communicating security risks to stakeholders.

wshobson/auth-implementation-patterns

Master authentication and authorization patterns including JWT, OAuth2, session management, and RBAC to build secure, scalable access control systems. Use when implementing auth systems, securing APIs, or debugging security issues.

wshobson/avoid-ai-writing

Audit and rewrite prose so it stops reading as machine-generated. Use this skill when asked to remove AI-isms, clean up AI writing, edit a draft for AI tells, audit a README, changelog, release note, PR description, or blog post for machine-sounding prose, or make text sound less like AI. Supports a detect-only mode, a rewrite mode, and an edit-in-place mode, with optional voice and context profiles.

wshobson/backtesting-frameworks

Build robust backtesting systems for trading strategies with proper handling of look-ahead bias, survivorship bias, and transaction costs. Use when developing trading algorithms, validating strategies, or building backtesting infrastructure.

wshobson/bash-defensive-patterns

Master defensive Bash programming techniques for production-grade scripts. Use when writing robust shell scripts, CI/CD pipelines, or system utilities requiring fault tolerance and safety.

wshobson/bats-testing-patterns

Master Bash Automated Testing System (Bats) for comprehensive shell script testing. Use when writing tests for shell scripts, CI/CD pipelines, or requiring test-driven development of shell utilities.

wshobson/bazel-build-optimization

Optimize Bazel builds for large-scale monorepos. Use when configuring Bazel, implementing remote execution, or optimizing build performance for enterprise codebases.

wshobson/before-you-build

Pre-build product and feature risk review for founders, product managers, and AI-assisted builders. Use this skill when the user is about to build a landing page, MVP, SaaS product, internal tool, agent workflow, or major feature and needs to check demand, positioning, monetization, retention, trust, distribution, and adoption risk before implementation starts.

wshobson/billing-automation

Build automated billing systems for recurring payments, invoicing, subscription lifecycle, and dunning management. Use when implementing subscription billing, automating invoicing, or managing recurring payment systems.

wshobson/binary-analysis-patterns

Master binary analysis patterns including disassembly, decompilation, control flow analysis, and code pattern recognition. Use when analyzing executables, understanding compiled code, or performing static analysis on binaries.

wshobson/block-no-verify-hook

Configure a PreToolUse hook to prevent AI agents from skipping git pre-commit hooks with --no-verify and other bypass flags. Use when setting up Claude Code projects that enforce commit quality gates.

wshobson/brand-landingpage

Brand-first landing page designer — runs a brand-identity interview (colors, typography, shape language), then generates and iterates on a polished landing page via Stitch with deployment-ready HTML. Use when the user asks to create, design, or build a landing page, homepage, or marketing page and has no established visual direction. Skip when they have a design mockup, need a dashboard or app UI, are working at component level, building a multi-page app, or restyling with known design tokens — use frontend-design instead.

相關技能