元數據管理平臺對比預研 Atlas VS Datahub VS Openmetadata

大家好,我是獨孤風。元數據管理平臺層出不窮,但目前主流的還是Atlas、Datahub、Openmetadata三家,那麼我們該如何選擇呢?

本文就帶大家對比一下。要了解元數據管理平臺,先要從架構說起。

元數據管理的架構與開源方案

下面介紹元數據管理的架構實現,不同的架構都對應了不同的開源實現。

下圖描述了第一代元數據架構。它通常是一個經典的單體前端(可能是一個 Flask 應用程序),連接到主要存儲進行查詢(通常是 MySQL/Postgres),一個用於提供搜索查詢的搜索索引(通常是 Elasticsearch),並且對於這種架構的第 1.5 代,也許一旦達到關係數據庫的“遞歸查詢”限制,就使用了處理譜系(通常是 Neo4j)圖形查詢的圖形索引。

很快,第二代的架構出現了。單體應用程序已拆分爲位於元數據存儲數據庫前面的服務。該服務提供了一個 API,允許使用推送機制將元數據寫入系統。

第三代架構是基於事件的元數據管理架構,客戶可以根據他們的需要以不同的方式與元數據數據庫交互。

元數據的低延遲查找、對元數據屬性進行全文和排名搜索的能力、對元數據關係的圖形查詢以及全掃描和分析能力。

Datahub 就是採用的這種架構。

下圖是當今元數據格局的簡單直觀表示:

(包含部分非開源方案)

Apache Atlas

Atlas是Hadoop的數據治理和元數據框架。Atlas於2015年7月開始在Hortonworks進行孵化。

官網地址爲:https://atlas.apache.org/

源碼地址爲:https://github.com/apache/atlas

目前標星1.7K,最新穩定版本2.3.0。

開發語言後端主要爲Java,前端功能主要爲JS實現。

特性

  • Atlas支持各種Hadoop和非Hadoop元數據類型
  • 提供了豐富的REST API進行集成
  • 對數據血緣的追溯達到了字段級別,這種技術還沒有其實類似框架可以實現
  • 對權限也有很好的控制

Atlas包括以下組件:

  • 採用Hbase存儲元數據
  • 採用Solr實現索引
  • Ingest/Export 採集導出組件 Type System類型系統 Graph Engine圖形引擎 共同構成Atlas的核心機制
  • 所有功能通過API向用戶提供,也可以通過Kafka消息系統進行集成
  • Atlas支持各種源獲取元數據:Hive,Sqoop,Storm。。。
  • 還有優秀的UI支持

Atlas是Hadoop生態的嫡系,並且天然的集成在Ambari中(不過版本較低,建議自己安裝)。

Atlas對Hive的支持極好,對Spark也有一定的支持。

如果熟悉Atlas的API,也可以很好的擴展。

但由於社羣活躍度一般,Atlas後期更新乏力。

頁面也還是老樣子,新版本的頁面並不完善,所以還有有很大的侷限性。

DataHub (LinkedIn)

LinkedIn開源出來的,原來叫做WhereHows 。經過一段時間的發展datahub於2020年2月在Github開源。

官網地址爲:https://datahubproject.io/

源碼地址爲:https://github.com/linkedin/datahub

目前標星8.8K,最新穩定版本0.12.0。

開發語言爲Java和Python。

DataHub是由LinkedIn的數據團隊開源的一款提供元數據搜索與發現的工具。

提到LinkedIn,不得不想到大名鼎鼎的Kafka,Kafka就是LinkedIn開源的。LinkedIn開源的Kafka直接影響了整個實時計算領域的發展,而LinkedIn的數據團隊也一直在探索數據治理的問題,不斷努力擴展其基礎架構,以滿足不斷增長的大數據生態系統的需求。隨着數據的數量和豐富性的增長,數據科學家和工程師要發現可用的數據資產,瞭解其出處並根據見解採取適當的行動變得越來越具有挑戰性。爲了幫助增長的同時繼續擴大生產力和數據創新,創建了通用的元數據搜索和發現工具DataHub。

由於背後有商業化的規劃,並且社區活躍,近兩年Datahub的更新異常活躍。也將自己的定位爲基於現代數據棧的元數據平臺。
DataHub實現了端到端的數據發現,數據可觀察性和數據治理。並且爲開發人員提供了豐富的擴展接口,其目的就是應對不斷變化的數據生態。事實證明,元數據管理就應該這樣去建設。
DataHub提供了跨數據庫、數據倉庫、數據湖、數據可視化工具的搜索與發現功能。實現端到端的全流程數據血緣的構建。DataHub是實時的元數據捕捉框架,可以實時感應元數據的變化。同時支持標籤,術語表,業務域等元數據的管理。DataHub還提供了豐富的權限支持。在最新的DataHub版本中,可以在頁面上去進行元數據的獲取操作。
DataHub支持的數據源非常豐富,如Tableai、PowerBI、Superset等數據可視化工具。
也支持Airflow、Spark、ES、Kafka、Hive、Mysql、Oracle等大數據組件的元數據的獲取。

Datahub的頁面經過最新的改版,規劃也較爲合理,美觀。

Openmatadata

OpenMetadata是一個用於數據治理的一體化平臺,可以幫助我們發現,協作,並正確的獲取數據。

