关于数据治理工具Apache Atlas的研究
Apache Atlas详解
By Qinglin,Xia
什么是Atlas?
Atlas是数据治理中很重要的一个工具,它通过对元数据(Metadata)的管理,实现Hadoop中各个组件之间数据的流通与交换,亦或是与Hadoop外界组件的数据交流(如Mysql等数据库),从而实现跨平台的数据治理,解决数据孤岛(Data Solo)的问题
数据孤岛与数据湖
数据孤岛
数据孤岛是目前大数据领域面对的一大问题,我们可以把每个企业看做一个数据孤岛,在他们与其他企业进行数据流通的时候,因为数据定义,存储方式和维护方式的不同,使得合并或者交换数据变得异常困难。而当企业发展到一定阶段,每个事业部也可以看做是一个数据孤单,使得企业内部数据流通也出现巨大的困难
数据湖
数据湖是把数据孤岛的数据打通,整合到一起,一个数据湖通常符合这三个条件:
- 收集所有数据(Collect everything): 数据湖可以包含各种数据,可以有raw data也可以有被处理过的数据
- 适用于所有场合 (Dive in anywhere):数据湖使各行各业的用户都可以按照他们的标准修改,查看或者丰富里面的数据
- 灵活的访问模式 (Flexible access): 数据湖支持各种数据访问模式对共享的结构进行访问: batch, interactive, online, search,in-memory,etc
More info: Enterprise Hadoop Journey to Data Lake
Atlas可以做什么?
你面对的问题
- 你知道你的数据在那里么? Do you know where is your data ?
- 你知道这个指定数据集由谁负责么? Do you know who is responsible of this specific
datasets ? - 你知道上周五是哪个应用或者任务修改了这块数据么?Do you know from which application or task this entity
was modified last friday ?
Atlas的解决方式
为了解决数据孤岛的问题,使数据湖得以实现,Hadoop提供了数据治理(Data Governance)的工具,而Apache Atlas就是其中很重要的一个工具。 它主要可以实现以下功能:
搜索和追溯血统(Search and Proscriptive Lineage)– 可以使探究事先定义(pre-define)或者临时的(ad-hoc)数据和元数据变得更便利, 同时保留数据源的历史,便于追溯数据的起源,产生和演变
由元数据驱动的数据访问控制(Ranger + Atlas)
对商业数据(business data)或者工作数据(operational data)灵活建模
数据分类 – help understand the nature of data within Hadoop and classify it based on external and internal sources
与其他元数据工具进行数据交换
Apache Atlas的功能
总结来说,Atlas的功能主要有以下四大类:
数据分类
- 导入或定义以商业为导向的注解的分类
- 定义,注解,和自动捕获数据集与底层元素的关系,包括数据来源,数据终点,和获取过程 (Source, Target, and Derivation processes)
- 导出元数据到第三方系统
集中化审计
- 得到每个应用,进程的安全访问控制信息
- 得到execution, steps和activities的操作性信息
搜索 & 血缘(查看)
- 预先设定查看路径,用以浏览数据分类和信息审计
- 用以Text为基准的搜索去定位相关的数据
- 数据集血缘的可视化 Visualization of data set lineage
安全&政策 引擎
- 在runtime的数据分类机制政策 Policy at runtime based on data classification schemes
- 定义预防数据掠夺的政策
More Info: Features
Atlas 的架构
主要模块
Web应用 (A Web service): 提供了RESTful APIs以及一个Web UI,使用户可以创建,更新和搜索元数据(Metadata)。
元数据仓库 (Metadata store): Falcon用图(graph model)对元数据进行建模,用图数据库Titan对元数据进行具体操作。Titan有一系列的备选仓库可以用来维护图,包括一种嵌入式Berkeley DB, Apache HBase和Apache Cassandra。对备选仓库的选择将决定可选的服务层级。
索引仓库(Index store): 为了使全文搜索在元数据上得以实现,Altas,通过Titan,对元数据建立了索引。而全文检索的备选仓库是像ElasticSearch或是Apache Solr的一个搜索后端。
Bridges / Hooks: 为了在Atlas中添加元数据,一种叫做”hooks”的libararis被各种应用启用,像是Apache Hive, Apache Falcon和Apache Sqoop, 它们都可以在各自系统中捕捉元数据events,并把这些events传送到Atlas中。而Atlas服务器则会吸收这些Events并更新他自己的仓库。
元数据提醒events(Metadata notification events): 在Atlas中任意对元数据的更新,不论是通过Hooks或是API,都会通过events从Atlas传送到它下层的应用。像是Apache Ranger这样的应用会吸收这些events然后让管理员对他们进行操作,譬如:对访问控制的政策进行配置。
Notification服务器 (Notification Server): Atlas用Apache Kafka作为Notification服务器,使Hooks和它下层的应用可以就元数据提醒事件进行沟通(metadata notification events)。这些事件由hooks和Atlas写入到不同的Kafka主题中。Kafka可以对这些分散的应用实现宽松的成对整合。
Bridges
Bridge/Hook 的主要作用就是使得装有Bridge的应用,在生成一个entity的时候,也会有一个对应的entity在Atlas中生成。
有这样Bridges的应用是:
- Hive Bridge
- Sqoop Bridge
- Falcon Bridge
- Storm Bridge
Notification
Notification被应用于从Hook对Atlas的entity注册,和entity/type交换提醒。这些都由Kafka实现,Atlas启动时也默认启动Kafka Server。
More Info: Atlas Architecture
Apache Atlas的应用
Apache Atlas – Knowledge Store
知识仓库通过以商业为导向的分类学来分类:
- 数据集合 & 对象 Data sets & objects
- 表/列 Tables / Columns
- 逻辑上下文 Logical context
- 起点,终点 Source, destination
支持Atlas基本模块和外部第三方应用/数据治理工具的元数据交换
Tech:
- Titan with Apache HBase
Apache Atlas – Data Life Management
功能:
- 跨集群复制
- 数据集合保留/驱逐
- 迟到的数据处理
- 自动化
Tech:
- Apache Falcon
Apache Atlas – Audit Store
存储所有数据治理相关的Historical Repository
- 安全性 Security: 访问权限的给予和拒绝 Access Grant & Deny
- 功能性 Operational: 数据起源和数据矩阵 Data Provenance &
Metrics - 建立索引,使数据可搜索 Indexed and Searchable
Tech:
- YARN ATS, Apache HBase, Apache Hive, Solr,
ElasticSearch
(Pluggable)
Apache Atlas – Policy Engine
关于数据集合的合并以及时间的(data asset combinations
and time)政策条例
- 基于元数据的
- 基于地理位置的条例 Geo based rules
- 基于时间的条例 Time-based rules
- 列/属性禁用 Column /Attribute Prohibitions
- 预览:Hive的行和列隐藏 Preview: Hive Row and Column Masking
Tech:
- Ranger
Apache Atlas – Security
建立基于数据分类的全球安全条例(global security policies)
Type System
Data Types Overview
Types Instances Overview
Search
有两种在Atlas中搜索元数据的方法:
- DSL
- 全文检索
Falcon UI
More Info: Search Feature
Walk Through A Use Case
Collect Data
从Twitter中导入数据,将Raw Data存入HDFS中,并构建四张表(tweets,users,url,Hash tags)将数据分别存入,通过分析生成的表格,构建基于Hive表格的Social Network。
而在这每一步中,生成的数据的元数据都会被存入Atlas。