策略一:数据标准化与规范制定
数据标准化,说白了就是给数据立规矩。没有规矩,数据就是一盘散沙。我见过太多项目,前期图省事跳过这步,后期光数据清洗就耗掉一半时间。
这一节,我们聊聊怎么把规矩立好、立对。
命名规范:给数据起个好名字
命名这事,看着简单,坑却不少。我接手过一个项目,表名叫 t_1、t_2,字段名有中文、有拼音、还有英文缩写。你想想看,三个月后谁还记得 t_1 是什么?
我个人习惯用这套规则:
- 表名:业务域_模块_用途,全小写,下划线分隔。比如
order_payment_detail - 字段名:小驼峰或下划线,语义清晰。比如
user_id、create_time - 禁止:保留字、特殊字符、纯数字开头
核心原则:命名要自解释。看到名字,不用查文档就知道它存的是什么。
格式规范:统一数据的外衣
格式不一致,是数据质量的头号杀手。同一个日期,有人写 2024-01-01,有人写 2024/1/1,还有人写 01/01/2024。合并报表时,光解析日期就能让你崩溃。
我建议至少统一这几类:
| 数据类型 | 推荐格式 | 示例 |
|---|---|---|
| 日期 | YYYY-MM-DD | 2024-01-01 |
| 时间戳 | YYYY-MM-DD HH:mm:ss | 2024-01-01 14:30:00 |
| 金额 | DECIMAL(18,2) | 1234.56 |
| 手机号 | VARCHAR(11) | 13800138000 |
小技巧:在数据库层面用 CHECK 约束或触发器强制格式,别指望业务系统自觉遵守。
编码规范:让数据有据可查
编码规范,就是给枚举值一个标准答案。比如性别,有人用 0/1,有人用 M/F,还有人用 男/女。数据一混,分析就乱。
我曾经在一个项目中,发现同一个状态字段有 7 种不同的编码方式。嗯,那周我基本都在写映射脚本。
编码规范要覆盖:
- 枚举值:统一编码表,比如性别用
0-未知、1-男、2-女 - 层级编码:比如地区编码用
110000(北京)、110100(北京市辖区) - 业务编码:订单号、客户号等,要有生成规则和校验位
避坑指南:我曾经见过一个系统,编码规则改了三次,历史数据全没回刷。结果同一张表里,同一个含义的编码用了三种格式。所以,编码规则一旦定下来,别轻易改。真要改,必须做全量数据迁移。
元数据管理:给数据做档案
元数据,就是数据的数据。它告诉你这张表是谁建的、什么时候建的、字段什么意思、从哪里来的。
没有元数据管理,数据就是黑盒。我见过一个团队,离职员工留下的表,没人敢动,因为谁都不知道里面存的是什么。
元数据管理至少包含:
- 技术元数据:表结构、字段类型、索引、分区信息
- 业务元数据:字段的业务含义、枚举值说明、数据来源
- 管理元数据:负责人、创建时间、更新频率、数据量级
我的习惯:每次建表,必须同时提交元数据文档。没有元数据,表不让上线。这规矩一开始执行很难,但坚持半年后,团队效率提升很明显。
数据字典建设:统一全公司的语言
数据字典,是数据标准化的最终成果。它像一本词典,所有人查同一个词,得到同一个解释。
数据字典要包含:
| 字段 | 说明 |
|---|---|
| 字段名 | 英文名称,如 user_id |
| 中文名 | 用户ID |
| 数据类型 | VARCHAR(32) |
| 业务含义 | 用户在系统中的唯一标识 |
| 枚举值 | 无 |
| 数据来源 | 用户注册服务 |
| 负责人 | 张三 |
数据字典要活起来,不能建完就扔。我建议用工具管理,比如 Apache Atlas 或者自建元数据平台。每次字段变更,字典必须同步更新。
知识体系总览
下面这张图,把数据标准化的核心逻辑串起来了。你可以看到,命名规范、格式规范、编码规范是基础,元数据管理是骨架,数据字典是最终交付物。
数据标准化这事,前期投入大,但回报也最大。规矩立好了,后面的数据清洗、数据集成、数据分析,都会顺畅很多。别等到数据乱成一锅粥了再回头补课,那时候成本可就高了。