datahub

安裝DataHub (v0.8.31) 並設定資料來源(以MariaDB為例)

What Is DataHub?

DataHub是Linkedin開發並開放原始碼的一套元資料(Metadata)管理工具,志在解決大企業中龐大、多元且複雜架構下的資料管理問題。

在一定規模的企業中,不論應用系統或資料倉儲等,都會遇到找不到或不清楚資料結構、資料規格等問題,不僅浪費時間與人力去釐清,更甚者,重複處理資料、ETL等都不無可能,所以Metadata的管理可說是大數據應用的重中之重,進一步延伸到數據治理的議題,也需要以Metadata作為基礎。

DataHub官方網站:https://datahubproject.io/

安裝DataHub的前置準備

安裝環境

安裝DataHub

步驟1:切換到目錄:/opt,並使用git從GitHub下載安裝包。

$ cd /opt
$ git clone https://github.com/linkedin/datahub.git

步驟2:安裝DataHub。

$ cd /opt/datahub/docker
$ source ./quickstart.sh

此步驟會下載DataHub所需的Docker Image與依賴包,需要一點時間,請耐心等待,執行完成後,DataHub會是啟動狀態,但此時仍不足以使用,請按下組合鍵”Ctrl + C”來終止DataHub,並繼續下面的步驟。

步驟3:安裝更新及其他周邊的延伸工具。

$ python3 -m pip install --upgrade pip wheel setuptools
$ python3 -m pip uninstall datahub acryl-datahub || true
$ python3 -m pip install --upgrade acryl-datahub

步驟4:檢查DataHub的版本。

$ datahub version
DataHub CLI version: 0.8.31.4
Python version: 3.9.6 (default, Nov  9 2021, 13:31:27)
[GCC 8.5.0 20210514 (Red Hat 8.5.0-3)]

步驟5:執行”datahub docker quickstart”來啟動DataHub。

$ datahub docker quickstart

............
[+] Running 11/11
 ⠿ Container zookeeper                  Running                         0.0s
 ⠿ Container elasticsearch              Running                         0.0s
 ⠿ Container elasticsearch-setup        Started                         2.1s
 ⠿ Container mysql                      Running                         0.0s
 ⠿ Container broker                     Running                         0.0s
 ⠿ Container datahub-gms                Running                         0.0s
 ⠿ Container schema-registry            Running                         0.0s
 ⠿ Container datahub-datahub-actions-1  Running                         0.0s
 ⠿ Container mysql-setup                Started                         2.0s
 ⠿ Container kafka-setup                Started                         2.5s
 ⠿ Container datahub-frontend-react     Running                         0.0s
..........
✔ DataHub is now running
Ingest some demo data using `datahub docker ingest-sample-data`,
or head to http://localhost:9002 (username: datahub, password: datahub) to play around with the frontend.
Need support? Get in touch on Slack: https://slack.datahubproject.io/

步驟6:使用瀏覽器連至http://{IP or Hostname}:9002/,以預設帳號(datahub)及密碼(datahub)登入。

datahub

以上就完成DataHub的基本安裝了。

設定來源以擷取該來源的Metadata-以MariaDB為例

在DataHub裡,所謂來源,可以是各種資料庫、LDAP、檔案或是某種特定形式的資料,參考官方網站來看看你的資料保存形式是否有被支援!

本篇,我們以MariaDB來做範例,讓DataHub擷取該資料庫的資料表定義作為Metadata,MariaDB內的資料就用之前建立股票的測試資料為範例。

步驟1:安裝支援MariaDB與DataHub Restful API的套件。

$ pip install 'acryl-datahub[mariadb]'
$ pip install 'acryl-datahub[datahub-rest]'

若有多個套件要安裝,可以改為以下指令,會方便許多。

$ pip install 'acryl-datahub[mariadb, datahub-rest]'

步驟2:在Web畫面點選Ingestion,選擇Sources,並點選”+ Create new source”來新增MariaDB來源,如下畫面:

datahub

步驟3:會發現裡面並沒有MariaDB,可能畫面有限擺不下,此時點選”Custom”,可以客製化任何需要的來源。

datahub

步驟4:在”Configure Custom Recipe”下面的編輯區,寫入連接MariaDB的設定,官方說明在此,以下為範例:

source:
    type: mariadb
    config:
        host_port: 'IP or Hostname:3306'
        database: STOCK_MARKET
        username: root
        password: change_me
        include_tables: true
        include_views: true
        profiling:
            enabled: false
sink:
    type: datahub-rest
    config:
        server: 'http://datahub ip or hostname:8080'

步驟5:設定多久定時更新,還有時區。

datahub

步驟6:最後幫這個來源取一個名字,點選”Done”完成設定。

datahub

步驟7:回到”Manage Ingestion”畫面,可以看到所有的來源清單,可以手動執行排程外,也可以看到每次排程的紀錄與狀態。

datahub

步驟8:在DataHub中,可以選擇到要管理的資料表,除了一些基本的資訊會被揭露外,也可以針對每個欄位寫下描述,或貼上特定的標籤,方便日後搜尋之用。

datahub

~ END ~

, ,

Related posts

Latest posts