元数据是对某个潜在信息性对象做出的陈述。在浏览其他网页的时候会看到元数据被称之为 “数据的数据”。为了更好的描述元数据到底是什么东西,我以一本《Metadata》书作为例子进行说明。《Metadata》第二页记录着该书的 CIP 信息、作者、出版社、书号、定价、印次、字数等信息,而这些信息都是用于描述《Metadata》这本书的元数据。
一条元数据记录就是关于一个资源的主谓宾陈述集合。例如:达芬奇(宾语)是蒙娜丽莎(主语)的创作者(谓语)。
主数据、元数据与参考数据
元数据
元数据(meta-data)是描述企业数据的相关数据,指在IT系统建设过程中所产生的有关数据定义,目标定义,转换规则等相关的关键数据,包括对数据的业务、结构、定义、存储、安全等各方面对数据的描述。地市表这个实体的数据模型如何进行定义正是元数据所关心的范畴。
元数据可以说是企业的数据地图,它直接反映了企业中有什么样的数据,数据是如何存放的,例如,数据结构是什么样子,数据与业务之间的关系是怎么样,数据与数据之间的关系是怎么样,数据有什么样的安全需求,数据有什么样的存储需求。
主数据
主数据(main data)主要是指经实例化的企业关键数据。
我们在上面设计完成数据模型设计的“城市表”中填写了相应的城市数据,例如,北京、上海、广州、南宁等等。这些在城市表中填充的数据,正是组织中国地理协会的主数据,因为这些数据是中国地理协会这个组织的关键业务实体,它为组织的业务开展提供关联环境,而且它可能在企业业务开展过程中被反复引用。针对这些核心关键数据,组织和企业无论从数据的质量、一致性、可用性、管理规范等方面都应该有着最严格的数据要求。
主数据就是企业被不同运营场合反复引用关键的状态数据,它需要在企业范围内保持高度一致。它可以随着企业的经营活动而改变,例如,客户的增加,组织架构的调整,产品下线等;但是,主数据的变化频率应该是较低的。所以,企业运营过程产生过程数据,如生产过程产生各种如订购记录、消费记录等,一般不会纳入主数据的范围。当然,在不同行业,不同企业对主数据有不同的看法和做法,正如我们与国内大型航空企业的实施相关数据项目时,也在为航班动态是不是主数据而纠结不已。
个人觉得主数据具有跨行业也能存在能力,同时实例数据变更是低频的。 例如商品价格信息、会员信息是主数据,而订单信息不是主数据,它具有高频更新存在。因而怎么算高频就是一个仁者见仁智者见智的情况了,需要结合自己所在的行业进行判断。
参考数据——数据的字典
在本文引用的假设案例中,我们将会注意到刚才填写的地市这类数据有些列,如省份、城市类型等。如果没有缺少上下文的环境,我们是无法理解其具体含义,这时候我们往往引入参考数据(reference data)加以解释和理解。
参考数据是增加数据可读性、可维护性以及后续应用的重要数据。例如,你看到“性别”的这个字段,很可能是1代表男性、2代表女性。在许多企业中有这样的约定俗成,而更多的参考数据可能记录在开发人员和运营人员的大脑当中。但问题是一旦这些人离开,您系统里面的数据就成了一堆没有注释的天书。
大家可能觉得,这所谓参考数据不就是数据字典吗?对,我们在很多系统里面都会有这样和那样的数据字典。但是正是由于这些数据字典仅局限于个别系统而没有统一标准,从一个侧面间接造就了大量的数据孤岛。企业为了进行更有效率的数据整合、数据共享和数据分析应用,开始尝试对参考数据进行企业或者部门层面的整合和管理,利用参考数据集记录系统尝试为范围内的IT系统中的数据库提供统一的参考数据。
小结
主数据则是真实的企业业务数据,是企业的关键业务数据。
参考数据则是对数据的解释,针对一些数据范围和取值的数据解释,让人们容易读取相关的数据。
元数据是对数据的描述,用于描述企业数据的所有信息和数据,如结构、关系、安全需求等,除增加数据可读性外,也是后续数据管理的基础。
一般而言,企业中这三类数据与其它数据的数据量、质量需求,更新频率、数据生命周期的关系大致如下图:
中台与元数据
中台强调的是复用性,利用提高服务的重复使用,降低开发时间和提高工作效率。但现实生活中,大量的数据孤岛和重复建设存在,从而存在大量的数据指标定义不同带来的歧义问题。由于不同的项目 PM 管理风格迥异,存在有些必要信息没有进行存档,而是通过口口相传的不靠谱形式,信息准确性大打折扣。
数据中台建设中需要寻找共性数据,通过数据建模,将其进行抽取形成一张公共的数据大宽表。如何快速了解掌握数据关系,定位表与表之间的共性部分,往往需要对业务有一定的了解,但现实情况大量的开发人员只了解自己负责的那一个模块内容,对于其他人或者项目的内容一无所知。
而元数据就是为了消除二义性,同时,对元数据的管理,形成结构化的权威数据,降低数据传递成本和提高准确性。
常见元数据分类
- 元数据包括业务元数据、技术元数据和管理元数据。
- 常见的业务元数据包括:业务定义、业务术语、业务规则、业务指标等。
- 常见的技术元数据包括:存储位置、数据模型、数据库表、字段长度、字段类型、ETL脚本、SQL脚本、接口程序、数据关系等。
- 常见的管理元数据包括:数据所有者、数据质量定责、数据安全等级等。
业务问题
在没有元数据管理的情况下,从使用问题、管理问题、数据问题等三个方面进行说明:
使用问题
- 查看表结构信息不方便(查看、检索、表复用)
- 表依赖关系不清楚(血缘)
- 表信息缺少(表维护者,表状态)
管理问题
- 表权限管理
- 数据管理
- 数据质量监控
数据问题
- 建表规则混乱,没有统一标准
- 表结构变更之后,信息不同步
如何设计元数据管理
数据治理
数仓构建
名词说明
业务板块
定义数据仓库的名称和业务空间,以企业内一个相对独立的业务为分配单元。例如,如果业务涉及零售、文娱,且系统间相对独立,则需要构建两个业务板块,即零售、文娱。如果业务仅涉及零售,且业务内的系统间隔离较少,则只需要构建一个业务板块,即零售。
公共定义
定义企业构建数据所需的全局概念对象或参数,以保证全局概念统一。当定义完成后,系统内其他指标(例如派生指标)可以按需统一、通用化引用这些对象,例如统计周期,年、月、日、每周、每日。
项目管理
项目是一种物理空间上的划分。项目管理,即用户在数据中台建设过程中,对物理资源及开发人员进行隔离化管理。一个业务板块可以包含多个项目,每个系统成员可以加入多个不同的项目。
维度
维度即进行统计的对象。通常情况下,维度是实际存在、不因事件发生就存在的实体。创建维度,即从顶层规范业务中的实体(主数据),并保证实体的唯一性。例如订单、商品。
业务过程
业务过程即业务活动中的所有事件(它是一个事件集合)。创建业务过程,即从顶层规范业务中事务内容的类型及唯一性。因此业务过程是一个不可拆分的行为事件。例如下单、支付、退款都是业务过程。
指标
指标分为原子指标和派生指标。
原子指标:对指标统计口径(即计算逻辑)、具体算法的一个抽象,是业务定义中不可再拆分的指标,例如支付金额。一般都为数值(统计)。原子指标=业务过程(动作)+度量,
如支付(事件)金额(度量)。
派生指标:业务中常用的统计指标。派生指标=原子指标+业务限定+统计周期+统计粒度。例如,自然周、会员、采用优惠券支付的订单。
统计粒度
统计的最小颗粒度,数据唯一性的保证,统计分析的对象或视角,定义数据需要汇总的程度,可以理解为聚合运算时的分组条件(类似于SQL中group by的对象)。粒度是维度的一个组合,指明您的统计范围。例如,某个指标是某个卖家在某个省份的成交额,则粒度就是卖家、省份这两个维度的组合。
这里需要注意粒度与维度的关系,通过一个或多个维度构建粒度。
流程
- 维度构建 DIM 维度模型。
- 数据域与项目是相互独立的不同统计指标,但同属于同一个业务板块下面。
- 以源表和维表构建得到事实明细表。
- 以原子指标、业务限定、统计周期、统计粒度构建得到派生指标,结合统计粒度构建 DWS 汇总表
示例