背景:笔者和团队的小伙伴近期在进行数据治理/元数据管理方向的探索, 在接下来的系列文章中, 会陆续与读者们进行分享在此过程中踩过的坑和收获。
元数据管理系列文章:
[0] - 使用Atlas进行元数据管理之Atlas简介
[1] - 使用Atlas进行元数据管理之Glossary(术语)
[2] - 使用Atlas进行元数据管理之Type(类型)
0. 当我们谈论数据治理/元数据管理的时候,我们究竟在讨论什么?
谈到数据治理,自然离不开元数据。元数据(Metadata),用一句话定义就是:描述数据的数据。元数据打通了数据源、数据仓库、数据应用,记录了数据从产生到消费的全过程。因此,数据治理的核心就是元数据管理
。
数据的真正价值在于数据驱动决策,通过数据指导运营。通过数据驱动的方法判断趋势,帮住我们发现问题,继而推动创新或产生新的解决方案。随着企业数据爆发式增长,数据体量越来越难以估量,我们很难说清楚我们到底拥有哪些数据,这些数据从哪里来,到哪里去,发生了什么变化,应该如何使用它们。因此元数据管理(数据治理)成为企业级数据湖不可或缺的重要组成部分。
可惜很长一段时间内,市面都没有成熟的数据治理解决方案。直到2015年,Hortonworks终于坐不住了,约了一众小伙伴公司倡议:咱们开始整个数据治理方案吧。然后,包含数据分类、集中策略引擎、数据血缘、安全和生命周期管理功能的Atlas应运而生。(PS:另一个应用的较多的元数据开源项目是Linkedin 在2016年新开源的项目:WhereHows
)Atlas目前最新的版本为2018年9月18日发布的1.0.0
版本。
1. Atlas介绍
Atlas 是一个可伸缩和可扩展的核心基础治理服务集合 ,使企业能够有效地和高效地满足 Hadoop 中的合规性要求,并允许与整个企业数据生态系统的集成。
Apache Atlas为组织提供开放式元数据管理和治理功能,用以构建其数据资产目录,对这些资产进行分类和管理,并为数据科学家,数据分析师和数据治理团队提供围绕这些数据资产的协作功能。
2. 特性
2.1 元数据类型 & 实例
- 各种Hadoop和非Hadoop元数据的预定义类型
- 能够为要管理的元数据定义新类型
- 类型可以具有原始属性,复杂属性,对象引用;可以继承其他类型
- 类型(type)实例(称为实体entities)捕获元数据对象详细信息及其关系
- 可以更轻松地进行集成用于处理类型和实例的REST API
2.2 分类
- 能够动态创建分类 - 如PII,EXPIRES_ON,DATA_QUALITY,SENSITIVE。
- 分类可以包含属性 - 例如EXPIRES_ON分类中的expiry_date属性。
- 实体(entities)可以与多个分类(classifications)相关联,从而实现更轻松的发现和安全实施。
- 通过血缘传播分类 - 自动确保分类在进行各种处理时遵循数据。
2.3 血缘
- 直观的UI,用于在数据流转时,通过各种流程时查看数据。
- 用于访问和更新血缘的REST API。
2.4 搜索/发现
- 直观的UI,按类型(type),分类(classification),属性值(attribute)或自由文本搜索实体。
- 丰富的REST API,可按复杂条件进行搜索。
- SQL搜索实体的查询语言 - 域特定语言(DSL)。
2.5 安全和数据屏蔽
- 用于元数据访问的细粒度安全性,实现对实体实例的访问控制以及添加/更新/删除分类等操作。
- 与Apache Ranger集成可根据与Apache Atlas中的实体相关的分类对数据访问进行授权/数据屏蔽。例如:
- 谁可以访问分类为PII,SENSITIVE的数据。
- 客户服务用户只能看到分类为NATIONAL_ID的列的最后4位数字。