隨著數(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ò)程。文章較長(zhǎng),建議收藏。新版本的文檔請(qǐng)關(guān)注公眾號(hào)?大數(shù)據(jù)流動(dòng),會(huì)持續(xù)的更新~
通過(guò)本文檔,可以快速的入門Datahub,成功的搭建Datahub并且獲取到數(shù)據(jù)庫(kù)的元數(shù)據(jù)信息。是從0到1的入門文檔,更多Datahub的高級(jí)功能,可以關(guān)注后續(xù)的文章更新。
文檔共分為6個(gè)部分,層級(jí)結(jié)構(gòu)如下圖所示。
文檔版權(quán)為公眾號(hào)?大數(shù)據(jù)流動(dòng)?所有,請(qǐng)勿商用。相關(guān)技術(shù)問(wèn)題以及安裝包可以聯(lián)系筆者獨(dú)孤風(fēng)加入相關(guān)技術(shù)交流群討論獲取。
一、數(shù)據(jù)治理與元數(shù)據(jù)管理
背景
為什么要做數(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)行分析。
也就是我們?nèi)狈?duì)數(shù)據(jù)資產(chǎn)的管理。事實(shí)上,有很多公司都提供了開(kāi)源的解決方案來(lái)解決上述問(wèn)題,這也就是數(shù)據(jù)發(fā)現(xiàn)與元數(shù)據(jù)管理工具。
元數(shù)據(jù)管理
簡(jiǎn)單地說(shuō),元數(shù)據(jù)管理是為了對(duì)數(shù)據(jù)資產(chǎn)進(jìn)行有效的組織。它使用元數(shù)據(jù)來(lái)幫助管理他們的數(shù)據(jù)。它還可以幫助數(shù)據(jù)專業(yè)人員收集、組織、訪問(wèn)和豐富元數(shù)據(jù),以支持?jǐn)?shù)據(jù)治理。
三十年前,數(shù)據(jù)資產(chǎn)可能是 Oracle 數(shù)據(jù)庫(kù)中的一張表。然而,在現(xiàn)代企業(yè)中,我們擁有一系列令人眼花繚亂的不同類型的數(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)包含所有這些類型的數(shù)據(jù)資產(chǎn),并使數(shù)據(jù)工作者能夠更高效地使用這些資產(chǎn)完成工作。
所以,元數(shù)據(jù)管理應(yīng)具備的功能如下:
- 搜索和發(fā)現(xiàn):數(shù)據(jù)表、字段、標(biāo)簽、使用信息
- 訪問(wèn)控制:訪問(wèn)控制組、用戶、策略
- 數(shù)據(jù)血緣:管道執(zhí)行、查詢
- 合規(guī)性:數(shù)據(jù)隱私/合規(guī)性注釋類型的分類
- 數(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ì)
架構(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)行查詢(通常是 MySQL/Postgres),一個(gè)用于提供搜索查詢的搜索索引(通常是 Elasticsearch),并且對(duì)于這種架構(gòu)的第 1.5 代,也許一旦達(dá)到關(guān)系數(shù)據(jù)庫(kù)的“遞歸查詢”限制,就使用了處理譜系(通常是 Neo4j)圖形查詢的圖形索引。
很快,第二代的架構(gòu)出現(xiàn)了。單體應(yīng)用程序已拆分為位于元數(shù)據(jù)存儲(chǔ)數(shù)據(jù)庫(kù)前面的服務(wù)。該服務(wù)提供了一個(gè) API,允許使用推送機(jī)制將元數(shù)據(jù)寫入系統(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)系的圖形查詢以及全掃描和分析能力。
Datahub 就是采用的這種架構(gòu)。
下圖是當(dāng)今元數(shù)據(jù)格局的簡(jiǎn)單直觀表示:
(包含部分非開(kāi)源方案)
其他方案可作為調(diào)研的主要方向,但不是本文討論的重點(diǎn)。
二、Datahub簡(jiǎn)介
首先,阿里云也有一款名為DataHub的產(chǎn)品,是一個(gè)流式處理平臺(tái),本文所述DataHub與其無(wú)關(guān)。
數(shù)據(jù)治理是大佬們最近談的一個(gè)火熱的話題。不管國(guó)家層面,還是企業(yè)層面現(xiàn)在對(duì)這個(gè)問(wèn)題是越來(lái)越重視。數(shù)據(jù)治理要解決數(shù)據(jù)質(zhì)量,數(shù)據(jù)管理,數(shù)據(jù)資產(chǎn),數(shù)據(jù)安全等等。而數(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:
GitHub - datahub-project/datahub: The Metadata Platform for the Modern Data Stack
b) apache atlas:
GitHub - apache/atlas: Apache Atlas
c) lyft amundsen
GitHub - amundsen-io/amundsen: Amundsen is a metadata driven application for improving the productivity of data analysts, data scientists and engineers when interacting with data.
atlas之前我們也介紹過(guò),對(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í)候,只需要編寫簡(jiǎn)單的yml文件就可以完成元數(shù)據(jù)的獲取。
在數(shù)據(jù)源的支持方面,Datahub支持druid,hive,kafka,mysql,oracle,postgres,redash,metabase,superset等數(shù)據(jù)源,并支持通過(guò)airflow的數(shù)據(jù)血緣獲取??梢哉f(shuō)實(shí)現(xiàn)了從數(shù)據(jù)源到BI工具的全鏈路的數(shù)據(jù)血緣打通。
三、Datahub界面
通過(guò)Datahub的頁(yè)面我們來(lái)簡(jiǎn)單了解下Datahub所能滿足的功能。
3.1 首頁(yè)
首先,在登錄到Datahub以后就進(jìn)入了Datahub首頁(yè),首頁(yè)中提供了Datahub的菜單欄,搜索框和元數(shù)據(jù)信息列表。這是為了讓大家可以快速的對(duì)元數(shù)據(jù)進(jìn)行管理。
元數(shù)據(jù)信息中按照數(shù)據(jù)集,儀表板,圖表等類型進(jìn)行了分類。
再往下看是平臺(tái)信息,在這當(dāng)中包括了Hive,Kafka,Airflow等平臺(tái)信息的收集。
下面其實(shí)是一些搜索的統(tǒng)計(jì)信息。用于統(tǒng)計(jì)最近以及最流行的搜索結(jié)果。
包括一些標(biāo)簽和術(shù)語(yǔ)表信息。
3.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+。
5.1、安裝docker,docker-compose,jq
Docker 是一個(gè)開(kāi)源的應(yīng)用容器引擎,讓開(kāi)發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(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 -v
Docker version 1.13.1, build 7d71120/1.13.1
通過(guò)下面的命令可以啟停docker
systemctl start docker // 啟動(dòng)docker
systemctl 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)限
sudo chmod +x /usr/local/bin/docker-compose
建立軟連接
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
查看版本,驗(yàn)證安裝成功。
docker-compose --version
docker-compose version 1.29.2, build 5becea4c
安裝jq
首先安裝EPEL源,企業(yè)版 Linux 附加軟件包(以下簡(jiǎn)稱 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源
yum install epel-release
安裝完EPEL源后,可以查看下jq包是否存在:
yum list jq
安裝jq:
yum install jq
5.2、安裝python3
安裝依賴
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
下載安裝包
wget https://www.python.org/ftp/python/3.8.3/Python-3.8.3.tgz
tar -zxvf Python-3.8.3.tgz
編譯安裝
mkdir /usr/local/python3
cd Python-3.8.3
./configure --prefix=/usr/local/python3
make && make install
修改系統(tǒng)默認(rèn)python指向
rm -rf /usr/bin/python
ln -s /usr/local/python3/bin/python3 /usr/bin/python
修改系統(tǒng)默認(rèn)pip指向
rm -rf /usr/bin/pip
ln -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/python2
vi /usr/bin/yum-config-manager
#!/usr/bin/python 改為 #!/usr/bin/python2
沒(méi)有的不用修改
5.3、安裝與啟動(dòng)datahub
首先升級(jí)pip
python3 -m pip install --upgrade pip wheel setuptools
需要看到下面成功的返回。
Attempting uninstall: setuptools
Found existing installation: setuptools 57.4.0
Uninstalling setuptools-57.4.0:
Successfully uninstalled setuptools-57.4.0
Attempting uninstall: pip
Found existing installation: pip 21.2.3
Uninstalling pip-21.2.3:
Successfully uninstalled pip-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 datahub as it is not installed.
WARNING: Skipping acryl-datahub as it is not installed.
安裝datahub,此步驟時(shí)間較長(zhǎng),耐心等待。
python3 -m pip install --upgrade acryl-datahub
收到這樣的提示說(shuō)明安裝成功。
Successfully installed PyYAML-6.0 acryl-datahub-0.8.20.0 avro-1.11.0 avro-gen3-0.7.1 backports.zoneinfo-0.2.1 certifi-2021.10.8 charset-normalizer-2.0.9 click-8.0.3 click-default-group-1.2.2 docker-5.0.3 entrypoints-0.3 expandvars-0.7.0 idna-3.3 mypy-extensions-0.4.3 progressbar2-3.55.0 pydantic-1.8.2 python-dateutil-2.8.2 python-utils-2.6.3 pytz-2021.3 pytz-deprecation-shim-0.1.0.post0 requests-2.26.0 stackprinter-0.2.5 tabulate-0.8.9 toml-0.10.2 typing-extensions-3.10.0.2 typing-inspect-0.7.1 tzdata-2021.5 tzlocal-4.1 urllib3-1.26.7 websocket-client-1.2.3
最后我們看到datahub的版本情況。
[root@node01 bin]# python3 -m datahub version
DataHub CLI version: 0.8.20.0
Python version: 3.8.3 (default, Aug 10 2021, 14:25:56)
[GCC 4.8.5 20150623 (Red Hat 4.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),你僅需要安裝所需的插件。
攝入源有很多
插件名稱 安裝命令 提供功能
mysql pip install 'acryl-datahub[mysql]' MySQL source
這里安裝兩個(gè)插件:
源:mysql
匯:datahub-rest
pip install 'acryl-datahub[mysql]'
安裝的包較多,得到如下提示證明安裝成功。
Installing collected packages: 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-expectations
Successfully installed MarkupSafe-2.0.1 Send2Trash-1.8.0 altair-4.1.0 argon2-cffi-21.3.0 argon2-cffi-bindings-21.2.0 attrs-21.3.0 backcall-0.2.0 bleach-4.1.0 cffi-1.15.0 debugpy-1.5.1 decorator-5.1.0 defusedxml-0.7.1 great-expectations-0.13.49 greenlet-1.1.2 importlib-metadata-4.10.0 importlib-resources-5.4.0 ipykernel-6.6.0 ipython-7.30.1 ipython-genutils-0.2.0 ipywidgets-7.6.5 jedi-0.18.1 jinja2-3.0.3 jsonpatch-1.32 jsonpointer-2.2 jsonschema-4.3.2 jupyter-client-7.1.0 jupyter-core-4.9.1 jupyterlab-pygments-0.1.2 jupyterlab-widgets-1.0.2 matplotlib-inline-0.1.3 mistune-0.8.4 nbclient-0.5.9 nbconvert-6.3.0 nbformat-5.1.3 nest-asyncio-1.5.4 notebook-6.4.6 numpy-1.21.5 packaging-21.3 pandas-1.3.5 pandocfilters-1.5.0 parso-0.8.3 pexpect-4.8.0 pickleshare-0.7.5 prometheus-client-0.12.0 prompt-toolkit-3.0.24 ptyprocess-0.7.0 pycparser-2.21 pygments-2.10.0 pymysql-1.0.2 pyparsing-2.4.7 pyrsistent-0.18.0 pyzmq-22.3.0 ruamel.yaml-0.17.19 ruamel.yaml.clib-0.2.6 scipy-1.7.3 sqlalchemy-1.3.24 termcolor-1.1.0 terminado-0.12.1 testpath-0.5.0 toolz-0.11.2 tornado-6.1 tqdm-4.62.3 traitlets-5.1.1 wcwidth-0.2.5 webencodings-0.5.1 widgetsnbextension-3.5.2 zipp-3.6.0
隨后檢查安裝的插件情況,Datahub是插件式的安裝方式??梢詸z查數(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。
vim mysql_to_datahub_rest.yml
# A sample recipe that pulls metadata from MySQL and puts it into DataHub
# using the Rest API.
source:
type: mysql
config:
username: root
password: 123456
database: cnarea20200630
transformers:
- 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} - Finished metadata ingestion
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}
Pipeline finished with warnings
在此刷新datahub頁(yè)面,mysql的元數(shù)據(jù)信息已經(jīng)成功獲取。
進(jìn)入表中查看元數(shù)據(jù)的情況,表字段信息。
在之前展示元數(shù)據(jù)分析頁(yè)也已經(jīng)有了詳細(xì)的展示。
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-514331.html
至此我們完成了Datahub從0到1的搭建,在整個(gè)過(guò)程中除了簡(jiǎn)單的安裝配置以外,基本沒(méi)有進(jìn)行任何代碼研發(fā)工作。但是datahub還有更多的功能,比如對(duì)數(shù)據(jù)血緣的獲取,在元數(shù)據(jù)獲取的過(guò)程中進(jìn)行轉(zhuǎn)換操作等等。在未來(lái)的文章中也會(huì)進(jìn)行更新這些功能的教程。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-514331.html
到了這里,關(guān)于一站式元數(shù)據(jù)治理平臺(tái)——Datahub入門寶典的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!