天天看點

一站式中繼資料治理開源項目-DataHub的探索

作者:白楊Shayne

【摘要】

項目上後面要搞資料治理,網上主流的開源元件是Atlas和DataHub,這幾天剛好有時間,先把DataHub安裝試用一下。安裝過程中問題較多,花了兩天時間才安裝完。先把安裝過程記錄一下,後面把功能試用情況也寫出來。

概覽

DataHub是一個面向現代資料棧的開源中繼資料平台,依賴于中繼資料管理的現代方法。其前身是LinkedIn為了提高資料團隊的工作效率,開發并開源的WhereHows;DataHub的可擴充中繼資料平台支援資料發現、資料可觀察性和聯合治理,有助于控制資料生态系統的複雜性。

一站式中繼資料治理開源項目-DataHub的探索

架構

DataHub是第三代中繼資料平台,支援為現代資料棧建構的資料發現、協作、治理和端到端可觀察性。DataHub采用模型優先的理念,專注于解鎖不同工具和系統之間的互操作性。

一站式中繼資料治理開源項目-DataHub的探索

DataHub的架構有三個主要亮點

  • 模式優先的中繼資料模組化方法:DataHub的中繼資料模型使用與序列化無關的語言進行描述。
  • 基于流的實時中繼資料平台:DataHub的中繼資料基礎設施是面向流的,這使得中繼資料的變化可以在幾秒鐘内在平台内進行通信和反映。
  • 聯邦中繼資料服務:DataHub附帶了一個中繼資料服務(gms),作為開源存儲庫的一部分。

DataHub平台由如下圖所示的元件組成

  • 中繼資料存儲:負責存儲組成中繼資料圖的實體和方面。
  • 中繼資料模型:是定義組成中繼資料圖的實體和方面的形狀以及它們之間的關系的模式。
  • 攝入架構:是一個子產品化的,可擴充的Python庫,用于從外部源系統(如Snowflake, Looker, MySQL, Kafka)提取中繼資料,将其轉換為DataHub的中繼資料模型,并通過Kafka或直接使用中繼資料存儲Rest api将其寫入DataHub。
  • GraphQL API:提供了一個強類型的、面向實體的API,使得與組成中繼資料圖的實體的互動變得簡單,包括用于添加和删除标簽、所有者、連結和更多中繼資料實體的API ,使用者界面也是使用該API來實作搜尋和發現、治理、可觀察性等功能。
  • 使用者接口:DataHub帶有一個React UI,其中包括一組不斷發展的功能,使發現,管理和調試資料資産變得輕松愉快。

中繼資料攝取架構

DataHub支援極其靈活的攝取架構,可以支援推、拉、異步和同步模型。

一站式中繼資料治理開源項目-DataHub的探索
  • 中繼資料更改建議-中心部分:攝取的中心部分是中繼資料更改建議,它表示對組織的中繼資料圖進行中繼資料更改的請求。
  • 基于拉內建:DataHub附帶了一個基于Python的中繼資料攝取系統,該系統可以連接配接到不同的源以從中提取中繼資料。這些中繼資料然後通過Kafka或HTTP推送到DataHub存儲層。
  • 基于推內建:隻要可以向Kafka發出一個中繼資料更改建議(Metadata Change Proposal, MCP)事件,或者通過HTTP進行一個REST調用,就可以将任何系統與DataHub內建。
  • 内部元件:将中繼資料更改建議應用于DataHub中繼資料服務(mce-consumer-job);DataHub附帶了一個Spring作業mce-consumer-job,該作業使用中繼資料更改建議并使用/ingest端點将其寫入DataHub中繼資料服務(DataHub -gms)。

下面我們就來安裝試用吧~

安裝Docker

因為伺服器之前安裝過Docker,是以安裝過程省略,貼一張圖看一下 ,API版本最低要求是1.41,建議安裝最新的docker,我之前用的老版本docker,後面踩了坑。

一站式中繼資料治理開源項目-DataHub的探索

二、安裝Python3

Python要求最低3.7,我的版本是3.8.0,安裝教程太多了,這裡就不寫安裝過程了

