dbt Transformation Patterns & Testing
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_fccf428b/dbt-transformation-patterns-model。
技能介绍
dbt 项目常见的工程债
数据团队引入 dbt 后,典型痛点包括:模型层次模糊导致复用困难、质量检查散落代码中、增量表策略混乱、文档与代码脱节。随着模型量增长,这些问题会放大成维护成本——新人需要花数小时理清依赖关系,生产事故常源于未被捕获的孤儿表或异常空值。
分层与测试的落地范式
该技能通过以下模式解决上述问题:
- 分层治理:采用 medallion 架构,用
stg_/int_/dim+fct_前缀明确模型定位(如stg_stripe__payments对应原始清洗层) - 测试内嵌:在模型层直接编写
not_null、unique、relationships等测试,形成质量护栏 - 文档自动化:通过
model和column描述字段语义,配合 lineage 生成可视化血缘图 - 增量优化:针对 >1M 行的大表提供增量策略,避免全表扫描性能损耗
- 变量控制:用
{{ var('start_date') }}替代硬编码时间,支持环境切换
适用边界与安全底线
该技能明确不涉及:自动安装依赖、生产环境部署、外部系统写入操作。使用时应遵循:
- 禁止跳过 staging 层直接构建 mart(如
raw → dim_customers) - 测试仅运行在 dev target,避免污染生产数据
- 重复逻辑(如时间窗口计算)必须抽象为宏
- 监控
source freshness而非仅关注模型运行状态
涉及支付、删除、部署等外部操作时,技能会先展示目标与影响范围,并等待用户显式确认。
使用场景
- 需要将原始数据表按 staging、intermediate、marts 三层组织,并统一命名前缀时
- 要在 dbt 模型中添加 not null、unique、relationships 等数据质量测试时
- 处理百万行以上的大表,需要设计增量模型以避免全表扫描性能损耗时
- 需要为 dbt 模型和列补充描述,并生成清晰的数据血缘文档时
适合人员
- 数据工程师:需要设计和维护 dbt 数据转换管道,确保模型分层清晰、逻辑可复用
- 数据分析师:需要理解现有 dbt 模型的业务逻辑,编写可靠的中间层查询
- 数据架构师:需要为团队制定 dbt 项目结构规范,定义测试策略和文档标准
- 数据库管理员:需要优化大表的增量处理策略,监控数据新鲜度和模型性能