在现代企业数据平台中,通常会存在一些不同的数据源,例如 MySQL、Kafka、Spark、Hive、Data Lake 等。
随着数据规模的增长,企业会遇到各种数据管理问题:
- 不知道表来自哪个系统;
- 不知道字段的具体含义;
- 不知道报表数据来自哪里;
- 不知道敏感数据分布位置;
- 数据出现问题无法追溯来源。
Apache Atlas正是为了解决这些问题而设计,它是 Apache 基金会旗下的开源元数据管理与数据治理平台,最初诞生于 Hadoop 生态,现在已经发展成为支持企业级数据治理、数据目录、数据血缘、数据分类、业务术语管理和数据资产管理的核心平台。

Apache Atlas 采用 Java 语言开发,遵循 Apache 2.0 开源协议,代码托管在 GitHub:
https://github.com/apache/atlas
系统架构
Apache Atlas 整体系统架构如下:

Apache Atlas 采用分层架构设计,整体由元数据采集层、Atlas Server 服务层、存储与索引层以及可视化与开放接口层组成。
- 底层通过 Graph Database(图数据库)和索引引擎存储元数据、实体关系和数据血缘信息;
- 中间的 Atlas Server 提供类型系统(Type System)、实体管理(Entity)、分类标签(Classification)、业务术语(Glossary)、血缘分析(Lineage)和搜索服务等核心治理能力;
- 上层则通过 Web UI 和 REST API 对外提供访问接口。
- 同时,Atlas 通过 Hook、Bridge 和 API 机制与 Hive、Kafka、HBase、Sqoop、Trino 等数据平台集成,自动采集和同步元数据,并且可以与 Apache Ranger 联动实现基于数据分类标签的权限控制和数据安全治理。
功能特性
- 元数据管理:通过可扩展的类型系统定义数据模型,并且以实体的形式管理数据库、数据表、字段、文件、消息主题、ETL任务等各类数据资产的元数据信息。

- 数据血缘:Data Lineage 能够自动记录和可视化数据从产生、加工到消费的完整流转过程,将数据源、处理任务和目标数据集之间的依赖关系构建为可追溯的关系图。

- 数据分类:Classification 允许企业为数据资产动态打上具有业务和治理意义的标签,例如 PII(个人身份信息)、SENSITIVE(敏感数据)、GDPR、DATA_QUALITY(数据质量) 等,并且支持为分类定义扩展属性和治理规则。

Atlas 还能够基于数据血缘关系自动传播分类,使敏感数据在经过 ETL、数据集成和分析处理后仍能保持一致的治理标识。
- 数据目录:Data Catalog 为企业提供统一的数据资产发现与管理入口,通过集中管理数据库、数据表、字段、消息主题、文件等元数据对象,帮助用户快速了解数据的定义、归属、用途和关联关系。

- 业务术语管理:通过构建统一的业务术语库,将企业的业务概念、指标定义和治理规则与底层技术元数据关联起来,帮助不同团队建立一致的数据语言体系。例如,企业可以定义"客户""订单""活跃用户"等业务术语,并且关联到对应的数据表、字段和数据资产,从而让用户不仅知道数据存储在哪里,还能理解其业务含义。

- 支持的数据平台:Apache Atlas 官方提供了对 Apache Hive、HDFS、HBase、Kafka、Sqoop、Storm、Falcon、Couchbase、Trino等平台的元数据采集与治理支持。借助开放的类型系统和 REST API,企业还可以扩展接入 Spark、Flink、MySQL、PostgreSQL、Oracle、Iceberg、Delta Lake 等现代数据平台和数据湖技术,实现跨数据仓库、数据湖、消息队列和数据处理引擎的统一元数据管理与数据治理。
部署安装
Apache Atlas 官方支持源码编译安装和生产环境部署,通常运行于 Linux 环境,并且依赖 Java、Kafka、Solr/Elasticsearch、HBase 或者 JanusGraph 等组件。
本地快速部署体验的方法如下:
bash
# 下载源码
git clone https://github.com/apache/atlas.git
cd atlas
# 编译 Atlas
mvn clean -DskipTests install
# 解压编译完成后的安装包
tar -zxvf apache-atlas-*.tar.gz
cd apache-atlas-*
# 启动 Atlas
bin/atlas_start.py
# 查看状态
bin/atlas_status.py
# 访问管理界面
http://<host_ip>:21000
# 停止服务
bin/atlas_stop.py
总结
Apache Atlas 是一个企业级元数据管理与数据治理平台,用于实现数据资产目录、数据血缘分析、数据分类管理和合规治理。