其他分享
首页 > 其他分享> > 数据中台(元数据篇)

数据中台(元数据篇)

作者:互联网

声明:本文归属一寸HUI所有。@一寸HUI

在上一篇文章数据中台(架构篇)中了解到了数据中台的架构,其中我们一个很重要的部分就是要构建数据资产,而数据资产中的元数据管理又是很重要的部分,接下来我们从几个方面了解元数据:搞懂什么是元数据?元数据和数据的区别是什么?元数据有什么作用?元数据可以用来做什么?

什么是元数据

元数据(metadata),就是描述数据的数据。看到这个估计比较抽象,比较难理解。

举个例子:对于一个数据表,表的含义是什么,由谁管理,每个字段的意思是什么,都属于这个数据表的元数据。一般来说,数据中台不仅需要管理传统的元数据,也需要管理数据应用的元数据。

元数据用来描述数据的数据,通过描述数据的产生、存储、使用情况、业务含义等信息,以及数据管理人员相关信息。让人们能够清楚拥有什么数据、代表什么、源自何处、如何在系统中移动,以及哪些人可以使用源数据,如何使用。

元数据是一种数据。元数据反映了数据的交易、实践、对象和关系。数据反映了真实世界的交易、实践、对象和关系。两者的关系就像数据和真实世界的关系。这一定义从数据和元数据区别与联系表述定义。元数据描述了数据本身(数据库、数据元素、数据模型等)、数据表示的概念(如业务流程、应用程序系统、软件代码、技术架构等)以及数据和概念之间的关系。数据承载的是业务实体数据,而元数据是用于管理实体数据的。

元数据的分类

按照主要用途来划分,元数据可以分成以下几类。

在数据中台中,业务数据的元数据往往能够让人更加实用。业务元数据包括如下内容

元数据的基础功能和应用

我们可以通过元数据的管理,记录和管理与数据相关的业务数据,便于人们理解数据,保证数据使用的一致性。从不同数据源采集并集成元数据,保证人们理解不同数据的相似性和差异保证元数据的质量、一致性和安全给元数据使用者提供标准的元数据访问方法。

(1)数据地图:数据地图是基于所有元数据搭建起来的数据资产列表,可以将数据地图看作将所有元数据进行可视化呈现的系统。它不仅能够解决有什么数据的问题,还能够进行检索,解决数据在哪里的问题。通过可视化查询、浏览、搜索,能够根据类别、类型等信息展示各个数据实体的信息及其分布情况,展示数据实体间的组合、依赖关系以及数据实体加工处理上下游的逻辑关系,也可以根据数据源库、类型等搜索元数据信息。

(2)数据血缘和影响性分析

数据血缘和影响性分析主要解决“数据之间有什么关系”的问题。因其重要价值,有的厂商会从元数据管理中将其单独提取出来,作为一个独立的重要功能。但是考虑到数据血缘和影响性分析其实是来自于元数据信息,所以还是放在元数据管理中来描述。数据血缘分析是元数据管理的重要应用之一,血缘分析指的是获取到数据的血缘关系,以历史事实的方式记录数据的来源、处理过程、梳理系统、表、视图、存储过程、ETL、程序代码、字段等之间的关系,并采用图数据库进行可视化展现。总之就是通过可视化展示数据是怎么来的,经过了哪些过程、阶段及计算逻辑。

(3)元数据质量:主要做元数据治理用的,包含库、表元数据治理功能,分多个维度统计元数据完成情况,并可以做相应通知等。在做好元数据质量的前提下,可以基于元数据做数据质量管理,在定义好数据质量元数据之后,由系统自动按照数据质量规则检查数据,形成数据质量报告,并在数据质量出现问题时报警。

(4)元数据管理:元数据的管理包含元数据的增删改查、变更管理、对比分析、统计分析等。

(5)元数据中心:这是元数据核心功能之一,整个元数据的输出就是数据地图,用户可以通过元数据中心查看表的元数据信息(技术元数据、业务元数据)、任务信息、血缘关系(表级、字段级)血缘分析、使用信息等等(再多就看自己公司诉求了)

(6)元数据服务:统一元数据服务,主要提供查询表、指标、维度基本信息的基础元数据服务以及查询表级血缘、字段级血缘的血缘服务。

(7)安全管理:通过元数据设置表及字段的安全等级,加密,脱敏,授权等,然后结合相应的规则对数据表及字段访问进行控制,确保数据安全。

(8)数据冷热度分析:冷热度分析主要是对数据表的被使用情况进行统计,如表与ETL程序、表与分析应用、表与其他表的关系情况等,从访问频次和业务需求角度出发,进行数据冷热度分析,用图表展现表的重要性指数。

元数据管理架构

