1. 元数据概述:定义、作用与分类
咱们正式开始。这门课叫《元数据标准与规范》,但第一件事,先把“元数据”三个字掰开揉碎了讲清楚。
你可能听过一句话——元数据是关于数据的数据。没错,但光这么讲太抽象。我换个说法,你想想看:你手机里有一张照片,照片本身是数据,那拍摄时间、地点、光圈、快门、GPS坐标——这些是什么?就是元数据。
说白了,元数据就是给数据贴的标签、写的说明书、画的索引卡。没有它,数据就是一盘散沙。
元数据的定义
我给个稍微正式点的定义,你记住就行:
元数据(Metadata)是关于数据的数据,是对数据内容、质量、条件、来源、结构、格式、语义、上下文、访问方式等信息的结构化描述。
我个人习惯把它比作图书馆的目录卡片。书在架子上,卡片告诉你书名、作者、分类号、在哪个区。没有卡片,你只能把整层楼的书翻一遍。数据也是这个道理。
元数据有几个关键特征,我列一下:
- 结构化:元数据本身遵循一定的格式和规范,不是随手写的备注
- 描述性:它描述的是数据的特征,而不是数据本身的内容
- 可复用:一份元数据可以被多个系统、多个场景反复使用
- 可互操作:不同系统之间能理解同一份元数据,这才有意义
我在项目中遇到过不少团队,做数据迁移的时候直接硬拖原始字段,结果到了新系统里,字段含义对不上、单位不一致、枚举值不匹配……全是坑。根源是什么?元数据没跟上。
元数据的作用
元数据到底能干嘛?我分成四个方面来讲。
1. 发现与定位
没有元数据,你连有什么数据都不知道。元数据就是数据的“地图”和“目录”,告诉你数据在哪、怎么找到它。
2. 理解与解释
人家给你一个数据集,你光看字段名“col_a”,你能懂吗?元数据告诉你“col_a 是用户年龄,单位是周岁,合法范围0-150”。这不就清楚了?
3. 管理与治理
元数据是数据治理的基础。谁创建的数据?什么时间?访问权限是什么?数据质量如何?这些都是元数据管理的内容。
4. 互操作与集成
两个系统要对接,格式要转换、语义要映射、字段要匹配。这些工作全依赖标准化的元数据。没有标准,你就只能写死代码、一个个硬映射,累死人。
元数据的核心分类
元数据怎么分类?业界通常从几个不同的维度去划分。我挑最常用的四种分类方式,你用这个表就能看明白。
| 分类维度 | 子类 | 解释 | 例子 |
|---|---|---|---|
| 按元数据的语法层面 | 语法元数据 | 描述数据格式、编码、结构、语法规则 | 文件是CSV还是JSON?编码是UTF-8还是GBK?使用什么XML Schema? |
| 按元数据的结构层面 | 结构元数据 | 描述数据实体之间的关系、字段定义、主键外键、层级 | 表结构定义、DDL脚本、ER图、对象关系映射 |
| 按元数据的语义层面 | 语义元数据 | 描述数据在现实世界中代表什么含义,包括概念、术语、本体、分类 | 字典表、编码规范、同义词、类层次结构 |
| 按元数据的使用层面 | 使用元数据 | 描述数据的使用方式、访问权限、生命周期、版本、溯源 | 数据创建时间、所有者、修改历史、数据血缘 |
这四种分类不是互斥的。实际上,你看到的大部分元数据标准(比如Dublin Core、DCAT、ISO 19115),都是同时覆盖了多个维度。
举个具体的例子
你有一个CSV文件,内容如下:
姓名,年龄,城市
张三,28,上海
李四,35,北京
那它的元数据可能是这样的:
-- 语法元数据
格式: CSV
分隔符: 逗号
编码: UTF-8
行尾符: LF
-- 结构元数据
表名: user_info
字段列表:
- 姓名: 字符串, 长度50, 非空
- 年龄: 整数, 范围0-150
- 城市: 字符串, 长度100
-- 语义元数据
年龄含义: 用户的周岁年龄
城市含义: 用户常住地,来自行政区划编码表
-- 使用元数据
创建者: 数据采集组
创建时间: 2024-01-15 10:30:00
更新频率: 日更新
访问权限: 内部公开
数据血缘: 来自XX系统用户注册接口
你明白了吧?每一类元数据解决不同的问题。语法元数据解决“这个文件怎么解析”;结构元数据解决“字段之间怎么关联”;语义元数据解决“这些数据到底是什么意思”;使用元数据解决“谁在用、怎么用、用多久”。
本章知识体系总览
下面这张图是我手绘的元数据结构总览图,把这一章的核心知识点串在一起,方便你建立整体认知。
这张图就是从这一章的知识点梳理出来的。你看,元数据定义是根基,四大作用是对外传递的价值,而四维分类则是内部组织理解元数据的框架。你之后学任何标准规范,都逃不开这四个维度。
好了,第一章的内容就到这里。打好这个基础,后面的章节我们再说具体怎么用标准去描述元数据、怎么用工具去管理元数据。