SuperAPI AI 工具集

testing-dbt-models

测试与质量

查看项目

更新于 10-15 16:48

技能介绍

用途:为 dbt 模型补充 schema 测试和数据质量校验,降低脏数据风险。资料强调每个模型至少应有一个测试,主键需要同时具备 unique 与 not_null。

主要能力与工作流:先研究项目既有测试风格,用 find . -name "schema.yml" -exec grep -l "tests:" {} ; 定位含测试的 schema.yml,查看 tests/ 目录与 packages.yml 以了解自定义测试。再阅读模型 SQL,识别主键、外键、分类列、日期列与业务关键字段,并检查该模型已有测试。随后按列类型选测试:主键用 unique、not_null;外键用 not_null、relationships;分类列用 accepted_values;必填字段与时间戳用 not_null;布尔值可用 accepted_values: [true, false]。

写入与验证:在 schema.yml 中按项目既有 YAML 风格编写测试,之后运行 dbt test --select <model_name>,需要连上游时用 dbt test --select +<model_name>,并据失败类型修复,如唯一性失败去重、not_null 失败做 COALESCE 或过滤、relationships 失败处理孤立记录。

测试类型:支持内置通用测试(unique、not_null、accepted_values、relationships)、自定义通用测试(如 dbt_utils.expression_is_true、dbt_utils.recency)以及 singular 测试(如 tests/assert_positive_revenue.sql 中筛选异常记录)。

限制与注意:不应先入为主添加测试而忽略项目既有模式;YAML 格式需保持一致;accepted_values 需与相关方确认,避免硬编码;项目未使用 dbt_utils 时不要添加对应测试。资料未提供安装方式、收费与平台信息。