元数据管理架构功能:支持多业务线,支持多租户,支持多种数据源,有数据血缘功能,数据标签功能,与数据中台集成等。

元数据中心统一对外提供了 API 访问接口,数据传输、数据地图、数据服务等其他的子系统都可以通过API 接口获取元数据。另外 Ranger 可以基于元数据中心提供的 API 接口,获取标签对应的表,然后根据标签更新表对应的权限,实现基于标签的权限控制。

1.元数据采集和存储

在数据处理的每一步中,我们必须获取相应的元数据,并将这些元数据集中存储在关系型数据库中,便于后续查询和管理。元数据是理解和使用数据的根据,它的完整性和正确性是整个大数据分析系统的基本条件。元数据采集必须能够适应异构环境,支持从传统关系型数据库和大数据平台中采集数据产生系统、数据加工处理系统和数据应用报表系统的全量元数据,包括过程中的数据实体(系统、库、表、字段的描述)以及数据实体加工处理过程中的逻辑。同时,元数据管理系统必须支持人工输入,允许人工的增、删、改、查及发布。

2.数据血缘

通过Spark/Hive/Flink本身提供的Listener/Hook机制,解析调度依赖中的FROM、CREATE、INSERT等语句,获取输入节点与输出节点,生成血缘关系,就可以解析除SQL之外的其他语法。

在明确了实现方式后,就要考虑计划执行时机了。执行时机主要有3个。

在这3个时机中,时机(1)因为没有执行代码,所以无法保证可以正常运行,时机(3)则比较后置,没有时效性,所以最合适的是时机(2),在运行中解析SQL,能够实时获取输入与输出表,并且当依赖关系改变时也能实时变更。但是时机(2)也有一个缺点,那就是当数据表开发完成但还没有被执行时,就无法获取血缘关系,这时就需要通过解析静态SQL的方式,建立跟其他表的依赖关系。

Apache Atlas就是采用(2)方式实现,其架构图如下:

对于 Hive 计算引擎,Atlas 通过 Hook 方式,实时地捕捉任务执行计划,获取输入表和输出表,推送给Kafka,由一个 Ingest 模块负责将血缘写入 JanusGraph 图数据库中。然后通过 API 的方式,基于图查询引擎,获取血缘关系。对于 Spark,Atlas 提供了 Listener 的实现方式。

对于数据血缘的实现,可以简要概述为:首先,通过Spark Listener/HiveHook/Flink Hook,解析调度依赖中的FROM、CREATE、INSERT等语句获取输入节点与输出节点,生成血缘关系并推送给消息中间件(Kafka);其次,消费端负责将血缘关系沉淀到图形数据库(Neo4j)中;最后,通过图计算引擎在前端以图形的方式将其展示出来。

3.数据字典

在实际的场景中,公司普遍存在大量多源异构的数据,其数据源包括Hive、MySQL、Oracle、Greenplum等。支持不同数据源,建立一个可扩展的、统一的元数据层非常重要的,否则公司的元数据是缺失的。所以构建数据字典是很重要的,开源的Metacat 擅长管理数据字典,可以参考Metacat的架构构建公司的数据字典。
Metacat最大的优势:多数据源的可扩展架构:

从上面Metacat的架构图中,可以看到:Metacat的设计非常巧妙,它并没有单独再保存一份元数据,而是采取直连数据源拉取的方式。一方面,它不存在保存两份元数据一致性的问题;另一方面,这种架构设计很轻量化,每个数据源只要实现一个连接实现类即可,扩展成本很低。

4.数据地图

数据地图是基于所有元数据搭建起来的数据资产列表,可以将数据地图看作将所有元数据进行可视化呈现的系统。数据地图是基于元数据中心构建的一站式企业数据资产目录,可以看作是元数据中心的界面。数据开发、分析师、数据运营、算法工程师可以在数据地图上完成数据的检索,解决了“不知道有哪些数据?”“到哪里找数据?”“如何准确的理解数据”的难题。

数据地图最核心的功能有两个:元数据信息的展示、血缘关系。

数据地图提供了多维度的检索功能,使用者可以按照表名、列名、注释、主题域、分层、指标进行检索,结果按照匹配相关度进行排序。考虑到数据中台中有一些表是数仓维护的表,有一些表数仓已经不再维护,因此在结果排序时,我们增加了数仓维护的表优先展示的规则。数据地图还提供了按照主题域、业务过程导览功能,可以帮助使用者快速了解当前有哪些表可以使用。

参考:
元数据管理系统
数据中台学习笔记-元数据管理,指标管理,数据模型
聊聊数据中台:元数据建设有哪些坑(一)
《云原生数据中台:架构、方法论与实践》
《数据中台:让数据用起来》

标签:数据源,可以,数据表,数据管理,血缘,数据
来源: https://www.cnblogs.com/zsql/p/15785676.html