dbt 生产转换模式
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/dbt-transformation-patterns。
技能介绍
你在解决什么问题
用 dbt 搭转换管道时,常见问题不是「会不会写 SQL」,而是项目结构随模型增多失控、测试与文档靠自觉、全量跑表成本过高。本技能聚焦 dbt(数据构建工具)的生产级约定:如何把模型分层、如何设测试与文档、以及何时用增量物化。
技能如何指导你
技能会按工程习惯拆成几条可执行的指令方向:
- 层级与命名:定义暂存层(staging)、中间层(intermediate)、数据市场层(mart)等模型层级,并约定命名与所有权,避免「同名不同义」的模型散落各处。
- 质量与可观测性:实施数据质量测试、模型文档,以及新鲜度(freshness)检查,让 CI 或定时任务能发现 schema 漂移与源表滞后。
- 物化与增量:根据数据量与更新模式选择物化方式(如
table/view/incremental),并选定增量策略,避免对大表每次全量重算。 - 运行与 CI:用 selectors 缩小单次运行范围,并把 dbt 运行嵌入 CI 工作流,减少「本地能跑、上线才炸」的情况。
需要更细的目录结构、SQL 示例与模式清单时,可对照技能附带的 resources/implementation-playbook.md。
适用边界
- 适合:团队已采用 dbt 与数据仓库支持的工作流,要在现有源数据与 schema 上长期维护转换层。
- 不适合:项目未用 dbt、只做一次性 ad-hoc 查询,或无法访问源数据与 schema——此时技能里的分层与测试策略缺少落地前提。
使用场景
- 新接手的 dbt 仓库模型命名混乱,需要按 staging / intermediate / mart 重划层级并统一约定
- 数据集市表每天全量重跑耗时过长,需要为事实表选定 incremental 策略与物化方式
- 上线前要在 CI 里只跑变更模型,需要配置 selectors 并补齐 schema 测试与 freshness 检查
- 业务方要求模型有文档且关键字段有 not_null、unique 等测试,需要在现有项目中系统化落地
适合人员
- 负责数仓转换层维护的数据工程师,希望把 dbt 项目结构固定成团队可复制的标准
- Analytics Engineer 在多个源系统入仓后,要搭中间层并保证每层模型可测、可文档化
- 数据平台工程师要把 dbt run / test 接入 Git CI,避免未测试模型直接进 main
- 从 SQL 脚本迁移到 dbt 的 BI 开发者,需要理解分层命名与增量模型而非继续堆单文件 SQL