做数据这行的,肯定常听到“元数据”“数据元”“元模型”这三个词。
开会时有人说“元数据管理”,转头又有人提“数据元标准”,偶尔还穿插“元模型设计”,但真要问它们仨到底啥区别,估计不少人说不清楚。
我见过不少团队,就是因为这三个概念没理清楚,做数据治理时走了不少弯路。今天我就用最实在的话,从定义、用处、具体怎么用这三个角度,把这三个概念拆解开。
都是干货,保证你看完就明白,以后跟同事聊起这事儿,心里能有个数。
说白了,元数据就是“关于数据的数据”。你别觉得这是绕口令,它的意思很简单:
任何一个数据资产,不管是一张表、一个字段,还是一个ETL任务,只要你想描述它的各种信息,这些信息合起来就是元数据。
我给你举个实际例子,比如公司数据库里有张“用户订单表”,它的元数据至少得包括这些:
这些信息看着零散,但合在一起,就能让你对“用户订单表”有个全面的了解。
那么元数据到底有啥用?
简单说,元数据就是帮你解决“数据从哪儿来、能干啥、怎么用”这三个问题的:
实际工作中怎么用元数据的?最常见的场景有三个:
数据元,也叫数据元素,是描述一个具体业务属性的最小单元。
必须满足两个条件:
举个例子,“用户手机号”就是一个典型的数据元,它的定义得写清楚:
你看,这样定义下来,不管是业务人员还是技术人员,看到这个数据元就知道它指的是什么,格式有啥要求。
数据元有啥用呢?
用过来人的经验告诉你,数据元最大的作用就是解决“各说各话”的问题。
同一个概念,不同部门可能叫不同的名,这样一来,跨部门调数据的时候就容易乱,算出来的结果也对不上。
而数据元给每个业务概念定一个统一的“标准”,不管哪个部门用,都得按这个标准来。
比如把“用户唯一标识”定义成数据元:
全公司都用这个标准,数据口径就统一了。
数据元主要在三个地方用得多:
公司层面的《数据标准手册》里,大部分内容都是数据元的定义。
比如银行的标准里:
“身份证号”这个数据元必须符合国家标准GB 11643-1999,长度18位,最后一位可以是X。
主数据(比如“用户”“商品”)的核心信息都是由数据元组成的。
比如“用户主数据”里:
就包含“用户姓名”“身份证号”“手机号”等多个数据元,每个数据元都按标准定义,保证主数据的一致性。
系统之间传数据,接口里的每个字段其实都是数据元。
比如支付接口里的“交易金额”,必须按数据元的标准来定义:
类型是decimal,长度18位,保留2位小数,这样支付系统和账务系统对接时才不会因为格式问题出错。
元模型,简单说就是“模型的模型”。它不管具体的数据内容,只规定“怎么设计一个合理的模型”,包括:
比如数据仓库的分层模型,就有一套元模型规则:
元模型有啥实际用处呢?
元模型是为了让模型设计“有章可循”,不然大家就会各按各的想法来,最后整个数据体系乱成一锅粥。
没有元模型的话,可能出现这种情况:
团队设计的“用户表”用“user_id”当主键,B团队设计的“用户信息表”用“u_id”当主键。
这样一来:
两个表明明说的是同一批用户,却没法关联。
有了元模型就不一样了,它会提前定好规则:
也可以借助数据集成工具FineDataLink:
通过数据关联算子实现多表跨库关联,关联方式包括左连接(LEFT JOIN)、右连接(RIGHT JOIN)、内连接(INNER JOIN)、全外连接(FULL OUTER JOIN)四种。如果想在数据关联算子中查看关联效果,结果准确时,可以在DB表输入算子的样本设置按钮中,读取全量数据。
这样一来,不管哪个团队设计模型,都得按这个规则来,模型之间才能兼容,数据才能打通。
元模型主要有三个应用场景:
公司搞数据建模(比如维度建模、分层架构)时,元模型就是底层规则。
比如用星型模型设计销售主题,元模型会规定:
平台本身也需要元模型来定义“元数据该怎么存”。
比如FineDataLink中要管理“表元数据”和“字段元数据”,元模型就会规定:
现在很多低代码平台里,拖拽一个“表单”组件就能生成数据库表,背后就是元模型在起作用。
比如你选了“手机号”字段:
平台根据元模型就知道要生成11位的字符串类型,还会自动加校验规则。
可能你看到这儿还是有点晕,我总结一张表,对比一下就清楚了:
简单来说:
别看它们各管一块,实际工作中是环环相扣的,从模型设计到数据应用,缺一不可:
先按元模型的规则搭框架,比如事实表要有度量字段,再用数据元定义具体字段,比如“订单金额”按数据元标准设为decimal类型,最后把设计好的模型信息(表名、存储路径等)存成元数据。
开发人员照着FineDataLink的元模型设计表结构,按数据元的标准定义每个字段,开发过程中产生的信息,比如谁开发的、什么时候上线的等,会自动变成元数据。
业务人员通过元数据找到需要的表,看数据元理解字段含义,比如“status”字段的取值规则,对照元模型明白表的设计逻辑。
通过元数据监控表的变更,用数据元校验数据质量,按元模型检查模型是否合规,比如事实表没加外键。
元数据、数据元、元模型这三个概念,看着有点绕,但其实都是数据治理的基础。
搞懂它们的区别,可以让数据管理更顺——元数据让数据能用起来,数据元让数据能统一起来,元模型让数据能建得合理起来。
以后再听到有人把这三个词混着说,你就可以跟他好好聊聊:它们不是一回事,但缺了谁都不行。数据这活儿,基础打牢了,后面才能少走弯路,你说对不?
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。