3. 数据质量规则体系分类
数据质量规则是灰度发布与API对接的核心资产。一套完整、可量化的规则体系,能够将抽象的数据质量目标转化为可执行、可验证的检查逻辑。本章从五个维度对规则进行分类:完整性、准确性、一致性、及时性和唯一性,并给出每类规则的典型场景、度量指标与API对接示例。
3.1 完整性规则
完整性规则用于检测数据是否存在缺失或空值,确保关键字段在业务允许的范围内非空。它是数据质量的基础防线。
| 规则子类 | 描述 | 典型度量指标 |
|---|---|---|
| 必填字段完整性 | 核心业务字段不允许为NULL或空字符串 | 字段空值率 ≤ 阈值 |
| 记录级完整性 | 实体记录必须包含所有必需属性 | 完整记录占比 |
| 引用完整性 | 外键值必须在主表中存在对应记录 | 孤儿记录数 = 0 |
灰度发布建议:完整性规则通常优先上线,因为缺失数据会直接导致下游计算错误。建议在灰度阶段先对增量数据启用“必填字段完整性”检查,观察误报率后再扩展至全量。
3.2 准确性规则
准确性规则验证数据值是否真实反映业务事实,包括格式校验、值域校验、业务逻辑校验等。
- 格式校验:如手机号11位、邮箱包含@、日期格式为yyyy-MM-dd。
- 值域校验:如年龄在0~150之间、性别枚举为M/F/U。
- 业务逻辑校验:如订单金额 = 单价 × 数量、出生日期早于当前日期。
- 统计分布校验:如字段均值、标准差在历史基线±3σ范围内。
// 准确性规则示例:金额字段业务逻辑校验(伪代码)
function checkOrderAmount(order) {
const expected = order.unitPrice * order.quantity;
const actual = order.totalAmount;
const tolerance = 0.01;
return Math.abs(expected - actual) <= tolerance;
}
3.3 一致性规则
一致性规则确保同一数据在不同系统、不同时间点或不同表达方式下保持逻辑统一。它是数据集成与数据迁移场景中的关键质量维度。
| 规则子类 | 场景举例 | 检查方式 |
|---|---|---|
| 跨系统一致性 | CRM与ERP中的客户名称一致 | 字段级比对 |
| 时间一致性 | 订单创建时间 ≤ 发货时间 ≤ 签收时间 | 时间序列约束 |
| 编码一致性 | 同一产品在不同系统中的SKU编码映射正确 | 映射表校验 |
常见陷阱:一致性规则容易因源系统数据延迟而产生误报。在灰度发布时,建议为跨系统一致性规则设置“时间窗口容忍度”,例如允许5分钟内的数据同步延迟。
3.4 及时性规则
及时性规则衡量数据从产生到可被消费的时间延迟,确保数据在业务决策窗口内可用。
- 数据到达延迟:从业务事件发生到数据进入目标系统的时间差。
- 数据加工延迟:从数据入库到完成清洗、转换、加载的时间。
- 数据过期检查:数据时间戳是否在业务允许的有效期内。
-- 及时性规则SQL示例:检查订单数据是否在30分钟内到达数仓
SELECT order_id, create_time, dw_receive_time
FROM fact_order
WHERE dw_receive_time IS NOT NULL
AND (dw_receive_time - create_time) > INTERVAL '30 minutes';
3.5 唯一性规则
唯一性规则确保数据实体在指定范围内不重复,是主键与业务键的核心保障。
| 规则子类 | 检查粒度 | 典型阈值 |
|---|---|---|
| 主键唯一性 | 单表主键字段 | 重复记录数 = 0 |
| 业务键唯一性 | 业务自然键组合 | 重复率 ≤ 0.01% |
| 联合唯一性 | 多字段组合 | 重复组合数 = 0 |
灰度发布优先级:唯一性规则在灰度阶段建议先设置为“告警”模式而非“阻断”模式,避免因历史脏数据导致全链路阻塞。待规则验证稳定后,再切换为“阻断”模式。
3.6 五维规则体系总览
以下SVG图展示了数据质量规则的五维分类体系及其在数据管道中的位置关系,帮助理解各规则之间的协作逻辑。
3.7 规则分类与API对接映射
在灰度发布与API对接实践中,每类规则对应不同的API校验端点与响应策略。下表总结了典型映射关系:
| 规则维度 | API校验端点 | 灰度阶段响应策略 | 生产阶段响应策略 |
|---|---|---|---|
| 完整性 | /v1/validate/completeness |
告警 + 跳过 | 阻断 + 返回400 |
| 准确性 | /v1/validate/accuracy |
告警 + 记录异常 | 阻断 + 返回422 |
| 一致性 | /v1/validate/consistency |
告警 + 异步比对 | 阻断 + 返回409 |
| 及时性 | /v1/validate/timeliness |
监控 + 日志 | 告警 + 延迟标记 |
| 唯一性 | /v1/validate/uniqueness |
告警 + 跳过重复 | 阻断 + 返回409 |
灰度策略要点:完整性、准确性、唯一性规则在灰度阶段建议使用“告警+跳过”模式,避免影响业务主流程;一致性规则因涉及跨系统比对,建议使用“异步比对”模式,不阻塞实时API响应;及时性规则在灰度阶段仅做监控,不触发阻断。