1、元数据是什么:定义、分类与数据混乱的根源
说实话,我做了十几年数据架构,见过太多团队在数据治理上栽跟头。每次复盘,问题都指向同一个源头——元数据。很多人觉得元数据是理论概念,离实战很远。但我想说,你每天打交道的表结构、字段注释、ETL 调度日志,全是元数据。
这一节,我们先把元数据彻底讲透。
1.1 元数据的定义:数据的数据
元数据,英文叫 Metadata。字面意思就是“关于数据的数据”。
举个例子。你手机里有一张照片,照片本身是数据。但照片的拍摄时间、地点、相机型号、分辨率、文件大小——这些就是元数据。没有元数据,你根本不知道这张照片是什么时候拍的、在哪拍的。
核心定义:元数据是描述数据上下文、内容、结构、质量、血缘和生命周期的信息。它让数据从“一串数字”变成“有意义的资产”。
我在项目中遇到过一家电商公司,他们的订单表有 200 多个字段,但没有任何字段注释。新来的数据分析师根本不敢用,因为不知道“status=3”代表什么。这就是典型的元数据缺失导致的混乱。
1.2 元数据的三大分类
元数据不是铁板一块。按用途和来源,我习惯把它分成三类:技术元数据、业务元数据和操作元数据。这三者缺一不可。
| 分类 | 定义 | 典型示例 | 谁在用 |
|---|---|---|---|
| 技术元数据 | 描述数据的技术细节 | 表结构、字段类型、索引、分区、ETL 脚本、数据模型 | 数据工程师、DBA |
| 业务元数据 | 描述数据的业务含义 | 业务术语、指标定义、数据字典、业务规则、报表口径 | 数据分析师、业务人员 |
| 操作元数据 | 描述数据的操作过程 | 作业运行日志、调度记录、数据血缘、访问审计、变更历史 | 运维、数据治理团队 |
1.2.1 技术元数据
技术元数据是数据工程师的“施工图纸”。它告诉你数据长什么样、存在哪、怎么取。
举个例子,一张用户表的 DDL:
CREATE TABLE user_info (
user_id BIGINT COMMENT '用户ID',
user_name VARCHAR(64) COMMENT '用户名',
reg_date DATE COMMENT '注册日期',
status TINYINT COMMENT '状态: 1-正常, 2-冻结, 3-注销'
) COMMENT '用户信息表'
PARTITIONED BY (dt STRING);
这里的字段名、类型、注释、分区键,全是技术元数据。没有这些,你连表都建不起来。
我的习惯:每次建表,必须写 COMMENT。哪怕字段名再直观,也要写。因为半年后你自己都会忘。
1.2.2 业务元数据
业务元数据是“翻译官”。它把技术语言转成业务人员能看懂的话。
你想想看,业务方问“这个月的活跃用户是多少”,技术表里可能叫 active_user_cnt。但“活跃”的定义是什么?是登录一次就算,还是要有交易行为?这个定义就属于业务元数据。
我曾经在一家金融公司做咨询,他们的“逾期率”指标,风控部、财务部、运营部各有一套算法。开会时吵得不可开交。最后发现,问题出在业务元数据没有统一管理。
避坑指南:业务元数据必须由业务方和 IT 方共同维护。纯技术团队定义业务元数据,结果往往是“技术正确,业务看不懂”。
1.2.3 操作元数据
操作元数据记录数据的“一生”。从数据产生、流转、加工到销毁,每一步都有痕迹。
比如一个 ETL 作业:
- 什么时候开始跑?
- 跑了多久?
- 读了多少条数据?
- 写了多少条数据?
- 有没有报错?
- 依赖的上游表是什么?
这些信息就是操作元数据。没有它,数据出问题了你根本不知道从哪查起。
1.3 为什么数据会混乱?
好,定义和分类讲完了。现在聊聊核心问题——数据为什么混乱?
我总结下来,根源就四个字:元数据失控。具体表现有这几点:
- 元数据缺失——表没有注释,字段没有描述,指标没有定义。数据像一堆没有标签的零件。
- 元数据不一致——同一个字段,在 A 系统叫
user_id,在 B 系统叫uid,在 C 系统叫customer_no。你根本不知道它们是不是同一个东西。 - 元数据过时——表结构改了,但元数据没更新。文档里写的还是三年前的字段。
- 元数据孤岛——每个部门自己管自己的元数据,没有统一平台。数据血缘断了,出了问题找不到根因。
说白了,数据混乱不是数据本身的问题,而是描述数据的数据出了问题。
一句话总结:元数据是数据的“说明书”。说明书丢了、写错了、没人看,数据自然就乱了。
1.4 本章知识体系图
下面这张图,把元数据的定义、分类和混乱原因串在一起。建议你保存下来,后面每章都会用到这个框架。
1.5 本章小结
这一节我们讲了三个核心点:
- 元数据的定义——数据的数据,是数据的“说明书”。
- 三大分类——技术元数据(怎么存)、业务元数据(什么意思)、操作元数据(怎么跑)。
- 混乱的根源——元数据缺失、不一致、过时、孤岛化。
嗯,到这里,元数据的基础框架就搭好了。后面我们会一步步深入,讲怎么把这些元数据管起来、用起来。