atlas
Architecture
Install
Access Apache Atlas UI using a browser: http://localhost:21000
You can also access the rest api http://localhost:21000/api/atlas/v2
默认的用户名密码是 (admin, admin)
Atlas Features
定义元模型,规范元数据
atlas 可以维护(增删改查) metadata types,支持
- 创建多种类型的 metadata types
- businessmetadatadef:业务元数据的元模型
- classificationdef:标签数据的元模型
- entitydef:一般元数据的元模型
- enumdef
- relationshipdef:关系元数据的元模型
- structdef
- 元模型支持定义属性约束、索引、唯一性等
- 按 id/typename/query 来检索
1
2 # DELETE/GET/POST/PUT
/v2/types/typedef
约束
- typename 全局唯一
可以维护元数据
import metadata
atlas 提供以下途径将元数据引入系统:
- REST API:atlas 提供 api 可以 bulk saveOrUpdate 某个 type 的元数据
- 文件:atlas 可以上传文件,并 saveOrUpdate 文件中所定义的元模型、元数据等
- atlas hook:atlas 通过监听 kafka topic
ATLAS_HOOK
,来实时引入数据源中的元数据。目前已提供 Apache Hive/Apache HBase/Apache Storm/Apache Sqoop 的 hook- hive hook
- 可以 import hive databases & tables 元数据
- 可以监听以下类型的 hive 操作,capture 其中的元数据:
- create database
- create table/view, create table as select
- load, import, export
- DMLs (insert)
- alter database
- alter table (skewed table information, stored as, protection is not supported)
- alter view
- sqoop
- 目前仅支持监听 sqoop 的 hiveimport operation 完成后,capture 其中的元数据。
- hive hook
业务元数据
atlas 可以:
- 定义业务元数据元模型规范业务元数据
- 在技术元数据上,添加业务元数据,来实现关联
- 支持按业务元数据检索
血缘
atlas 可以查询元数据血缘关系。应该是基于关系图实现。
目前 hive 表可以支撑到 column 级别的血缘分析。
可以维护标签
atlas 中的 classification 即标签,可以打在元数据、术语等地方。
可以基于 classification 检索元数据。
可以做 classification 的传播:
- 基于继承关系链的传播
- 基于血缘关系链的传播
Classification vs label
Atlas 中的 classification 和 label 都是标签的概念,label 是轻量级、谁都可以加的简单标签,classification 则有更多的支持。
可以维护企业术语表
atlas 可以维护企业的术语,并将术语与元数据关联,支持按术语检索元数据,通过以下三个概念来实现细粒度的术语管理:
- glossary:术语表,最高级别,所有的术语都必须属于某个术语表
- category:术语分类,必须挂在某个 glossary。可以拥有 childCategories
- term:术语。必须挂在某个 glossary。可以挂在某个 category
Notifications
atlas 通过 kafka 实现 hook,引入元数据;也通过 kafka 广播元数据修改,供消费者使用。
notifications to atlas:
ATLAS_HOOK
. 目前已提供 Apache Hive/Apache HBase/Apache Storm/Apache Sqoop 的 hook,来监听这些数据源的元数据notifications from atlas:
ATLAS_ENTITIES
1
2
3
4
5
6
7
8
9
10
11
12# 监听并发布以下事件的通知
ENTITY_CREATE: sent when an entity instance is created
ENTITY_UPDATE: sent when an entity instance is updated
ENTITY_DELETE: sent when an entity instance is deleted
CLASSIFICATION_ADD: sent when classifications are added to an entity instance
CLASSIFICATION_UPDATE: sent when classifications of an entity instance are updated
CLASSIFICATION_DELETE: sent when classifications are removed from an entity instance
# notification data
AtlasEntity entity;
OperationType operationType;
List<AtlasClassification> classifications
检索
atlas 所有的元数据存储在图数据库 JanusGraph,而索引数据则存储在 index store(solr / elasticsearch)来做全文检索
atlas 支持以下检索方式:
- 唯一定位元数据:通过 id
- basic 检索:基于 type、attributes、classifciation、terms 等 query parameter 做全文检索
- advance 检索:可以使用 dsl 语言做全文检索
高可用
- 基础设施高可用。
- atlas 使用 JanusGraph 存储元数据,并将 HBase(默认,可采用其他数据库)作为 backing store。HBase 本身的高可用特性支撑了 metadata store 的高可用
- atlas 使用 solr / elasticsearch 存储元数据索引。这些组件同样支持高可用
- Web Service 高可用。
- 目前 atlas 的 web service 同一时间只能有一个 active instance 响应,以实现元数据维护、缓存等的一致性问题。高可用模式即有多个备用(passive)instances,当 active instance down 后,可以自动切换某个 passive instance,作为新的 active instance。
访问控制
atlas 支持非常细粒度的访问控制:
元模型:基于某个元模型或某类元模型的访问控制。典型 example:
- Admin users can create/update/delete types of all categories
- Data stewards can create/update/delete classification types
- Healthcare data stewards can create/update/delete types having names start with “hc”
元数据:基于元模型、标签、元数据 id 的元数据访问控制。典型 example:
- Admin users can perform all entity operations on entities of all types
- Data stewards can perform all entity operations, except delete, on entities of all types
- Data quality admins can add/update/remove DATA_QUALITY classification
- Users in specific groups can read/update entities with PII classification or its sub-classification
- Finance users can read/update entities whose ID start with ‘finance’
admin 操作:可以控制 user/group 来 import/export entities
UI
有个 ui 可以管理元数据、标签、术语
限制
- web service 只有一个 active instance
- Typename 全局唯一
- ui 挺慢的
基于 atlas 我们可以做什么
- 数据集发现
- 数据字典浏览和检索
- 数据集导入和导出
- 导出数据集,供系统之间交互使用
- 导入数据集(数据标准、指标口径等)
- 标签管理:
- 维护用户画像标签 (增删改查)
- 基于标签检索数据集
- 数据标准维护和浏览:(可以通过术语做?)
- 维护数据标准(增删改查)
- 可以为数据标准加标签
- 指标和口径维护和浏览
- 维护指标口径(增删改查)
- 可以为指标口径加标签
- 数据集 staticstics
- 数据接入和使用情况统计
- 辅助数据分析师生成分析:
- 通过关联技术元数据和业务元数据,当数据分析师按业务语言定义分析后,可以快速查找相关的表、字段等