一、概述
Apache Atlas是一个开源的、可扩展的元数据管理和数据治理工具,主要用于数据源管理、知识图谱建设、安全合规等方面。Apache Atlas提供了一个简单易用的方式,帮助企业构建一个全面、一致和可跟踪的数据平台。
二、核心功能
1.元数据管理
Apache Atlas提供了一种集中式的元数据管理机制,可以为用户的数据建立全方位的元数据,包括数据信息、数据流程、数据生命周期、数据安全等。元数据的定义可自定义扩展,可以定义属性、关系和对象的类型,为公司内部数据治理提供便利。
{
"guid": "ffe22627-e3ce-4b02-9b10-abb8652ab10e",
"typeName": "hive_column",
"attributes": {
"name": "user_name",
"qualifiedName": "default.user_table.user_name",
"position": 2,
"type": "string",
"unique": false
},
"createdBy": "admin",
"updatedBy": "admin",
}
2.活动跟踪
Apache Atlas可以跟踪数据和元数据的变化以及数据资产的使用情况,并且提供了强大的搜索功能以定位数据资产的位置和使用情况,数据的追踪与审计功能的实现都有较好的支持。
{
"eventId": "d5487d38-3d9f-424e-ab7f-326bd077af8f",
"eventType": "ENTITY_UPDATE",
"eventKey": {
"guid": "23b0c94b-9864-4858-af7d-5e6e7a76d9dc",
"version": 1,
"keyType": "GUID"
},
"user": "admin",
"clientAddress": "0:0:0:0:0:0:0:1",
"timestamp": 1567164377464,
"details": {
"httpRemoteAddr": "0:0:0:0:0:0:0:1",
"httpUserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36",
"httpHeaders": {
"X-Forwarded-For": "10.11.18.251",
"Accept": "application/json",
"Host": "localhost:21000"
},
"updatedEntity": {
"typeName": "hive_table",
"attributes": {
"comment": null,
"owner": "admin1",
"name": "sample1",
"columns": []
}
},
"classificationNames": [],
"entityId": "23b0c94b-9864-4858-af7d-5e6e7a76d9dc",
"entityType": "hive_table"
}
}
3.数据标签化
Apache Atlas还支持对象和数据的标记。将对象标记为“敏感”、“重要”、“公开”等标签,有助于对整个数据资产的掌控和管理,并提供了基于标签的身份验证和表达式,方便用户对数据资产进行更细粒度的授权和审批。
{
"typeName": "PII",
"superTypes": [
"DataSet"
],
"attributeDefinitions": [
{
"name": "classificationLabels",
"dataTypeName": "array
",
"isComposite": false,
"multiplicity": {
"lower": 0,
"upper": 1
},
"isUnique": false,
"isIndexable": false
}
],
"options": {
"notInternal": false
},
"createdBy": null,
"updatedBy": null
}
三、使用方式
1.集成方式
Apache Atlas提供了丰富的RESTful API接口和Java Client SDK,可以方便地与其他数据系统集成,如Hadoop、Spark和NoSQL数据库等。
AtlasClient atlasClient = new AtlasClient(new String[]{"http://localhost:21000"}, new String[]{"admin", "admin"});
List<AtlasEntity> results = atlasClient.searchEntities("column_type=\"string\"", 1, 10);
2.定制元数据类型
Apache Atlas提供了定义、扩展和定制元数据类型的功能,可通过Python脚本或RESTful API进行管理。个性化的元数据定义可以根据不同的业务需求进行自由扩展,提高元数据管理的有效性和精准度。
{
"classificationDefs": [
{
"name": "PII",
"superTypes": ["DataSet"],
"subTypes": [],
"attributeDefs": [
{
"name": "classificationLabels",
"type": "array
",
"isOptional": true,
"cardinality": "SINGLE",
"valuesMinCount": 0,
"valuesMaxCount": 5,
"isUnique": false,
"isIndexable": false,
"defaultValue": null
}
],
"entityTypes": []
}
]
}
3.元数据管理组件
Apache Atlas提供了丰富的元数据管理功能,包括元数据创建、删除、更新、搜索和导出等,为数据资产管理提供全面的支持。此外,还开发了标准的插件化接口,可支持不同的数据平台和数据系统。
public interface AtlasPlugin {
void start(final ServletContext context) throws AtlasPluginException;
void stop();
String getPluginName();
}
四、总结
Apache Atlas不仅提供了一个易于使用的元数据管理工具,还支持动态扩展和定制数据类型和元数据,同时支持多种集成方式和丰富的插件化接口。Apache Atlas有望成为企业数据管理和数据治理的领先平台。