一站式中繼資料治理開源項目-DataHub的探索

三、環境準備

yum -y install gcc
yum install libffi-devel -y
yum install zlib* -y
pip3 install toml           

四、安裝DataHub

1.安裝docker compose V2

最開始預設安裝的V1,結果運作提示需要V2,過程中各種失敗,最後還是參照官網安裝成功。

官網安裝位址:Install the Compose plugin | Docker Documentation

先通過指令行安裝了一次:

yum install docker-compose
yum install docker-compose-plugin           

用docker-compose version指令檢視版本報錯了,是以又手動安裝了一遍

mkdir -p /usr/local/lib/docker/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose
chmod +x /usr/local/lib/docker/cli-plugins/docker-compose           

安裝成功後出現版本如下:

一站式中繼資料治理開源項目-DataHub的探索

2.下載下傳源碼

主要是為了後面的步驟使用裡面的一個配置檔案

git clone https://github.com/datahub-project/datahub.git           

3.安裝DataHub

這段和官網的不一樣,參照的一個大佬的文章,是因為官網的鏡像下載下傳比較慢,而且出錯,指定了國内的鏡像;

位址:https://blog.csdn.net/Forget_Ying/article/details/119870931

python3 -m pip install --upgrade pip wheel setuptools -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
python3 -m pip uninstall datahub acryl-datahub || true # sanity check - ok if it fails
python3 -m pip install --upgrade acryl-datahub -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
datahub version           

關鍵的步驟來了,在這個地方踩了很多坑

datahub docker quickstart --quickstart-compose-file ./docker/quickstart/docker-compose-without-neo4j.quickstart.yml           

出錯了,manifest for docker.io/acryldata/datahub-actions:head not found

一站式中繼資料治理開源項目-DataHub的探索

這個是因為沒有擷取到最新的鏡像tag,需要手動指定鏡像的tag

編輯下載下傳的源碼中的配置檔案./docker/quickstart/docker-compose-without-neo4j.quickstart.yml

修改下圖紅框後面的tag号,之前是:image: acryldata/datahub-actions:${ACTIONS_VERSION:-head}

一站式中繼資料治理開源項目-DataHub的探索

繼續執行 ,結果又報新的錯誤了

toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit

一站式中繼資料治理開源項目-DataHub的探索

這個是因為docker匿名使用者的拉取鏡像的上限是100,可能我拉的次數太多了,解決辦法是

注冊docker使用者,并使用docker login登入,這樣上限就變成200了

docker login [your-domain-name]
username:[your-user-name]
pwd:[your-password]           

繼續執行,繼續踩坑:"specify container image platform" requires API version 1.41, but the Docker daemon API version is 1.26

這個是因為我docker版本太低了,因為這個docker是去年安裝的了,解除安裝後安裝最新的,步驟就省略了,貼一個老版本docker的圖檔:

一站式中繼資料治理開源項目-DataHub的探索

安裝最新的docker後,再執行終于正常了:

一站式中繼資料治理開源項目-DataHub的探索

但最終也沒有出現成功界面:

一站式中繼資料治理開源項目-DataHub的探索

到這裡就有點崩潰了,也找不到是什麼原因沒有安裝成功,提示中有個日志,打開也沒有找到有用的資訊

後來檢視了一下docker正在運作的容器,發現很多容器都在正常運作:

一站式中繼資料治理開源項目-DataHub的探索

我突然突發奇想,直接通路了一下UI界面,發現竟然可以通路!!!

一站式中繼資料治理開源項目-DataHub的探索

真實天無絕人之路,登陸試了一下,可以正常使用。開啟我的資料攝入吧~

UI位址:http://xxx.xxx.xxx.xxx:9002
使用者名密碼:datahub/datahub           

五.參考的網站:

DataHub官網:https://datahubproject.io/docs/quickstart
Docker Compose:https://docs.docker.com/compose/install/linux/
DataHub安裝配置詳細過程:https://blog.csdn.net/Forget_Ying/article/details/119870931
中繼資料管理Datahub基于Docker進行部署:http://www.pczh.cn/news/26343.html           

繼續閱讀