本文說明如何設計一個 etl 作業以便将線上關系資料庫裡的資料,加載到阿裡雲的greenplum 資料庫中,如何排程和監控該etl 作業的日常運作。
本文使用的軟體是開源etl 工具軟體 kettle 5.x,以及基于kettle的傲飛資料整合平台,該平台可以用來kettle作業的排程、監控等功能、并可以完成資料源管理等功能。
1. java 1.6 或 1.7
2. 傲飛資料整合平台的下載下傳位址(包含了 kettle和服務端):http://pan.baidu.com/s/1cmspee
解壓縮即可安裝,平台的安裝配置方法見下載下傳文檔内的《傲飛資料整合平台使用說明書》
3. 安裝 mysql 資料庫 5.1 或以上版本,并以 utf-8 編碼建立一個資料庫 etl_platform,
上述軟體都要事先安裝部署到阿裡 ecs 上。
資源庫是kettle 裡儲存作業的資料庫。首先登陸傲飛資料整合平台(預設使用者名,密碼 admin/admin),在傲飛資料整合平台的【資源庫管理】裡,新建立一個資源庫,資源庫的資料庫名稱使用事先建立的 etl_platform 資料庫,注意資料庫位址要用外網的ip位址,因為将來kettle 用戶端會連接配接該ip 位址。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLiFTZzI2NjlDN3IGZmN2NmFWZ2kzNiFmZ0YzNkVTY1U2MxYDO5EjY28CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
選擇主視窗左側菜單的【資料源管理】裡的【本地資料庫管理】,或者直接在登陸首頁中選擇【本地資料庫】快捷圖示。如下圖:
選擇【新增】,在【新增資料源資訊】視窗中設定兩個資料源,一個是原資料源,另一個是要加載到的阿裡雲greenplum 資料源,資料源配置參考如下圖所示:
輕按兩下spoon.bat 檔案,啟動spoon,在登陸視窗中輸入傲飛資料整合平台的url ,使用者名和密碼,如下圖:
如果登陸成功,會出現【資源庫連接配接】選擇框,這裡選擇我們剛建立的資源庫,如下圖:
進入資源庫後,在設計視窗中選擇【檔案】->【建立】->【轉換】,如下圖:
如果要使用sql 方式加載,要拖拽【表輸入】步驟和【表輸出】步驟到畫布上,并連線(按住shift鍵,同時移動滑鼠),在表輸入步驟中配置sql 語句,在表輸出步驟中配置輸出表的名稱即可,如下圖:
如果需要在輸入和輸出之間做各種資料格式轉換,資料清洗,拆分,組合等各種操作,要使用spoon 設計器裡提供的各種步驟(連數成金論壇有 kettle 教育訓練課程)
當大量資料時,可以使用 【greenplum 批量加載】步驟完成加載,greenplum 批量加載使用了copy 指令方式加載,加載速度比sql 方式快。【greenplum 批量加載】步驟的配置如下圖所示:
oss 是阿裡雲對象存儲服務(object storage service,簡稱oss),是阿裡雲對外提供的海量,安全,低成本,高可靠的雲存儲服務。目前kettle 對oss的支援還在開發中。 不過目前使用者也可以手動将檔案上傳到 oss 服務中,使用類似下面的sql 建立一個基于oss的外部表。
1.<b> create</b> readable <b>external</b> <b>table</b> ossexample
2. (date text, time text, open <b>float</b>, high <b>float</b>,
3. low <b>float</b>, volume <b>int</b>)
4. location('oss://oss-cn-hangzhou.aliyuncs.com
5. filepath=osstest/example.csv <b>id</b>=xxx
6. key=xxx bucket=testbucket') format 'csv'
7.<b> log</b> errors segment reject limit 5;
關于oss 的加載,請參考:https://help.aliyun.com/document_detail/35457.html
選擇【檔案】->【另存為】 ,在【轉換屬性】視窗中,設定轉換名稱:從原系統到目标系統的轉換,在【目錄】輸入框選擇要儲存的資源庫目錄,如下圖
點【确定】後,把作業儲存到資源庫中。
注意:
如果用戶端長時間不操作,服務端會自動斷開和用戶端的連接配接。 此時從用戶端儲存到服務端時可能報告資料庫連接配接錯誤。如果發生此類錯誤,隻需先資源庫連接配接,再重新連接配接資源庫即可。
在【周期排程】裡選擇【增加普通排程】選項,在【新增排程】視窗裡選擇作業“從原系統到目标系統的轉換”,如下圖:
選擇運作方式【本地運作】,并設定排程方式為每天的16:00 運作,如下圖:
新增加的排程可以按照設定好的排程方式運作,也可以通過點選【運作】按鈕,手動運作,如下圖:
無論手工還是排程運作,在監控清單裡都會有作業的運作狀态,運作時間,錯誤日志等資訊。
關于如何将企業内網資料庫裡的資料,加載到阿裡雲的greenplum 中,下文繼續。