用途:为 dbt 转换层开发提供可参考的模式,包括模型组织、增量策略和测试。
主要能力:
- 项目结构:示例包含 dbt_project.yml、profiles.yml 及 models(staging、intermediate、marts)、seeds、snapshots、macros、tests 等目录。
- 分层建模:staging 与数据源 1:1 并做轻量转换,intermediate 处理 join 与业务逻辑,marts 作为最终消费层;可用 +materialized 配置各层物化方式(view、ephemeral、table)。
- 源与命名:使用 source() 引用原始表,ref() 引用模型;staging 模型命名为 stg_<source>_<entity>,可定义 freshness 警告与错误阈值。
- 增量模型:通过 materialized='incremental'、unique_key 与 incremental_strategy(merge、delete+insert、append)实现增量更新,并用 is_incremental() 过滤新增数据。
- 快照:使用 snapshot 块与 timestamp 策略实现 SCD Type 2。
- 测试:支持列级与模型级测试,如 unique、not_null、dbt_utils.accepted_range、unique_combination_of_columns,也可编写返回失败行的自定义 SQL 测试。
- 宏:可定义如 cents_to_dollars、generate_schema_name 等可复用 SQL 宏。
- 常用命令:dbt run、dbt test、dbt build、dbt docs generate、dbt docs serve、dbt source freshness、dbt run --full-refresh、dbt deps 等,并支持通过 --select 按模型、标签或依赖选择执行范围。
- 最佳实践:使用 ref()/source()、为模型编写描述与 meta 信息(如 owner、pii)。
适用场景:数据仓库或分析工程的 dbt 建模、数据质量校验与增量数据处理。
限制:资料未提供该技能的安装方式、收费信息、平台限制或运行前置条件。