3. 数据质量审计流程:审计流程总览
数据质量审计不是一次性的检查,而是一个闭环、可重复的治理过程。本章将完整拆解审计流程的六个核心阶段——计划、采集、分析、评估、修复、监控,明确每个阶段的输入输出、关键活动以及角色职责,为后续章节的 SQL 实战打下流程基础。
3.1 六阶段审计流程总览
整个审计流程以“发现问题→定位根因→修复缺陷→持续预防”为循环逻辑,每个阶段都依赖前一阶段的输出,并产生下一阶段所需的输入。
3.2 各阶段输入、输出与核心活动
下表详细列出每个阶段的输入工件、输出产物以及核心活动,帮助团队在落地时对齐交付物。
| 阶段 | 输入 | 核心活动 | 输出 |
|---|---|---|---|
| ① 计划 | 业务需求文档、数据字典、元数据清单 | 确定审计范围、选择质量维度、制定规则模板、分配资源 | 审计计划书、质量规则清单、角色分工表 |
| ② 采集 | 审计计划书、源数据库连接信息、SQL 脚本模板 | 编写采集 SQL、执行数据抽样、收集元数据统计信息 | 原始数据集、抽样结果表、采集日志 |
| ③ 分析 | 原始数据集、质量规则清单、阈值配置 | 运行质量维度 SQL、计算完整性/准确性/一致性等指标、标记异常记录 | 质量分析报告、异常明细表、维度评分 |
| ④ 评估 | 质量分析报告、业务容忍度阈值、历史基线 | 对比阈值、判定严重等级、确定是否触发修复流程 | 评估结论书、优先级排序列表、修复决策 |
| ⑤ 修复 | 评估结论书、异常明细表、数据血缘图谱 | 编写修复 SQL、执行数据订正、回滚验证、更新元数据 | 修复脚本、变更记录、修复后验证报告 |
| ⑥ 监控 | 修复后验证报告、监控规则、告警配置 | 部署周期性监控 SQL、设置告警阈值、生成监控看板 | 监控看板、告警记录、周期性质量报告 |
实践要点:“采集”阶段最容易出现性能问题。建议对千万级以上的表使用 TABLESAMPLE 或 WHERE 条件过滤进行分层抽样,避免全表扫描导致生产库抖动。
3.3 角色与职责矩阵
数据质量审计需要跨团队协作。以下矩阵明确了数据治理委员会、数据所有者、数据管家、数据分析师和数据工程师在六个阶段中的主要职责。
关键角色说明:
- 数据管家 (Steward) 是审计流程的核心执行者,负责编写 SQL 脚本、执行采集与分析、实施修复。
- 数据所有者 (Owner) 对评估结论和修复决策拥有最终批准权。
- 数据工程师 在采集和监控阶段提供技术支撑,如优化查询性能、配置监控作业。
3.4 流程落地检查清单
在启动第一次审计前,建议团队对照以下清单完成准备工作:
- 计划阶段:是否已定义至少 3 个核心质量维度(如完整性、准确性、一致性)?
- 采集阶段:是否已确定抽样策略(如 5% 随机抽样 + 分层条件)?
- 分析阶段:是否已准备 SQL 规则模板库(如空值检测、重复检测、外键违规检测)?
- 评估阶段:是否已与业务方确认可接受的阈值(如客户表完整率 ≥ 99.5%)?
- 修复阶段:是否已制定回滚方案和变更审批流程?
- 监控阶段:是否已配置至少一个周期性监控看板(如每日凌晨自动运行)?
常见陷阱:跳过“评估”阶段直接进入修复,容易导致修复优先级混乱。务必先根据业务影响度对异常进行 P1~P4 分级,再决定修复顺序。
3.5 流程与 SQL 的衔接点
在后续章节中,每个阶段都会对应具体的 SQL 实现。以下是各阶段与 SQL 技术的映射关系:
| 阶段 | 典型 SQL 技术 | 对应章节 |
|---|---|---|
| ② 采集 | SELECT ... TABLESAMPLE、ROW_NUMBER() 分层抽样 |
第 5 章 |
| ③ 分析 | COUNT(NULL)、DISTINCT、OUTER JOIN 检测 |
第 6~8 章 |
| ⑤ 修复 | UPDATE ... JOIN、MERGE、CTE 回滚 |
第 10~12 章 |
| ⑥ 监控 | CREATE EVENT、SCHEDULER、VIEW 看板 |
第 13 章 |