OpenMetadata提供了數據發現、數據血緣、數據質量、數據探查、數據治理和團隊協作的一體化平臺。它是發展最快的開源項目之一,擁有充滿活力的社區,並被各行業垂直領域的衆多公司採用。 OpenMetadata 由基於開放元數據標準和API 的集中式元數據存儲提供支持,支持各種數據服務的連接器,可實現端到端元數據管理,讓您可以自由地釋放數據資產的價值。

官網地址:https://open-metadata.org/

源碼地址:https://github.com/open-metadata/OpenMetadata

目前標星3.4K,最新版本爲1.2.3。

主要開發語言,後端爲Java,前端爲TS。

其UI非常美觀,其操作和使用邏輯,也符合業務人員的習慣。

優缺點對比

Datahub:

優勢:

強大的數據發現和搜索功能,方便用戶快速定位所需數據。

提供數據質量元數據,幫助用戶理解和信任數據。

支持多種數據源,包括傳統的關係數據庫和現代的數據湖。

社區活躍,不斷有新功能和改進加入。

劣勢: 初學者可能會覺得界面和配置相對複雜。

在某些情況下,集成新的數據源可能需要額外的開發工作。

Atlas:

優勢:

與Apache Hadoop生態系統深度集成,特別適合Hadoop用戶。

提供強大的數據血緣和分類功能,有助於數據治理。

支持自定義的元數據類型和模型。

開源,有較大的社區支持和貢獻。

劣勢:

主要針對Hadoop生態系統,可能不適合非Hadoop環境。

用戶界面和用戶體驗不如一些商業產品。

如何選擇?

毫無疑問,從活躍度和發展趨勢來看,Datahub都是目前最炙手可熱的元數據管理平臺。Openmatadata更有數據治理、數據資產管理平臺的樣子。而Atlas和Hadoop聯繫緊密,也有自己優勢。

那麼我們該如何選擇呢?首先應該明確需求。

相信讀到這篇文章的人,大部分還是想做一個元數據管理平臺,以開展企業的數據治理工作。如果學習過DAMA的數據治理體系,我們應該知道做元數據管理要梳理好數據源都在哪,並儘可能的管理公司的全量數據。

而功能方面,是否需要數據血緣功能,術語表、標籤等功能都是需要調研的內容。那我們一步步來分析。

1、梳理數據源

數據倉庫與BI是大部分企業必備的,也是重要的元數據來源。不同企業的的搭建方式不同,前幾年可能更多的是離線數倉,多采用Hive,Spark等大數據技術搭建。近幾年數據湖技術,實時數倉技術出現,更多的企業會選擇如Hudi,Iceberg等技術,而實時數倉多采用Doris,Paimon等技術,在實時處理中,還要考慮收集Flink實時計算引擎的元數據。

而部分企業也希望將業務系統,如Oracle,Mysql等數據庫的元數據進行收集。

除此以外,還有一些業務元數據也是需要梳理的,一般通過接口、頁面都可以操作。

原生支持所有組件的元數據管理平臺是不存在的。但是好在元數據管理平臺都提供了豐富的API接口,是可以擴展的。

所以在對數據源梳理後,並結合上面元數據管理平臺的特性,可以做出基本的選擇。

如果企業需要管理的數據源主要是大數據組件,Hive和Spark爲主,可以使用Atlas快速的搭建一個元數據管理平臺,由於原生的支持,基本不需要做很多的適配,只要安裝配置好就可以。

但是如果企業收集元數據不限於此,建議選擇更靈活的Datahub和Openmetadata,反正都要做適配,做二次開發,不如直接選一個更靈活的。

2、明確需求

我們先來看看三個平臺的功能。

Altas有搜索,數據血緣,標籤,術語表等功能。

Datahub有搜索,數據血緣,數據分析,標籤,術語表等功能,也可以集成數據質量框架,如GreatExceptions。

Openmetadata有搜索,數據血緣,數據質量,數據分析,標籤,術語表功能,並且有團隊協作的功能。

如果這些能滿足公司的需要就是可以選擇的,如果不能,那麼多餘的功能就需要另外的開發了。

二開這裏簡單說一下,如果是元數據管理平臺+數據治理工具的組合,建議選擇Datahub基本可以覆蓋所有的元數據管理功能,也有很好的擴展性。

而如果想選擇一個平臺大而全,可以考慮在Openmetadata基礎上二開,畢竟支持的功能多一些。

3、可行性

雖然完事具備,但是能不能實行,其實並不一定。實現元數據管理的難度巨大

在項目開始之前,必須要考慮實現的難度,如果不需要二開,可能只需要有經驗的技術人員或者運維人員安裝好就可以。

但是如果需要二開,則必須考慮開發難度。

Atlas後端主要爲Java,需要高級的Java開發人員進行鑽研,如需要更改頁面,也需要前端人員的配合。

Datahub後端Java和Python都有的,而核心的數據攝取部分,主要是Python爲主,熟悉Python框架的同學會更好上手。如需要更改頁面,也需要前端人員的配合。

Openmetadata後端爲Java,前端爲TS。同樣都是要有相關經驗的人員參與的。

元數據管理並不容易,我在搭建二開環境的過程中也是遇到了很大的困難,但是熟悉開源項目的源碼對於自研項目也有着非常大的幫助,沒有白走的路,越是困難收穫也會更大。

歡迎加入大數據流動,共同學習元數據管理相關知識,未完待續~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章