在上一篇文章数据中台(架构篇)中了解到了数据中台的架构,其中我们一个很重要的部分就是要构建数据资产,而数据资产中的元数据管理又是很重要的部分,接下来我们从几个方面了解元数据:搞懂什么是元数据?元数据和数据的区别是什么?元数据有什么作用?元数据可以用来做什么?
什么是元数据元数据(metadata),就是描述数据的数据。看到这个估计比较抽象,比较难理解。
举个例子:对于一个数据表,表的含义是什么,由谁管理,每个字段的意思是什么,都属于这个数据表的元数据。一般来说,数据中台不仅需要管理传统的元数据,也需要管理数据应用的元数据。
元数据用来描述数据的数据,通过描述数据的产生、存储、使用情况、业务含义等信息,以及数据管理人员相关信息。让人们能够清楚拥有什么数据、代表什么、源自何处、如何在系统中移动,以及哪些人可以使用源数据,如何使用。
元数据是一种数据。元数据反映了数据的交易、实践、对象和关系。数据反映了真实世界的交易、实践、对象和关系。两者的关系就像数据和真实世界的关系。这一定义从数据和元数据区别与联系表述定义。元数据描述了数据本身(数据库、数据元素、数据模型等)、数据表示的概念(如业务流程、应用程序系统、软件代码、技术架构等)以及数据和概念之间的关系。数据承载的是业务实体数据,而元数据是用于管理实体数据的。
元数据的分类按照主要用途来划分,元数据可以分成以下几类。
业务元数据:与业务相关的数据信息,如数据项的语义、语法限制、与其他数据的关系。这类元数据可以帮助业务人员和应用使用数据,确认数据使用的正确性。
技术元数据:主要提供数据或应用的一些运维信息,例如存储空间大小,数仓分层,访问热度,主题分类,关联指标数据量、数据记录数、数据集的物理位置、数据访问记录、数据装载日志、数据计算时间、质量稽核记录等。这类元数据是系统高效运维和审计所必需的信息。
管理元数据:用于机构管理的元数据,例如组织架构、人员权限等。这类元数据一般用来控制数据的访问权限及数据用途审计和统计。
应用元数据:一般不属于传统元数据管理的范畴,包括数据中台中运行的数据应用的信息,例如应用的开发部门、使用的数据源、产生的数据源、代码的版本、运行的配置等。这类元数据可以用来回答数据如何产生、如何使用、使用多少资源等问题,可以提高数据能力共享和复用的效率。
在数据中台中,业务数据的元数据往往能够让人更加实用。业务元数据包括如下内容:
数据定义:一般就是数据库表的DDL,或者说是数据表的Schema。采集数据定义的目的是统一管理数据字段名称、类型、说明,便于全局查询及数据发现。
数据字典:一般是业务系统中所涉及概念的定义列表,描述的是数据的结构信息:表结构信息,主要包括像表名,字段名称、类型和注释,表的数 据产出任务,表和字段的权限等。数据字典的建设过程一般涉及业务系统的调研和从业务流程到实际数据映射关系的梳理,是元数据管理和数据中台建设中很关键的一步。
数据血缘:数据之间的血缘依赖关系,对于一个指定的数据表、字段、记录、域值,包括上游血缘(它们是如何计算出来的)和下游血缘(它们被用来计算哪些其他的数据表、字段、记录、域值)。数据血缘在数据关系理解、数据验证、运维排错中都有很广泛的应用,一般是元数据管理的必备功能之一,简单理解为一个表是直接通过哪些表加工而来。数据血缘一般会帮我们做影响分析和故障溯源。注意,支持不同级别的血缘带来的额外管理负担是逐渐增加的。目前大部分系统支持到表级血缘。
质量控制:数据必须满足的一些质量规则,例如,每个字段必须满足的条件、字段之间的关系、维度表中维度的限制。这些元数据一般属于数据治理流程的一部分,在制定了质量规则之后,数据治理应用可以对指定对象检查这些规则,并在需要的时候报错。
统计数据:对于一些重要字段的统计数据,如最大值、最小值、中值、平均值、最常出现值等。有些统计数据的计算很耗资源,一般按需处理。例如,有的字段需要列出最常出现的前10个值,我们可以为每个表提供一些基本的统计数据,然后提供可配置的统计数据计算功能。