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

原创文章,作者:EBPHA,如若转载,请注明出处:https://www.506064.com/n/330451.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
EBPHAEBPHA
上一篇 2025-01-16 15:46
下一篇 2025-01-16 15:46

相关推荐

  • Apache配置Python环境

    Apache是一款流行的Web服务器软件,事实上,很多时候我们需要在Web服务器上使用Python程序做为数据处理和前端网页开发语言,这时候,我们就需要在Apache中配置Pyth…

    编程 2025-04-28
  • Apache伪静态配置Java

    本文将会从多个角度阐述如何在Apache中正确伪装Java应用程序,实现URL的静态化,提高网站的SEO优化和性能。以下是相关的配置和代码实例。 一、RewriteEngine的配…

    编程 2025-04-27
  • 如何解决org.apache.tomcat.util.net.nioendpoint套接字处理器出错?

    org.apache.tomcat.util.net.nioendpoint套接字处理器一般是指Tomcat服务器的套接字处理器,在Tomcat服务器中占据着非常重要的位置。如果出…

    编程 2025-04-27
  • nginx与apache应用开发详解

    一、概述 nginx和apache都是常见的web服务器。nginx是一个高性能的反向代理web服务器,将负载均衡和缓存集成在了一起,可以动静分离。apache是一个可扩展的web…

    编程 2025-04-25
  • 深入解析Vue3 defineExpose

    Vue 3在开发过程中引入了新的API `defineExpose`。在以前的版本中,我们经常使用 `$attrs` 和` $listeners` 实现父组件与子组件之间的通信,但…

    编程 2025-04-25
  • 深入理解byte转int

    一、字节与比特 在讨论byte转int之前,我们需要了解字节和比特的概念。字节是计算机存储单位的一种,通常表示8个比特(bit),即1字节=8比特。比特是计算机中最小的数据单位,是…

    编程 2025-04-25
  • 深入理解Flutter StreamBuilder

    一、什么是Flutter StreamBuilder? Flutter StreamBuilder是Flutter框架中的一个内置小部件,它可以监测数据流(Stream)中数据的变…

    编程 2025-04-25
  • 深入探讨OpenCV版本

    OpenCV是一个用于计算机视觉应用程序的开源库。它是由英特尔公司创建的,现已由Willow Garage管理。OpenCV旨在提供一个易于使用的计算机视觉和机器学习基础架构,以实…

    编程 2025-04-25
  • 深入了解scala-maven-plugin

    一、简介 Scala-maven-plugin 是一个创造和管理 Scala 项目的maven插件,它可以自动生成基本项目结构、依赖配置、Scala文件等。使用它可以使我们专注于代…

    编程 2025-04-25
  • 深入了解LaTeX的脚注(latexfootnote)

    一、基本介绍 LaTeX作为一种排版软件,具有各种各样的功能,其中脚注(footnote)是一个十分重要的功能之一。在LaTeX中,脚注是用命令latexfootnote来实现的。…

    编程 2025-04-25

发表回复

登录后才能评论