这里我们要先搞懂什么是元数据?元数据和数据的区别是什么?元数据有什么作用
1.什么是元数据
举几个例子:
- 如果一本书是一个“数据",那么它的书名、封面、出版社、作者、总页码就是它的“元数据”。
- 如果数据库中某个表是一个”数据”,那么它的列名、列类型、列长度、表注释就是它的"元数据"。
元数据用来描述数据的数据,通过描述数据的产生、存储、使用情况、业务含义等信息,以及数据管理人员相关信息。让人们能够清楚拥有什么数据、代表什么、源自何处、如何在系统中移动,以及哪些人可以使用源数据,如何使用
2.元数据分类
元数据可分为技术元数据和业务元数据
2.1 技术元数据
技术元数据是存储关于数据仓库系统技术细节的数据,是用于开发和管理数据仓库使用的数据,主要包括:
- 数据字典:例如表名、注释信息、表的产出任务、表字段信息、含义和字段类型等,描述数据的结构信息。
- 数据血缘关系:描述表的继承关系,由哪些表经过哪些计算任务得到的。
- 数据特征:数据的属性,比如存储空间大小、访问热度、主题域、分层、表关联指标等。
2.2 业务元数据
为管理层和业务分析人员服务,从业务角度描述数据,包括商务术语、数据仓库中有什么数据、数据的位置和数据的可用性等,帮助业务人员更好地理解数据仓库中哪些数据是可用的以及如何使用。
- 企业概念模型:这是业务元数据所应提供的重要的信息,它表示企业数据模型的高层信息、整个企业的业务概念和相互关系。以这个企业模型为基础,不懂数据库技术和SQL语句的业务人员对数据仓库中的数据也能做到心中有数。
- 多维数据模型:这是企业概念模型的重要组成部分,它告诉业务分析人员在数据集市当中有哪些维、维的类别、数据立方体以及数据集市中的聚合规则。这里的数据立方体表示某主题领域业务事实表和维表的多维组织形式。
- 业务概念模型和物理数据之间的依赖:以上提到的业务元数据只是表示出了数据的业务视图,这些业务视图与实际的数据仓库或数据库、多维数据库中的表、字段、维、层次等之间的对应关系也应该在元数据知识库中有所体现
3.元数据管理功能
3.1 数据地图
数据地图展现是以拓扑图的形式对数据系统的各类数据实体、数据处理过程元数据进行分层次的图形化展现,并通过不同层次的图形展现粒度控制,满足开发、运维或者业务上不同应用场景的图形查询和辅助分析需要。
3.2 元数据分析
3.2.1 血缘分析
血缘分析:我们可以大致理解为是一个表的生成过程。它依赖了哪些表,怎么生成的。同时加上它依赖的表又是怎么生成的。
血缘分析的作用:
- 问题定位:假设你用到了别人的数据,数据血缘分析能快速帮你定位到问题。
- 理解数据:如果你想用其它的数据源,首先要能理解它,不然数据口径能给你带来很大的麻烦。
- 影响评估:修改某份数据的时候能评估影响的范围大小。比如说现在你的小伙伴要调整自己开发的 Table J,这时候如果他不知道有谁在依赖这张表,冒然修改的话会带来毁灭性的伤害,但是有数据血缘分析的时候,至少能知道谁在使用这份数据。
数据血缘分析是元数据管理的重要应用之一,梳理系统、表、视图、存储过程、ETL、程序代码、字段等之间的关系,并采用图数据库进行可视化展现。总之就是通过可视化展示数据是怎么来的,经过了哪些过程、阶段及计算逻辑。
3.2.2 影响分析
基于元数据存储的数据定义、去向、转换关系、依赖关系等,提供影响分析管理(向上分析)功能
影响图:某实体表向上用于生成哪些实体(直接和间接),影响哪些数据汇总程序(直接和间接)。由当前数据节点向上树形扩散
3.2.3 表关联分析
提供表级关联关系分析功能,实现对数据流向分析,通过选定指定表操作对指定表进行数据流向分析,以实现对数据源数据具体流向的分析与统计
3.2.4 指标一致性分析
指标一致性分析是指用图形化的方式来分析比较两个指标的数据流图是否一致,从而了解指标计算过程是否一致。该功能是指标血缘分析的一种具体应用。指标一致性分析可以帮助用户清楚地了解到将要比较的两个指标在经营分析数据流图中各阶段所涉及的数据对象和转换关系是否一致,帮助用户更好地了解指标的来龙去脉,清楚理解分布在不同部门且名称相同的指标之间的差异,从而提高用户对指标值的信任。
3.3 安全管理
企业数据平台所存储的数据和提供的各类分析应用,涉及到公司经营方面的各类敏感信息。因此在数据系统建设过程中,须采用全面的安全管理机制和措施来保障系统的数据安全。
数据系统安全管理模块负责数据系统的数据敏感度、客户隐私信息和各环节审计日志记录管理,对数据系统的数据访问和功能使用进行有效监控。为实现数据系统对敏感数据和客户隐私信息的访问控制,进一步实现权限细化,安全管理模块应以元数据为依据,由元数据管理模块提供敏感数据定义和客户隐私信息定义,辅助安全管理模块完成相关安全管控操作。
可以通过元数据设置表及字段的安全等级,加密,脱敏,授权等,然后结合相应的规则对数据表及字段访问进行控制,确保数据安全
3.4 元数据服务
统一元数据服务,主要提供查询表、指标、维度基本信息的基础元数据服务以及查询表级血缘、字段级血缘的血缘服务。
3.5 数据详情
找到数据之后,通过数据详情功能可以快速了解数据表的基础信息,字段信息、分区信息、产出信息、数据血缘、数据预览,表关联信息、知识问答等
4.元数据管理系统架构
4.1 元数据采集
元数据采集分为人工录入和自动抽取,通过人工录入的方式实现物理表的准确归属(包括该表属于仓库哪一层、对应的主题、业务过程、星型模型关系等)以及指标的采集,从而完成技术元数据和业务元数据的采集,通过自动抽取的方式完成生产元数据的采集和使用元数据的采集,主要包括:物理模型的依赖关系、存储占用、热度、等信息。
4.1.1 元数据采集架构
4.1.2 业务数据元数据同步采集
实现对业务数据库数据表的元数据自动采集同步,包括建表语句中的中文备注信息,并将中文备注信息填写到对应的中文字段名称中,界面提供元数据修改功能,主要修改是添加业务技术负责人、修改表的中文名称、备注说明等信息,表的字段名称,类型、长度等信息不允许修改
4.1.3 数据仓表元数据采集
实现对数仓数据库数据表的元数据自动采集同步,包括建表语句中的中文备注信息,并将中文备注信息填写到对应的中文字段名称中,界面提供元数据修改功能,主要修改是添加数仓表对应技术负责人、修改表的中文名称、备注说明等信息,表的字段名称,类型、长度等信息不允许修改
4.2 元数据变更预警
- 对业务元数据的变更(主要是Mysql数据库),通过flink监控binlog的schema变更时间,一旦发现及时发送消息通知,后端监控变更消息队列,取到变更信息,发出元数据变更预警,并自动修改相应的元数据,生成版本信息。
- 其他业务数据库,需要定时的去采集业务系统元数据信息和历史元数据进行比对,发现元数据变更并及时预警
4.3 元数据版本管理
元数据要提供版本管理功能,以便进行业务追溯,业务系统数据库表会因为业务的变化数据结构也需要变化,需要提供元数据多的历史版本管理,可以查询元数据历史版本信息
4.4 元模型的构建
这里的元模型分为以物理表为核心的物理元模型构建,以及以血缘为中心的血缘元模型。
物理元模型:构建以物理表为中心,打通其与技术元数据(主题、业务过程、Schema)的关系,实现了物理表的清晰归属,打通其与生产元数据的关系,要加上物理表查询热度、资源消耗、查询密级等生产使用信息,打通其与指标、维度和应用的对应关系,为上层的取数应用建立了完备的元数据。
血缘元模型:以血缘为中心,通过监控Doris审计日志或者,如果是其他数据库可以通过埋点或者拦截的方式获取SQL,通过sql解析完成自动的血缘关系构建,不仅要构建从上游业务表到仓库表的物理血缘,而且要打通仓库表到下游对应报表的血缘,为后续的影响评估构建了完备的元数据基础
5. 元数据应用
- ETL自动化管理:使用元数据信息自动生成物理模型,ETL程序脚本,任务依赖关系和调度程序,例如我们通过元数据实现Doris零代码接入,就是使用业务数据库表结构和Doris数仓对应的表结构实现字段自动化映射及检查
- 数据质量管理:使用数据质量规则元数据进行数据质量测量。数据质量根据设定的规则帮助您过滤出有问题的数据,并智能分析数据质量缺陷,我们通过在接入的业务元数据上加入数据规则(技术规则和业务规则),然后将规则自动下发到ETL任务中,实现对数据的清洗、转换等操作,从源头上保障数据质量 下图是我们基于元数据定义的ETL规则,
- 数据安全管理:使用元数据信息进行表,字段及报表权限控制。可以方便查看用户和访问权限,并启用对象级和行级安全管理。对象级安全性确保通过身份验证的用户只能访问他们被授权查看的数据、表或列,其它数据则不可见。基于行的安全性会更进一步,可以限制特定的组成员只可以访问表中特定的数据。
- 数据标准管理:使用元数据信息生成标准的维度模型。
- 数据接口管理:使用元数据信息进行接口统一管理。多种数据源接入,并提供多种插件对接最流行的源系统。应该可以简单方便获取数据。
- 项目文档管理:使用元数据可以自动、方便的生成的健壮全面的项目文档,其以帮助您应对各种对于数据合规性要求。读取元数据模型,并生成pdf格式的描述文件。生成文档您查看每个对象的名称、设置、描述和代码