2、质量规则基础概念:数据质量维度与规则定义

2.1 数据质量四大核心维度

在工程分析平台中,数据质量并非单一指标,而是由多个维度共同刻画。业界通常将数据质量归纳为完整性、准确性、一致性和及时性四个核心维度。理解每个维度的内涵,是定义质量规则的前提。

维度 定义 工程分析平台典型场景 违反后果
完整性 数据记录、字段或属性是否存在缺失 传感器上报数据缺少时间戳、设备ID为空 无法关联事件序列,分析结果偏差
准确性 数据值是否真实反映客观事实或预期范围 温度传感器读数超出物理极限(如-300°C) 触发误报警,误导运维决策
一致性 同一实体在不同系统或不同时间点的数据是否逻辑自洽 设备A在日志中状态为“运行”,在监控库中为“停机” 数据冲突,根因分析失效
及时性 数据从产生到可被消费的延迟是否满足业务SLA 实时告警数据延迟超过5分钟 错过故障响应窗口,造成生产事故
工程提示:在定义质量规则时,建议优先从完整性和准确性入手,这两个维度最容易通过单表或单字段规则捕获异常。一致性和及时性通常需要跨表、跨系统或时间窗口校验,规则复杂度更高。

2.2 数据质量维度关系图

下图展示了四大维度在工程分析平台中的层次关系与数据流向。完整性是基础,准确性是核心,一致性是跨系统协同的保障,及时性是实时场景的生命线。

数据质量四大维度关系图 数据质量四大维度关系图 数据质量 完整性 准确性 一致性 及时性 维度优先级与依赖关系 完整性 → 准确性 → 一致性 → 及时性 缺失数据无法验证准确,不一致的数据无法保证及时性

2.3 质量规则定义与分类

质量规则是将数据质量维度量化为可执行校验逻辑的载体。在工程分析平台中,规则通常按校验粒度和校验时机进行分类。

2.3.1 按校验粒度分类

  • 字段级规则:针对单个字段的值域、格式、非空等校验。例如:device_id IS NOT NULL、temperature BETWEEN -50 AND 150。
  • 记录级规则:针对单条记录内多个字段的逻辑关系。例如:start_time < end_time、status = 'running' AND cpu_usage > 0。
  • 表级规则:针对单表内多条记录之间的统计特征。例如:COUNT(*) > 0、AVG(latency) < 1000。
  • 跨表级规则:针对多表之间的外键关联或数据一致性。例如:alert.device_id IN (device.id)、SUM(order.amount) = SUM(payment.amount)。

2.3.2 按校验时机分类

校验时机 触发方式 适用场景 延迟要求
实时校验 数据写入时触发 流式数据、告警、实时监控 毫秒~秒级
准实时校验 微批次调度(如每5分钟) ETL中间表、聚合结果 分钟级
离线校验 定时任务(如每日凌晨) 全量数据对账、历史数据回溯 小时~天级
规则定义最佳实践:每条质量规则应包含以下元数据:规则ID、所属维度、校验粒度、校验时机、SQL/表达式、预期结果、严重级别(P0/P1/P2)、告警接收人。建议将规则元数据存储在配置中心或规则引擎中,便于统一管理和版本迭代。

2.4 规则分类与维度映射矩阵

将规则分类与四大维度进行映射,有助于快速定位规则归属,避免重复定义。下表展示了常见规则类型与维度的对应关系。

规则类型 完整性 准确性 一致性 及时性 示例
非空校验 ✓ field IS NOT NULL
值域校验 ✓ value BETWEEN 0 AND 100
格式校验 ✓ REGEXP_LIKE(phone, '^1[3-9]\\d{9}$')
唯一性校验 ✓ ✓ COUNT(DISTINCT id) = COUNT(*)
外键关联校验 ✓ fk IN (SELECT pk FROM ref_table)
延迟校验 ✓ event_time >= NOW() - INTERVAL 5 MINUTE
统计分布校验 ✓ AVG(duration) < 3 * STDDEV(duration)

2.5 规则定义示例(SQL表达式)

以下是在工程分析平台中实际使用的质量规则SQL示例,涵盖四个维度。

-- 完整性:设备上报数据必须包含时间戳
SELECT device_id, COUNT(*) AS total, SUM(CASE WHEN ts IS NULL THEN 1 ELSE 0 END) AS missing_ts
FROM sensor_raw
WHERE dt = '2025-03-01'
GROUP BY device_id
HAVING missing_ts > 0;

-- 准确性:温度值必须在物理范围内
SELECT device_id, ts, temperature
FROM sensor_raw
WHERE temperature < -50 OR temperature > 150;

-- 一致性:告警表中的设备状态必须与设备表一致
SELECT a.alert_id, a.device_id, a.status, d.status AS expected_status
FROM alert a
LEFT JOIN device d ON a.device_id = d.id
WHERE a.status != d.status;

-- 及时性:数据到达时间与事件时间之差超过5分钟
SELECT device_id, event_time, arrival_time,
       TIMESTAMPDIFF(MINUTE, event_time, arrival_time) AS delay_min
FROM sensor_stream
HAVING delay_min > 5;
常见陷阱:在定义准确性规则时,不要只依赖单字段值域校验。例如,温度传感器在断电时可能上报0°C,这个值在值域内但实际是无效数据。建议结合变化率校验(如温度变化超过20°C/秒视为异常)或上下文校验(如设备状态为offline时,温度值应被忽略)。

2.6 规则生命周期管理

质量规则不是一次性定义的,需要持续迭代。下图展示了规则从定义到废弃的完整生命周期。

质量规则生命周期管理 质量规则生命周期管理 规则定义 规则测试 规则上线 监控告警 规则废弃 反馈迭代:根据告警误报率调整规则阈值或逻辑

2.7 本章小结

  • 数据质量四大维度——完整性、准确性、一致性、及时性——是定义质量规则的基石。
  • 规则按校验粒度分为字段级、记录级、表级、跨表级;按校验时机分为实时、准实时、离线。
  • 每条规则应包含完整的元数据,并映射到对应的质量维度,避免规则冗余或冲突。
  • 规则需要经历定义→测试→上线→监控→废弃的完整生命周期,并通过反馈回路持续优化。