您的位置:

深入理解Apache Atlas

一、概述

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有望成为企业数据管理和数据治理的领先平台。