Agent Skills
返回列表
💻

dbt-audit-helper 迁移对等校验

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/compare-dbt-models-and-warehouse-relations-before-trusting-migration-parity-with-dbt-audit-helper。

技能介绍

要解决的具体问题

在 dbt 项目重构或替换数据源时,团队常默认“新旧模型迁移是对等的”,但实际可能隐藏三类风险:

  • 列结构不一致:列名相同但顺序不同,或某些列仅存在于新旧关系中的一侧。
  • 数据语义偏差:列名相同但行值分布、聚合结果存在差异,却未被常规 dbt 构建捕获。
  • 验证滞后:直到部署后下游报表异常,才发现迁移对等假设不成立,回滚成本高。

技能如何工作

该技能允许代理在部署前主动运行三类验证操作,将“信任对等”转化为“验证对等”:

  • 执行 dbt 对等检查:调用 dbt-audit-helper 的比较宏,直接在 dbt 环境中对比新旧模型或关系。
  • 关系差异比较:识别两侧关系的列集合差异,明确哪些列缺失或多余,避免“隐式忽略”。
  • 行或值比较:通过行数统计、值分布或聚合结果对比,验证数据内容层面的一致性,而非仅看结构。

关键操作步骤包括:

  • 构造比较用的列列表时,使用 dbt_utils.get_filtered_columns_in_relation,既能排除少量无关列,也能处理列数较多的情况。
  • 若某些列仅存在于一侧关系,通过 exclude_columns 参数明确排除,避免比较失败或结果误导。

适用边界与注意点

该技能的有效性依赖两个前提:两侧关系的列名必须完全相同(顺序可不同);同时需要预先配置好 dbt Core、仓库凭证和 dbt-audit-helper 包。

需注意:

  • 若列名不一致(如大小写、前缀差异),需先在 dbt 模型中统一列名后再比较,否则验证结果无效。
  • 它不能替代完整的数据质量测试,仅聚焦于“迁移对等”的即时验证,长期数据一致性仍需结合其他测试策略。

从内容到行动

建议将验证步骤嵌入迁移前的 CI 流程,每次修改 dbt 模型或数据源时自动运行该技能,避免对等假设未经验证就进入生产环境。

使用场景

  • 重构 dbt 模型后,在部署前验证新旧模型行数与聚合值是否一致
  • 替换数据源时,比较新旧仓库关系的列集合差异,确认是否存在缺失列
  • 修改 dbt 模型列顺序后,执行关系差异检查,确保迁移未引入隐藏的结构偏差
  • 在 CI 流程中集成对等检查,每次模型变更后自动验证行或值比较结果

适合人员

  • 数据工程师:需要在 dbt 模型重构后,部署前验证迁移对等性,避免下游数据异常
  • 数据平台负责人:负责 dbt 项目迭代,需确保数据源替换或模型修改不会破坏现有报表
  • 分析工程师:日常维护 dbt 模型,需要在修改列结构或聚合逻辑后验证数据一致性
  • DevOps 工程师:将 dbt 验证步骤嵌入 CI/CD 流程,确保迁移对等检查自动化执行