深入理解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/zh-hant/n/330451.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
EBPHA的頭像EBPHA
上一篇 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

發表回復

登錄後才能評論