隨著數(shù)字化轉(zhuǎn)型的工作推進(jìn)维苔,數(shù)據(jù)治理的工作已經(jīng)被越來(lái)越多的公司提上了日程。作為新一代的元數(shù)據(jù)管理平臺(tái)懂昂,Datahub在近一年的時(shí)間里發(fā)展迅猛介时,大有取代老牌元數(shù)據(jù)管理工具Atlas之勢(shì)。國(guó)內(nèi)Datahub的資料非常少,大部分公司想使用Datahub作為自己的元數(shù)據(jù)管理平臺(tái)沸柔,但可參考的資料太少循衰。
所以整理了這份文檔供大家學(xué)習(xí)使用。 本文檔基于Datahub最新的0.8.20版本褐澎,整理自部分官網(wǎng)內(nèi)容会钝,各種博客及實(shí)踐過(guò)程。
通過(guò)本文檔工三,可以快速的入門(mén)Datahub迁酸,成功的搭建Datahub并且獲取到數(shù)據(jù)庫(kù)的元數(shù)據(jù)信息。是從0到1的入門(mén)文檔俭正。
文檔共分為6個(gè)部分奸鬓,層級(jí)結(jié)構(gòu)如下圖所示。
一掸读、數(shù)據(jù)治理與元數(shù)據(jù)管理
1全蝶、背景
為什么要做數(shù)據(jù)治理? 業(yè)務(wù)繁多寺枉,數(shù)據(jù)繁多抑淫,業(yè)務(wù)數(shù)據(jù)不斷迭代。人員流動(dòng)姥闪,文檔不全始苇,邏輯不清楚,對(duì)于數(shù)據(jù)很難直觀理解筐喳,后期很難維護(hù)催式。
在大數(shù)據(jù)研發(fā)中,原始數(shù)據(jù)就有著非常多的數(shù)據(jù)庫(kù)避归,數(shù)據(jù)表荣月。
而經(jīng)過(guò)數(shù)據(jù)的聚合以后,又會(huì)有很多的維度表梳毙。
近幾年來(lái)數(shù)據(jù)的量級(jí)在瘋狂的增長(zhǎng)哺窄,由此帶來(lái)了系列的問(wèn)題。作為對(duì)人工智能團(tuán)隊(duì)的數(shù)據(jù)支撐账锹,我們聽(tīng)到的最多的質(zhì)疑是 “正確的數(shù)據(jù)集”萌业,他們需要正確的數(shù)據(jù)用于他們的分析。我們開(kāi)始意識(shí)到奸柬,雖然我們構(gòu)建了高度可擴(kuò)展的數(shù)據(jù)存儲(chǔ)生年,實(shí)時(shí)計(jì)算等等能力,但是我們的團(tuán)隊(duì)仍然在浪費(fèi)時(shí)間尋找合適的數(shù)據(jù)集來(lái)進(jìn)行分析廓奕。
也就是說(shuō)我們?nèi)狈?duì)數(shù)據(jù)資產(chǎn)的管理抱婉。事實(shí)上档叔,有很多公司都提供了開(kāi)源的解決方案來(lái)解決上述問(wèn)題,這也就是數(shù)據(jù)發(fā)現(xiàn)與元數(shù)據(jù)管理工具蒸绩。
2蹲蒲、元數(shù)據(jù)管理
簡(jiǎn)單地說(shuō),元數(shù)據(jù)管理是為了對(duì)數(shù)據(jù)資產(chǎn)進(jìn)行有效的組織侵贵。它使用元數(shù)據(jù)來(lái)幫助管理他們的數(shù)據(jù)届搁。它還可以幫助數(shù)據(jù)專(zhuān)業(yè)人員收集、組織窍育、訪問(wèn)和豐富數(shù)據(jù)卡睦,以支持?jǐn)?shù)據(jù)治理。
三十年前漱抓,數(shù)據(jù)資產(chǎn)可能是 Oracle 數(shù)據(jù)庫(kù)中的一張表表锻。然而,在現(xiàn)代企業(yè)中乞娄,我們擁有一系列令人眼花繚亂的不同類(lèi)型的數(shù)據(jù)資產(chǎn)瞬逊。可能是關(guān)系數(shù)據(jù)庫(kù)或 NoSQL 存儲(chǔ)中的表仪或、實(shí)時(shí)流量數(shù)據(jù)确镊、 AI 系統(tǒng)中的功能、指標(biāo)平臺(tái)中的指標(biāo)范删,數(shù)據(jù)可視化工具中的儀表板蕾域。
現(xiàn)代元數(shù)據(jù)管理應(yīng)包含所有這些類(lèi)型的數(shù)據(jù)資產(chǎn),并使數(shù)據(jù)工作者能夠更高效地使用這些資產(chǎn)完成工作到旦。
所以旨巷,元數(shù)據(jù)管理系統(tǒng)應(yīng)具備的功能如下:
搜索和發(fā)現(xiàn):數(shù)據(jù)表、字段添忘、標(biāo)簽采呐、使用信息
訪問(wèn)控制:訪問(wèn)控制組、用戶搁骑、策略
數(shù)據(jù)血緣:管道執(zhí)行斧吐、查詢(xún)
合規(guī)性:數(shù)據(jù)隱私/合規(guī)性注釋類(lèi)型的分類(lèi)
數(shù)據(jù)管理:數(shù)據(jù)源配置、攝取配置靶病、保留配置会通、數(shù)據(jù)清除策略
AI 可解釋性口予、再現(xiàn)性:特征定義娄周、模型定義、訓(xùn)練運(yùn)行執(zhí)行沪停、問(wèn)題陳述
數(shù)據(jù)操作:管道執(zhí)行煤辨、處理的數(shù)據(jù)分區(qū)裳涛、數(shù)據(jù)統(tǒng)計(jì)
數(shù)據(jù)質(zhì)量:數(shù)據(jù)質(zhì)量規(guī)則定義、規(guī)則執(zhí)行結(jié)果众辨、數(shù)據(jù)統(tǒng)計(jì)
3端三、架構(gòu)與開(kāi)源方案
下面介紹元數(shù)據(jù)管理的架構(gòu)實(shí)現(xiàn),不同的架構(gòu)都對(duì)應(yīng)了不同的開(kāi)源實(shí)現(xiàn)鹃彻。
下圖描述了第一代元數(shù)據(jù)架構(gòu)郊闯。它通常是一個(gè)經(jīng)典的單體前端(可能是一個(gè) Flask 應(yīng)用程序),連接到主要存儲(chǔ)進(jìn)行查詢(xún)(通常是 MySQL/Postgres)蛛株,一個(gè)用于提供搜索查詢(xún)的搜索索引(通常是 Elasticsearch)团赁,并且對(duì)于這種架構(gòu)的第 1.5 代表,也許一旦達(dá)到關(guān)系數(shù)據(jù)庫(kù)的“遞歸查詢(xún)”限制谨履,就使用了處理譜系(通常是 Neo4j)圖形查詢(xún)的圖形索引欢摄。
很快,第二代的架構(gòu)就出現(xiàn)了笋粟。單體應(yīng)用程序已拆分為位于元數(shù)據(jù)存儲(chǔ)數(shù)據(jù)庫(kù)前面的服務(wù)怀挠。該服務(wù)提供了一個(gè) API,允許使用推送機(jī)制將元數(shù)據(jù)寫(xiě)入系統(tǒng)害捕。
第三代架構(gòu)是基于事件的元數(shù)據(jù)管理架構(gòu)绿淋,客戶可以根據(jù)他們的需要以不同的方式與元數(shù)據(jù)數(shù)據(jù)庫(kù)交互。
元數(shù)據(jù)的低延遲查找尝盼、對(duì)元數(shù)據(jù)屬性進(jìn)行全文和排名搜索的能力躬它、對(duì)元數(shù)據(jù)關(guān)系的圖形查詢(xún)以及全掃描和分析能力。
Datahub 就是采用的這種架構(gòu)东涡。
下圖是當(dāng)今元數(shù)據(jù)格局的簡(jiǎn)單直觀表示:
(包含部分非開(kāi)源方案)
二冯吓、Datahub簡(jiǎn)介
首先,阿里云也有一款名為DataHub的產(chǎn)品疮跑,是一個(gè)流式處理平臺(tái)组贺,本文所述DataHub與其無(wú)關(guān)。
數(shù)據(jù)治理是大佬們最近談的一個(gè)火熱的話題祖娘。不管?chē)?guó)家層面失尖,還是企業(yè)層面現(xiàn)在對(duì)這個(gè)問(wèn)題是越來(lái)越重視。數(shù)據(jù)治理要解決數(shù)據(jù)質(zhì)量渐苏,數(shù)據(jù)管理掀潮,數(shù)據(jù)資產(chǎn),數(shù)據(jù)安全等問(wèn)題琼富。而數(shù)據(jù)治理的關(guān)鍵就在于數(shù)據(jù)管理仪吧,我們要知道數(shù)據(jù)的來(lái)龍去脈,才能對(duì)數(shù)據(jù)進(jìn)行全方位的管理鞠眉,監(jiān)控薯鼠,洞察择诈。
DataHub是由LinkedIn的數(shù)據(jù)團(tuán)隊(duì)開(kāi)源的一款提供元數(shù)據(jù)搜索與發(fā)現(xiàn)的工具。
提到LinkedIn出皇,不得不想到大名鼎鼎的Kafka羞芍,Kafka就是LinkedIn開(kāi)源的。LinkedIn開(kāi)源的Kafka直接影響了整個(gè)實(shí)時(shí)計(jì)算領(lǐng)域的發(fā)展郊艘,而LinkedIn的數(shù)據(jù)團(tuán)隊(duì)也一直在探索數(shù)據(jù)治理的問(wèn)題荷科,不斷努力擴(kuò)展其基礎(chǔ)架構(gòu),以滿足不斷增長(zhǎng)的大數(shù)據(jù)生態(tài)系統(tǒng)的需求纱注。隨著數(shù)據(jù)的數(shù)量和豐富性的增長(zhǎng)步做,數(shù)據(jù)科學(xué)家和工程師要發(fā)現(xiàn)可用的數(shù)據(jù)資產(chǎn),了解其出處并根據(jù)見(jiàn)解采取適當(dāng)?shù)男袆?dòng)變得越來(lái)越具有挑戰(zhàn)性奈附。為了幫助增長(zhǎng)的同時(shí)繼續(xù)擴(kuò)大生產(chǎn)力和數(shù)據(jù)創(chuàng)新全度,創(chuàng)建了通用的元數(shù)據(jù)搜索和發(fā)現(xiàn)工具DataHub。
市面上常見(jiàn)的元數(shù)據(jù)管理系統(tǒng)有如下幾個(gè):
a) linkedin datahub:
https://github.com/linkedin/datahub
b) apache atlas:
https://github.com/apache/atlas
c) lyft amundsen
https://github.com/lyft/amundsen
atlas對(duì)hive有非常好的支持斥滤,但是部署起來(lái)非常的吃力将鸵。amundsen還是一個(gè)新興的框架,還沒(méi)有release版本佑颇,未來(lái)可能會(huì)發(fā)展起來(lái)還需要慢慢觀察顶掉。
綜上,datahub是目前的一顆新星挑胸,只是目前datahub的資料還較少痒筒,未來(lái)我們將持續(xù)關(guān)注與更新datahub的更多資訊。
目前datahub的github星數(shù)已經(jīng)達(dá)到4.3k茬贵。
Datahub官網(wǎng)
Datahub官網(wǎng)對(duì)于其描述為Data ecosystems are diverse — too diverse. DataHub's extensible metadata platform enables data discovery, data observability and federated governance that helps you tame this complexity.
數(shù)據(jù)生態(tài)是多樣的簿透,而 DataHub提供了可擴(kuò)展的元數(shù)據(jù)管理平臺(tái),可以滿足數(shù)據(jù)發(fā)現(xiàn)解藻,數(shù)據(jù)可觀察與治理老充。這也極大的解決了數(shù)據(jù)復(fù)雜性的問(wèn)題。
Datahub提供了豐富的數(shù)據(jù)源支持與血緣展示螟左。
在獲取數(shù)據(jù)源的時(shí)候啡浊,只需要編寫(xiě)簡(jiǎn)單的yml文件就可以完成元數(shù)據(jù)的獲取。
在數(shù)據(jù)源的支持方面胶背,Datahub支持druid巷嚣,hive,kafka钳吟,mysql廷粒,oracle,postgres砸抛,redash评雌,metabase树枫,superset等數(shù)據(jù)源直焙,并支持通過(guò)airflow的數(shù)據(jù)血緣獲取景东。可以說(shuō)實(shí)現(xiàn)了從數(shù)據(jù)源到BI工具的全鏈路的數(shù)據(jù)血緣打通奔誓。
三斤吐、Datahub界面
通過(guò)Datahub的頁(yè)面我們來(lái)簡(jiǎn)單了解下Datahub所能滿足的功能。
1厨喂、首頁(yè)
首先和措,在登錄到Datahub以后就進(jìn)入了Datahub首頁(yè),首頁(yè)中提供了Datahub的菜單欄蜕煌,搜索框和元數(shù)據(jù)信息列表派阱。這是為了讓大家可以快速的對(duì)元數(shù)據(jù)進(jìn)行管理。
元數(shù)據(jù)信息中按照數(shù)據(jù)集斜纪,儀表板贫母,圖表等類(lèi)型進(jìn)行了分類(lèi)。
再往下看是平臺(tái)信息盒刚,在這當(dāng)中包括了Hive腺劣,Kafka,Airflow等平臺(tái)信息的收集因块。
下面其實(shí)是一些搜索的統(tǒng)計(jì)信息橘原。用于統(tǒng)計(jì)最近以及最流行的搜索結(jié)果。
包括一些標(biāo)簽和術(shù)語(yǔ)表信息涡上。
2趾断、分析頁(yè)面
分析頁(yè)面是對(duì)元數(shù)據(jù)信息的統(tǒng)計(jì),也是對(duì)使用datahub的用戶信息的統(tǒng)計(jì)吩愧。
可以理解為一個(gè)展示頁(yè)面歼冰,這對(duì)于總體情況的了解還是非常的有必要的。
其他的功能基本是對(duì)于用戶和權(quán)限的控制耻警。
四隔嫡、整體架構(gòu)
要想學(xué)習(xí)好Datahub,就必須了解Datahub的整體架構(gòu)甘穿。
通過(guò)Datahub的架構(gòu)圖可以清晰的了解Datahub的架構(gòu)組成腮恩。
DataHub 的架構(gòu)有三個(gè)主要部分。
前端為 Datahub frontend作為前端的頁(yè)面展示温兼。
豐富的前端展示讓Datahub 擁有了支撐大多數(shù)功能的能力秸滴。其前端基于React框架研發(fā),對(duì)于有二次研發(fā)打算的公司募判,要注意此技術(shù)棧的匹配性荡含。
后端 Datahub serving來(lái)提供后端的存儲(chǔ)服務(wù)咒唆。
Datahub 的后端開(kāi)發(fā)語(yǔ)言為Python,存儲(chǔ)基于ES或者Neo4J释液。
而Datahub ingestion則用于抽取元數(shù)據(jù)信息全释。
Datahub 提供了基于API元數(shù)據(jù)主動(dòng)拉取方式,和基于Kafka的實(shí)時(shí)元數(shù)據(jù)獲取方式误债。這對(duì)于元數(shù)據(jù)的獲取非常的靈活浸船。
這三部分也是我們部署過(guò)程中主要關(guān)注的點(diǎn),下面我們就從零開(kāi)始部署Datahub寝蹈,并獲取一個(gè)數(shù)據(jù)庫(kù)的元數(shù)據(jù)信息李命。
五、快速安裝部署
部署datahub對(duì)于系統(tǒng)有一定的要求箫老。本文基于CentOS7進(jìn)行安裝封字。
要先安裝好 docker,jq耍鬓,docker-compose阔籽。同時(shí)保證系統(tǒng)的python版本為 Python 3.6+。
1界斜、安裝docker仿耽,docker-compose,jq
Docker 是一個(gè)開(kāi)源的應(yīng)用容器引擎各薇,讓開(kāi)發(fā)者可以打包他們的應(yīng)用以及依賴(lài)包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的Linux或Windows操作系統(tǒng)的機(jī)器上,也可以實(shí)現(xiàn)虛擬化,容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口项贺。
可以通過(guò)yum的方式快速的安裝docker
yum?-y install docker
完成后通過(guò)docker -v來(lái)查看版本情況。
# docker -vDockerversion1.13.1,build7d71120/1.13.1
通過(guò)下面的命令可以啟停docker
systemctl start docker// 啟動(dòng)dockersystemctl stop docker// 關(guān)閉docker
隨后安裝Docker Compose
Docker Compose是 docker 提供的一個(gè)命令行工具峭判,用來(lái)定義和運(yùn)行由多個(gè)容器組成的應(yīng)用开缎。使用 compose,我們可以通過(guò) YAML 文件聲明式的定義應(yīng)用程序的各個(gè)服務(wù)林螃,并由單個(gè)命令完成應(yīng)用的創(chuàng)建和啟動(dòng)奕删。
sudo curl -L"https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)"-o /usr/local/bin/docker-compose
修改執(zhí)行權(quán)限
sudochmod+x/usr/local/bin/docker-compose
建立軟連接
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
查看版本,驗(yàn)證安裝成功疗认。
docker-compose--versiondocker-composeversion1.29.2,build5becea4c
安裝jq
首先安裝EPEL源完残,企業(yè)版 Linux 附加軟件包(以下簡(jiǎn)稱(chēng) EPEL)是一個(gè) Fedora 特別興趣小組,用以創(chuàng)建横漏、維護(hù)以及管理針對(duì)企業(yè)版 Linux 的一個(gè)高質(zhì)量附加軟件包集谨设,面向的對(duì)象包括但不限于 紅帽企業(yè)版 Linux (RHEL)、 CentOS缎浇、Scientific Linux (SL)扎拣、Oracle Linux (OL) 。
EPEL 的軟件包通常不會(huì)與企業(yè)版 Linux 官方源中的軟件包發(fā)生沖突,或者互相替換文件二蓝。EPEL 項(xiàng)目與 Fedora 基本一致誉券,包含完整的構(gòu)建系統(tǒng)、升級(jí)管理器刊愚、鏡像管理器等等踊跟。
安裝EPEL源
yuminstallepel-release
安裝完EPEL源后,可以查看下jq包是否存在:
yumlistjq
安裝jq:
yuminstall jq
2百拓、安裝python3
安裝依賴(lài)
yum-y groupinstall"Development tools"yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
下載安裝包
wgethttps://www.python.org/ftp/python/3.8.3/Python-3.8.3.tgztar -zxvf? Python-3.8.3.tgz
編譯安裝
mkdir /usr/local/python3cdPython-3.8.3./configure --prefix=/usr/local/python3make && make install
修改系統(tǒng)默認(rèn)python指向
rm-rf /usr/bin/pythonln-s /usr/local/python3/bin/python3 /usr/bin/python
修改系統(tǒng)默認(rèn)pip指向
rm-rf /usr/bin/pipln-s /usr/local/python3/bin/pip3 /usr/bin/pip
驗(yàn)證
python-V
修復(fù)yum
python3會(huì)導(dǎo)致yum不能正常使用
vi /usr/bin/yum 把 #!/usr/bin/python 修改為 #!/usr/bin/python2 vi /usr/libexec/urlgrabber-ext-down 把 #!/usr/bin/python 修改為 #!/usr/bin/python2vi /usr/bin/yum-config-manager#!/usr/bin/python 改為 #!/usr/bin/python2沒(méi)有的不用修改
3琴锭、安裝與啟動(dòng)datahub
首先升級(jí)pip
python3 -m pipinstall--upgrade pip wheel setuptools
需要看到下面成功的返回。
Attemptinguninstall:setuptoolsFoundexistinginstallation:setuptools57.4.0Uninstallingsetuptools-57.4.0:Successfullyuninstalledsetuptools-57.4.0Attemptinguninstall:pipFoundexistinginstallation:pip21.2.3Uninstallingpip-21.2.3:Successfullyuninstalledpip-21.2.3
檢查環(huán)境
python3-m pip uninstall datahub acryl-datahub ||true# sanity check - ok if it fails
收到這樣的提示說(shuō)明沒(méi)有問(wèn)題。
WARNING: Skipping datahubasitisnotinstalled.WARNING: Skipping acryl-datahubasitisnotinstalled.
安裝datahub疏旨,此步驟時(shí)間較長(zhǎng)饿肺,耐心等待。
python3 -m pipinstall--upgrade acryl-datahub
收到這樣的提示說(shuō)明安裝成功凿试。
SuccessfullyinstalledPyYAML-6.0acryl-datahub-0.8.20.0avro-1.11.0avro-gen3-0.7.1backports.zoneinfo-0.2.1certifi-2021.10.8charset-normalizer-2.0.9click-8.0.3click-default-group-1.2.2docker-5.0.3entrypoints-0.3expandvars-0.7.0idna-3.3mypy-extensions-0.4.3progressbar2-3.55.0pydantic-1.8.2python-dateutil-2.8.2python-utils-2.6.3pytz-2021.3pytz-deprecation-shim-0.1.0.post0requests-2.26.0stackprinter-0.2.5tabulate-0.8.9toml-0.10.2typing-extensions-3.10.0.2typing-inspect-0.7.1tzdata-2021.5tzlocal-4.1urllib3-1.26.7websocket-client-1.2.3
最后我們看到datahub的版本情況。
[root@node01bin]#python3-mdatahubversionDataHub CLI version:0.8.20.0Python version:3.8.3(default,Aug102021,14:25:56)[GCC4.8.520150623(RedHat4.8.5-44)]
隨后啟動(dòng)datahub
python3-m datahub docker quickstart
會(huì)經(jīng)過(guò)漫長(zhǎng)的下載過(guò)程,耐心等待俊鱼。
開(kāi)始啟動(dòng),注意觀察報(bào)錯(cuò)情況畅买。如果網(wǎng)速不好并闲,需要多執(zhí)行幾次。
如果可以看到如下顯示谷羞,證明安裝成功了帝火。
訪問(wèn)ip:9002 輸入 datahub datahub 登錄
六、元數(shù)據(jù)信息的獲取
登錄到Datahub以后湃缎,會(huì)有一個(gè)友好的welcome頁(yè)面犀填。來(lái)提示如何進(jìn)行元數(shù)據(jù)的抓取。
元數(shù)據(jù)攝入使用的是插件架構(gòu)嗓违,你僅需要安裝所需的插件九巡。
攝入源有很多
插件名稱(chēng)? 安裝命令? ? ? ? ? ? ? ? ? ? ? ? ? 提供功能mysqlpipinstall'acryl-datahub[mysql]'MySQLsource
這里安裝兩個(gè)插件:
源:mysql
匯:datahub-rest
pipinstall'acryl-datahub[mysql]'
安裝的包較多,得到如下提示證明安裝成功蹂季。
Installingcollectedpackages:zipp,traitlets,pyrsistent,importlib-resources,attrs,wcwidth,tornado,pyzmq,pyparsing,pycparser,ptyprocess,parso,nest-asyncio,jupyter-core,jsonschema,ipython-genutils,webencodings,pygments,prompt-toolkit,pickleshare,pexpect,packaging,nbformat,matplotlib-inline,MarkupSafe,jupyter-client,jedi,decorator,cffi,backcall,testpath,pandocfilters,nbclient,mistune,jupyterlab-pygments,jinja2,ipython,defusedxml,debugpy,bleach,argon2-cffi-bindings,terminado,Send2Trash,prometheus-client,nbconvert,ipykernel,argon2-cffi,numpy,notebook,widgetsnbextension,toolz,ruamel.yaml.clib,pandas,jupyterlab-widgets,jsonpointer,tqdm,termcolor,scipy,ruamel.yaml,jsonpatch,ipywidgets,importlib-metadata,altair,sqlalchemy,pymysql,greenlet,great-expectationsSuccessfullyinstalledMarkupSafe-2.0.1Send2Trash-1.8.0altair-4.1.0argon2-cffi-21.3.0argon2-cffi-bindings-21.2.0attrs-21.3.0backcall-0.2.0bleach-4.1.0cffi-1.15.0debugpy-1.5.1decorator-5.1.0defusedxml-0.7.1great-expectations-0.13.49greenlet-1.1.2importlib-metadata-4.10.0importlib-resources-5.4.0ipykernel-6.6.0ipython-7.30.1ipython-genutils-0.2.0ipywidgets-7.6.5jedi-0.18.1jinja2-3.0.3jsonpatch-1.32jsonpointer-2.2jsonschema-4.3.2jupyter-client-7.1.0jupyter-core-4.9.1jupyterlab-pygments-0.1.2jupyterlab-widgets-1.0.2matplotlib-inline-0.1.3mistune-0.8.4nbclient-0.5.9nbconvert-6.3.0nbformat-5.1.3nest-asyncio-1.5.4notebook-6.4.6numpy-1.21.5packaging-21.3pandas-1.3.5pandocfilters-1.5.0parso-0.8.3pexpect-4.8.0pickleshare-0.7.5prometheus-client-0.12.0prompt-toolkit-3.0.24ptyprocess-0.7.0pycparser-2.21pygments-2.10.0pymysql-1.0.2pyparsing-2.4.7pyrsistent-0.18.0pyzmq-22.3.0ruamel.yaml-0.17.19ruamel.yaml.clib-0.2.6scipy-1.7.3sqlalchemy-1.3.24termcolor-1.1.0terminado-0.12.1testpath-0.5.0toolz-0.11.2tornado-6.1tqdm-4.62.3traitlets-5.1.1wcwidth-0.2.5webencodings-0.5.1widgetsnbextension-3.5.2zipp-3.6.0
隨后檢查安裝的插件情況冕广,Datahub是插件式的安裝方式〕ソ啵可以檢查數(shù)據(jù)源獲取插件Source撒汉,轉(zhuǎn)換插件transformer,獲取插件Sink父能。
python3-m datahub check plugins
可見(jiàn)Mysql插件和Rest接口插件已經(jīng)安裝神凑,下面配置從 MySQL 獲取元數(shù)據(jù)使用 Rest 接口將數(shù)據(jù)存儲(chǔ) DataHub。
vimmysql_to_datahub_rest.yml# A sample recipe that pulls metadata from MySQL and puts it into DataHub# using the Rest API.source:type:mysqlconfig:username:rootpassword:123456database:cnarea20200630transformers:-type:"fully-qualified-class-name-of-transformer"config:some_property:"some.value"sink:type:"datahub-rest"config:server:"http://ip:8080"# datahub ingest -c mysql_to_datahub_rest.yml
隨后是漫長(zhǎng)的數(shù)據(jù)獲取過(guò)程。
得到如下提示后溉委,證明獲取成功鹃唯。
{datahub.cli.ingest_cli:83}-Finishedmetadataingestion
Sink(datahub-rest)report:{'records_written':356,'warnings':[],'failures':[],'downstream_start_time':datetime.datetime(2021,12,28,21,8,37,402989),'downstream_end_time':datetime.datetime(2021,12,28,21,13,10,757687),'downstream_total_latency_in_seconds':273.354698}Pipelinefinishedwithwarnings
在此刷新datahub頁(yè)面,mysql的元數(shù)據(jù)信息已經(jīng)成功獲取瓣喊。
進(jìn)入表中查看元數(shù)據(jù)的情況坡慌,表字段信息。
在之前展示元數(shù)據(jù)分析頁(yè)也已經(jīng)有了詳細(xì)的展示藻三。
至此我們完成了Datahub從0到1的搭建洪橘,在整個(gè)過(guò)程中除了簡(jiǎn)單的安裝配置以外,基本沒(méi)有進(jìn)行任何代碼研發(fā)工作棵帽。但是datahub還有更多的功能熄求,比如對(duì)數(shù)據(jù)血緣的獲取,在元數(shù)據(jù)獲取的過(guò)程中進(jìn)行轉(zhuǎn)換操作等等逗概。