最近在规划数据治理的功能,所以研究了一下Apache Altas
Atlas
介绍
Atlas 是apache下的大数据的元数据管理和数据治理平台,是Hadoop社区为解决Hadoop生态系统的元数据治理问题而产生的开源项目,它为Hadoop集群提供了包括数据分类、集中策略引擎、数据血缘、安全和生命周期管理在内的元数据治理核心能力。
支持对hive、storm、kafka、hbase、sqoop等进行元数据管理以及以图库的形式展示数据的血缘关系。
演进
- Atlas最早由HortonWorks公司开发,用来管理Hadoop项目里面的元数据,进而设计为数据治理的框架。
- 后来开源出来给Apache社区进行孵化,
- 目前得到Aetna,Merck,Target,SAS,IBM等公司的支持进行发展演进。
因其支持横向海量扩展、良好的集成能力和开源的特点,国内大部分厂家选择使用Atlas或对其进行二次开发
功能
- 通过hook&Brige,跟踪大数据组件的元数据源并分析其变化,形成构建数据的索引(存储在solr)、 数据血缘(存储在janusgraph)
- 与Apache Ranger的集成使得基于与Apache Atlas中的实体相关联的分类的数据访问的授权/数据屏蔽成为可能
- 查看数据仓库中表与表之间的血缘依赖
- 查看数据仓库表中字段与字段之间的血缘依赖
- …
目前支持的数据源
不支持spark、flink
官网
官网
cloudera atlas
git 源码
最新版本为2.2.0
架构
整体架构
整体架构实现如下图所示:
元数据处理的整体流程
Atlas 支持与许多元数据源的集成,将来还会添加更多集成。目前,Atlas 支持从以下数据源获取和管理元数据:
- Hive:通过hive bridge, Atlas可以接入Hive的元数据,包括hive_db/hive_table/hive_column/hive_process
- Sqoop:通过sqoop hook,atlas可以接入关系型数据库的元数据,包括sqoop_operation_type/sqoop_dbstore_usage/sqoop_process/sqoop_dbdatastore
- Falcon:通过falcon bridge,atlas可以接入Falcon的元数据,包括falcon_cluster/falcon_feed/falcon_feed_creation/falcon_feed_replication/ falcon_process
- Storm:通过storm hook,atlas可以接入流式处理的元数据,包括storm_topology/storm_spout/storm_bolt
- HBase: 通过HBasebridge,atlas可以接入流式处理的元数据,包括hbase_namespace/hbase_table/hbase_column_family
Atlas集成大数据组件的元数据源需要实现以下两点:
- 首先,需要基于atlas的类型系统定义能够表达大数据组件元数据对象的元数据模型(例如Hive的元数据模型实现在org.apache.atlas.hive.model.HiveDataModelGenerator);
- 然后,需要提供hook组件去从大数据组件的元数据源中提取元数据对象,实时侦听元数据的变更并反馈给atlas;