贝利信息

SQL 数据校验是否应该自动化?

日期:2026-01-26 00:00 / 作者:舞姬之光
必须自动化SQL结果校验,因人工易漏错、不可复现、难追溯;需遵循断言优先、避免隐式转换、时间范围对齐三原则,并纳入CI/CD流程管理。

应该,而且必须自动化——手工核对 SQL 查询结果在数据量稍大或校验逻辑稍复杂时,几乎必然漏错、不可复现、无法追溯。

为什么人工校验 SQL 结果不可靠

人眼比对两列数字或几十行文本,容易跳行、忽略空格/大小写/时区差异;临时写的校验 SQL 没有版本管理,下次想复现可能连 WHERE 条件都记不清;更关键的是,没人会每天手动跑一遍「昨日订单金额 = 支付表 sum + 退款表 sum」这种逻辑。

用 SQL 写校验逻辑的三个关键原则

校验不是写业务查询,目标是“快速暴露不一致”,不是“查得全”。重点在断言(assertion)而非展示。

自动化执行不能只靠定时 SQL 脚本

光把校验语句塞进 Airflow 的 PostgresOperator 不够——失败了没人知道,通过了也没留痕,更没法关联到具体数据任务。

最常被忽略的是校验逻辑本身的变更管理——它和业务代码一样需要 Git 提交、Code Review、测试环境预跑。一旦校验 SQL 出错,它就会变成“假阴性”的盲区,比不校验还危险。