《数据资产管理核心技术与应用》是清华大学出版社出版的一本图书,全书共分10章,第1章主要让读者认识数据资产,了解数据资产相关的基础概念,以及数据资产的发展情况。第2~8章主要介绍大数据时代数据资产管理所涉及的核心技术,内容包括元数据的采集与存储、数据血缘、数据质量、数据监控与告警、数据服务、数据权限与安全、数据资产管理架构等。第9~10章主要从实战的角度介绍数据资产管理技术的应用实践,包括如何对元数据进行管理以发挥出数据资产的更大潜力,以及如何对数据进行建模以挖掘出数据中更大的价值。
关注清哥聊技术公众号,了解更多技术文章
图书介绍:数据资产管理核心技术与应用
随着大数据技术的发展,在开源社区中涌现出了很多优秀的数据资产管理平台项目,比如像Apache Atlas、Data Hub、OpenMetadata等,正是这些开源项目的出现,推动了数据资产管理技术的不断前进。
8.2.1. Apache Atlas
Apache Atlas是一个以元数据管理、数据血缘跟踪、数据治理为主的数据资产管理平台,包含了数据分类、数据血缘、数据安全、数据治理等很多强大的功能,通过访问https://atlas.apache.org/#/ 可以进入Apache Atlas的官方网站,其源码是托管在Github中,源码的Github地址为https://github.com/apache/atlas,Apache Atlas 是开源项目中首个实现了数据血缘功能的数据资产管理平台,Apache Atlas官方网站提供的技术架构实现如下图8-2-1所示。
图8-2-1
从图中可以看到
- Apache Atlas可以管理很多种不同种类的数据源的元数据,比如像Hive、Hbase等。
- Apache Atlas在底层存储血缘数据和元数据时,不仅使用了Apache Solr这样的索引数据库,还用到了图数据库来存储数据的血缘关系,Apache Solr是开源社区开源的一个用于搜索引擎性质的索引数据库。
在Apache Atlas中,元数据和血缘数据的采集以及存储的技术实现架构图如下图8-2-2所示。
图8-2-2
从图中可以看到
- Apache Atlas 在获取元数据时是通过Hook的方式来实现的,通过Hook的方式来获取元数据的信息变更,然后发送到Kafka消息队列中,Apache Atlas消费Kafka 消息队列中数据从而来获取元数据,并且存储到Apache Atlas底层数据库中。
- Apache Atlas在底层存储数据血缘关系时,默认用到了JanusGraph图数据库,JanusGraph是一个开源的分布式图数据库。
Apache Atlas虽然解决了元数据的获取和管理以及数据血缘的管理,但是其存在以下不足之处:
- Apache Atlas的Admin控制台管理界面相对比较简单,而且用户体验较差。
- Apache Atlas仅仅解决了Hive的数据血缘,对很多其他常见的数据源的数据血缘关系并不支持。
- 底层用到了太多的技术组件,部署和运维管理相对比较复杂。
8.2.2. Data Hub
Data Hub是一个开源的可扩展的以元数据管理为主的数据资产管理平台,实现了元数据的采集、存储、展示、治理等功能,通过访问https://datahubproject.io可以进入Data Hub的官方网站,其源码是托管在Github中,源码的Github地址为https://github.com/datahub-project/datahub。Data Hub包含的主要功能介绍如下:
- 元数据采集:支持从Hive、ClickHouse、MySQL、SQL Server 等数据仓库或者常见的关系型数据库中采集元数据,并且存储到Data Hub中。如下图8-2-3所示为Data Hub元数据采集的技术架构实现,从图中可以看到Data Hub 获取元数据的方式是从不同的数据源中主动去拉取元数据,然后将获取到的元数据可以直接发送给Data Hub,也可以先发送Kafka消息队列,然后由Data Hub从Kafka消息队列中消费数据来获取元数据。
图8-2-3
- 元数据的管理:将采集到的元数据展示到Data Hub的元数据管理界面中,并且支持对元数据打标签以及添加注释,方便用户检索自己需要的元数据信息。
- 数据质量管理:通过对元数据的管理、测试和检查,来提高数据质量。
- 提供了完善的API服务以及SDK,让外部业务或者系统可以访问Data Hub获取到自己需要的数据信。如下图8-2-4所示为Data Hub API服务的技术架构实现,从图中可以看到Data Hub除了支持API服务外,也支持通过图SQL语句直接查询数据,Data Hub底层的数据存储主要是存储在图数据库和Elastic Search索引数据库中,其中图数据库中主要是存储了数据与数据之间的关联关系。
- 数据血缘跟踪:如下图8-2-5所示,Data Hub也支持在其管理界面中查看数据血缘,但是Data Hub也不是对所有的数据源都支持查看数据血缘关系。
图8-2-5
Data Hub查看数据血缘对常见的数据源类型的支持情况如下表8-2-1所示。
数据源类型 |
是否支持表级血缘 |
是否支持字段级血缘 |
Amazon Athena (亚马逊提供的一个数据查询器) |
支持 |
不支持 |
BigQuery(Google 推出的可扩展性强、成本低廉的无服务器企业数据仓库) |
支持 |
支持 |
ClickHouse(开源的OLAP分析数据库) |
不支持 |
不支持 |
Databricks(数仓一体的商业化的数据存储平台) |
支持 |
支持 |
Delta Lake |
不支持 |
不支持 |
Hive |
不支持 |
不支持 |
SQLServer |
不支持 |
不支持 |
MySQL |
不支持 |
不支持 |
如下图8-2-6所示为Data Hub的总体技术架构实现图。从图中可以看到
- Data Hub的技术实现架构和Apache Atlas非常的类似,都用到了消息队列以及图数据库和索引数据库。
- Data Hub 与Apache Atlas 不一样的地方在于Data Hub 是主动去拉取数据,而Apache Atlas是通过在每个数据源上集成Hook的方式来获取数据,然后再将数据直接推送给Apache Atlas。
图8-2-6
所以通过分析来看,Data Hub 的技术实现方式比Apache Atlas要略显简单,并且Data Hub和各个数据源之间都解耦了,而Apache Atlas需要在每个数据源中集成Hook 插件才能获取到数据,对源端的数据源造成了一定绑定。
8.2.3. OpenMetadata
OpenMetadata也是一个包含了元数据获取和管理、数据血缘跟踪、数据质量管理、数据治理等功能的开源的数据资产管理平台。通过访问https://open-metadata.org/可以进入Data Hub的官方网站,其源码是托管在Github中,源码的Github地址为https://github.com/open-metadata/OpenMetadata,其包含的核心功能介绍如下:
- 元数据变更跟踪和管理:通过监听数据源的事件变化,来获取和跟踪以及管理元数据的信息,如下图8-2-7所示。在OpenMetadata中,为了实现数据发现、采集、存储和治理等功能,其在底层技术实现时做了一个统一的元数据模型,所有的从不同类型的数据源中获取到的数据都会先转换为这个统一的元数据模型,然后再进行存储,不止是OpenMetadata是这样的实现的,Apache Atlas的底层也是采用了同样的思想来先转换数据为统一的模型,然后再进行存储。
图8-2-7
- 数据质量分析与管理:支持根据自定义的规则对数据资产进行质量探查,并且生成数据质量的报告。
- 数据血缘跟踪:支持对部分数据源进行表级或者列级的数据血缘跟踪,并且支持手工维护数据与数据之间的血缘关系,如下图8-2-8所示。
图8-2-8
- 术语表:通过添加受控词汇来描述企业或者组织内的重要概念和术语。
- 数据源连接器:支持连接到各种常见的数据库来获取其对应的数据信息,其支持的数据库类型如下图8-2-9所示。
图8-2-9
如下图8-2-10所示为OpenMetadata官方提供的技术实现架构图。
从图中可以看到
- OpenMetadata底层主要是用MySQL数据库来存储元数据信息,然后使用ElasticSearch索引引擎数据库来存储数据的索引信息,方便用户能在OpenMetadata中快速的检索到自己需要的数据信息。
- 以Http协议的形式对外提供了API服务,方便外部系统访问OpenMetadata获取数据。
图8-2-10
OpenMetadata的权限控制采用了基于角色的访问控制 (RBAC),在其管理界面中可以创建和管理角色。另外为了方便外部系统使用和访问OpenMetadata,其官方提供了Python 语言的SDK、Go语言的SDK以及Java语言的SDK,通过访问网址https://docs.open-metadata.org/v1.3.x/sdk即可下载对应的SDK,如下图8-2-11所示。
图8-2-11
从开源社区的活跃程度以及功能的迭代更新速度看,OpenMetadata比起其他的开源的数据资产管理平台做的更加优秀,也更加具有潜力。
通过对开源社区中常见的数据资产管理平台项目的介绍和对比,可以看到
- 底层的技术框架有很多共同之处,比如通常都用到了索引数据库和图数据库,方便对数据进行检索以及存储数据之间的血缘关系,这就说明了数据的检索和数据之间的血缘关系对于数据资产管理的重要性。
- 通常都可以支持大多数最常见的数据源,对数据源的兼容性的支持是数据资产管理的基础。
- 通常都可以对外提供数据资产的查询服务,让外部的业务系统通过服务能很方便的查找到自己需要的数据信息。
《数据资产管理核心技术与应用》是清华大学出版社出版的一本图书,全书共分10章,第1章主要让读者认识数据资产,了解数据资产相关的基础概念,以及数据资产的发展情况。第2~8章主要介绍大数据时代数据资产管理所涉及的核心技术,内容包括元数据的采集与存储、数据血缘、数据质量、数据监控与告警、数据服务、数据权限与安全、数据资产管理架构等。第9~10章主要从实战的角度介绍数据资产管理技术的应用实践,包括如何对元数据进行管理以发挥出数据资产的更大潜力,以及如何对数据进行建模以挖掘出数据中更大的价值。