owned this note changed 5 years ago
Linked with GitHub

用 ETL Kettle 打造程序流水線 - 范建銘

由於場地問題,第二天我們移動到另一棟大樓啦!議程教室變動請見網站上的議程表

歡迎來到 https://hackmd.io/@coscup/2019 共筆

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

點擊本頁上方的 開始用 Markdown 一起寫筆記!
手機版請點選上方 按鈕展開議程列表。

Pentaho Data Integration - Kettle

Kettle下載位置(1.14G)

https://sourceforge.net/projects/pentaho/

LAB環境建置:

https://github.com/FreddyFan1011/coscup-kettle/blob/master/docker-compose.yml

ETL

E (Extract) :提取資料
T (Transform) :轉換資料型態
L (Load) :載入資料

如何開始

由模組方式堆疊成流程:像堆積木方式拖曳出元件,設定好元件動作後拉線串流起來。

Kettle內以JOB及TRANSFORMATION為兩大組件
JOB是表達整理流程的框架
TRANSFORMATION是細節資料的操作

下手前可參考有限狀態機設計的模式

https://zh.wikipedia.org/wiki/有限状态机

從開始至操作資料,最後結束的想法規劃出來後。再進行模組的拖曳會更有效率

LIVE DEMO

資料讀寫轉換

資料庫:

  • Dtatbase connections可支援多種RDB,但連線元件需測試。若不行需到RDB官網下載connect jar檔
  • 元件建立後可分享,供後續專案使用。之後密碼變更可一次性修改。
  • 透過元件可直接查看TABLE schema,還可以預覽資料喔!!

FTP,其他檔案形式資料及模組之間的變數傳遞

  • Set variables 與 Get variables
  • 用${變數名稱} 方式

加速流程速度及調整內部參數

多執行緒方式:

  • 可在前一步元件中,點右鍵選擇『Run next Entries in Parallel』,下一步至節點的線會多個雙斜線的符號。

內部參數(JVM):

  • 可參考spoon.sh內容,這為主要啟動Kettle的主程序。因爲是JAVA開發,啟動JVM時可設定JVM的記憶體設定。
  • PENTAHO_DI_JAVA_OPTIONS=“-Xms1024m -Xmx2048m -XX:MaxPermSize=256m”
  • 預設為最小1G、最大2G,若執行過多Kettle時恐造成宿主機資源不足。

排程啟動:

  • 當設計好資料流程後可存檔成kjb、ktr檔。
  • 背景執行可設定成:
  • JOB啟動:sh kitchen.sh -f XXX.kjb
  • TRANSFORMATION啟動:sh pat.sh -f XXX.ktr

外系統API或 SHELL SCRIPT

除了產出檔案或與資料庫連結外,還可以透過API方式輸出資料
若元件不好使用,也可透過SHELL SCRIPT操作本機行為

  • DEMO為使用JSON格式,透過REST CLIENT POST出去。

Pentaho生態圈

除了Data Integration外,Pentaho還有其他軟體,例如:Reporting、Dashboards等。
也可串接起來報表及錯誤警報等資訊。

tags: COSCUP2019 FLOSS! not only Linux and hackers!! IB503
Select a repo