Apache atlas使用说明文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Apache atlas
第一章:Apache atlas简介
为寻求数据治理的开源解决方案,Hortonworks公司联合其他厂商与用户于2015年发起数据治理倡议,包括数据分类、集中策略引擎、数据血缘、安全和生命周期管理等方面。Apache Atlas 项目就是这个倡议的结果,社区伙伴持续的为该项目提供新的功能和特性。该项目用于管理共享元数据、数据分级、审计、安全性以及数据保护等方面,努力与Apache Ranger整合,用于数据权限控制策略。目前最新版本是2.0.0.
.1apache atlas 架构介绍
1.1.1核心组件Core
Type System: Apache Atlas 允许用户为他们想要管理的元数据对象定义一个模型,该模型被叫做“类型”。类型的实例被称为“实体”,实体用来表示被管理的实际元数据对象类型系统是允许用户定义和管理类型和实体的组件。。
例如:Atlas 本身自带的hive_table类
Name: hive_table
TypeCategory: Entity
SuperTypes: DataSet
Attributes:
name: string
db: hive_db
owner: string
createTime: date
lastAccessTime: date
comment: string
retention: int
sd: hive_storagedesc
partitionKeys: array
aliases: array
columns: array
parameters: map
viewOriginalText: string
viewExpandedText: string
tableType: string
temporary: boolean
从上面示例中可以看出,类由名称name唯一标识
类型具有元类型。Atlas具有以下元类型:
•基本元类型:boolean, byte, short, int, long, float, double, biginteger, bigdecimal, string, date •枚举
•集合元类型:array, map
•复合元类型:Entity, Struct, Classification, Relationship
Hive_table类的一个实体
guid: "9ba387dd-fa76-429c-b791-ffc338d3c91f"
typeName: "hive_table"
status: "ACTIVE"
values:
name: “customers”
db: { "guid": "b42c6cfc-c1e7-42fd-a9e6-890e0adf33bc",
"typeName": "hive_db"
}
owner: “admin”
createTime: 1490761686029
updateTime: 1516298102877
comment:
retention: 0
sd: { "guid": "ff58025f-6854-4195-9f75-3a3058dd8dcf",
"typeName":
"hive_storagedesc"
}
partitionKeys:
aliases:
columns: [ { "guid": "65e2204f-6a23-4130-934a-9679af6a211f",
"typeName": "hive_column" },
{ "guid": "d726de70-faca-46fb-9c99-cf04f6b579a6",
"typeName": "hive_column" },
...
]
parameters: { "transient_lastDdlTime": "1466403208"}
viewOriginalText:
viewExpandedText:
tableType: “MANAGED_TABLE”
temporary:
实体类型的每个实例都由唯一标识符GUID标识。
定义对象时,此GUID由Atlas服务器生成,并且在实体的整个生命周期内保持不变。在任何时间点,都可以使用其GUID访问此特定实体。
Ingest/Export:Ingest 组件允许将元数据添加到Atlas。类似地,Export 组件暴露由Atlas 检测到的元数据更改,以作为事件引发,消费者可以使用这些更改事件来实时响应元数据更改。
Graph Engine:在内部,Atlas保留使用Graph模型管理的元数据对象。这种方法提供了极大的灵活性,并可以有效处理元数据对象之间的丰富关系。图引擎组件负责在Atlas类型系统的类型和实体以及基础图持久性模型之间进行转换。除了管理图形对象外,图形引擎还为元数据对象创建适当的索引,以便可以有效地搜索它们。Atlas使用JanusGraph存储元数据对象。
1.1.2 Integration
用户可以使用两种方法整合管理Atlas中的元数据:
⚫API:Atlas 的所有功能都可以通过REST API 提供给最终用户,允许创建,更新和删除类型和实体。
它也是查询和发现通过Atlas 管理的类型和实体的主要方法。
⚫Messaging:除了API 之外,用户还可以选择使用基于Kafka 的消息接口与Atlas 集成。这对于将元数据对象传输到Atlas 以及从Atlas 使用可以构建应用程序的元数据更改事件都非常有用。如果希望使用与Atlas 更松散耦合的集成,这可以允许更好的可扩展性,可靠性等,消息传递接口是特别有用的。Atlas 使用Apache Kafka 作为通知服务器用于钩子和元数据通知事件的下游消费者之间的通信。事件由钩子(hook)和Atlas 写到不同的Kafka 主题:
1.1.3 Metadata source
Atlas 支持与许多元数据源的集成,将来还会添加更多集成。目前,Atlas 支持从以下数据源获取和管理元数据:
⚫Hive:通过hive-brige,atlas可以接入Hive的元数据,包括hive_db,hive_table,hive_column,hive_process ⚫Sqoop:通过sqoop-brige,atlas可以接入关系型数据库的元数据。
⚫kafka:通过kafka-brige接入
⚫Storm:通过strom-brige可以接入流式处理的元数据
Atlas集成大数据组件的元数据源需要实现以下两点:
首先,需要基于atlas的类型系统定义能够表达大数据组件元数据对象的元数据模型(例如Hive的元数据模型实现在org.apache.atlas.hive.model.HiveDataModelGenerator;
然后,需要提供hook组件去从大数据组件的元数据源中提取元数据对象,实时侦听元数据的变更并反馈给atlas;
1.1.4 应用领域
Atlas Admin UI:此组件是一个基于Web的应用程序,允许数据管理员和科学家发现和注释元数据。这里最重要的是搜索界面和类似SQL的查询语言,可用于查询Atlas管理的元数据类型和对象。管理员界面使