文章
数据质量监控命名规范
📐 一、标准化命名规范(4段式结构)
[业务实体]_[字段/主题]_[质量维度]_[规则标识]| 段位 | 说明 | 规范 | 示例 |
|---|---|---|---|
| 1. 业务实体 | 数据归属的主表/业务对象 | 统一中文,去除前缀冗余 | 联系人、联系方式、联系方式来源 |
| 2. 字段/主题 | 校验的具体字段或逻辑组 | 字段用英文名,逻辑组用中文 | company_info_id、锁定信息、默认标识 |
| 3. 质量维度 | 数据质量的核心分类(见下方字典) | 固定枚举值 | 完整性、有效性、一致性、唯一性 |
| 4. 规则标识 | 具体校验逻辑的简明描述 | 去除“检测/性”等冗余词 | 外键关联、非空、联动逻辑、格式校验 |
📊 二、质量维度标准字典(建议固化到元数据)
| 维度 | 英文 | 适用场景 | 典型规则 |
|---|---|---|---|
| 完整性 | Completeness | 数据是否存在、是否缺失、是否孤立 | 非空、外键关联、孤儿数据、记录数波动 |
| 有效性 | Validity | 数据是否符合格式/码值/业务定义 | 格式校验、枚举值/码值范围、正则匹配 |
| 一致性 | Consistency | 跨字段/跨表逻辑是否自洽 | 状态与时间联动、默认值唯一、逻辑互斥 |
| 唯一性 | Uniqueness | 业务主键或自然键是否重复 | 主键唯一、业务键去重、联合唯一 |
🔄 三、现有规则标准化映射表
| 原规则名 | ✅ 标准化命名 | 质量维度 | 优化说明 |
|---|---|---|---|
联系人-company_info_id-外键完整性 | 联系人_company_info_id_完整性_外键关联 | 完整性 | 明确为外键引用校验 |
联系人-full_name-未知集合唯一性 | 联系人_full_name_唯一性_指定集合 | 唯一性 | “未知集合”语义模糊,建议按实际业务替换(如黑名单集合/测试集合) |
联系人-full_name-非空性 | 联系人_full_name_完整性_非空 | 完整性 | 去除冗余“性”字 |
联系人-锁定人-锁定时间联合完整性 | 联系人_锁定信息_一致性_联动逻辑 | 一致性 | 跨字段逻辑归属“一致性”维度 |
联系人-置顶-置顶时间联合检测 | 联系人_置顶信息_一致性_联动逻辑 | 一致性 | 同上,统一命名模板 |
联系人-全部隐藏-隐藏时间联合检测 | 联系人_隐藏信息_一致性_联动逻辑 | 一致性 | 同上 |
联系人-微信申请发送-微信号联合检测 | 联系人_微信申请_一致性_联动逻辑 | 一致性 | 状态与账号的依赖关系 |
联系人-联系方式-唯一性检测 | 联系方式_联系方式_唯一性_业务主键 | 唯一性 | 明确为业务主键去重 |
联系人-联系方式-无头数据检测 | 联系方式_联系方式_完整性_孤儿数据 | 完整性 | 行业术语为“孤儿/孤立数据” |
联系人-联系方式-默认标识数量异常检测 | 联系方式_默认标识_一致性_唯一默认值 | 一致性 | 本质是业务约束一致性 |
联系人-联系方式-手机号格式检测 | 联系方式_手机号_有效性_格式校验 | 有效性 | 统一格式类规则后缀 |
联系人-联系方式-固话号格式检测 | 联系方式_固话号_有效性_格式校验 | 有效性 | 同上 |
联系人-联系方式-邮箱格式检测 | 联系方式_邮箱_有效性_格式校验 | 有效性 | 同上 |
联系人-联系方式-微信格式检测 | 联系方式_微信号_有效性_格式校验 | 有效性 | 同上 |
联系人-联系方式-来源-无头数据检测 | 联系方式来源_来源记录_完整性_孤儿数据 | 完整性 | 实体名拆分清晰 |
联系人-联系方式-来源-唯一性检测 | 联系方式来源_来源记录_唯一性_业务主键 | 唯一性 | 同上 |
联系人-联系方式-来源-码值范围检测 | 联系方式来源_来源渠道_有效性_码值校验 | 有效性 | 明确为字典/枚举校验 |
🛠 四、工程化落地建议
1. 规则配置化(强烈推荐)
不要将规则名硬编码在 SQL 中,建议建立质量规则元数据表:
CREATE TABLE dq_rule_metadata (
rule_id VARCHAR(50) PRIMARY KEY COMMENT '规则唯一编码',
rule_name VARCHAR(200) COMMENT '标准化规则名(4段式)',
entity_name VARCHAR(50) COMMENT '业务实体',
field_name VARCHAR(50) COMMENT '字段/主题',
quality_dim VARCHAR(20) COMMENT '质量维度:完整性/有效性/一致性/唯一性',
rule_type VARCHAR(50) COMMENT '规则类型:外键关联/非空/联动逻辑/格式校验...',
sql_template TEXT COMMENT '校验SQL模板',
severity VARCHAR(10) COMMENT '严重等级:P0/P1/P2',
is_active BOOLEAN COMMENT '是否启用'
);执行监控时,通过脚本动态渲染 SQL,rule_name 直接从元数据读取,彻底解决命名不一致问题。
2. 告警与报表展示优化
- 对内(数据开发):显示完整 4 段式名称,便于定位
- 对外(业务/产品):在 BI 看板中映射为可读名称,例如:
联系人_锁定信息_一致性_联动逻辑→锁定状态与时间逻辑校验 - 告警分级:结合
severity字段,P0 规则失败阻断任务,P1/P2 仅告警不阻断。
3. 命名规范检查脚本(CI/CD 集成)
可在代码提交前加一个轻量校验:
import re
pattern = r"^[^_]+_[^_]+_(完整性|有效性|一致性|唯一性)_[^_]+$"
assert re.match(pattern, rule_name), f"规则名不符合规范: {rule_name}"✅ 总结
- 采用
实体_字段_维度_标识4段式结构,用_分隔便于程序解析。 - 严格对齐 完整性/有效性/一致性/唯一性 四大质量维度。
- 去除“检测/性/异常”等冗余词,统一使用
外键关联、非空、联动逻辑、格式校验、孤儿数据等标准术语。 - 强烈建议规则配置化+元数据管理,避免硬编码导致后期维护成本指数级上升。