Pentaho Community Edition
Pentaho Community Edition 為開源商業智慧軟體,旨在提供用戶資料分析流程整合服務,減少資料從各種來源萃取-轉換-載入 (Extract-Transform-Load, ETL) 到目標儲存設備,以及進一步資料探勘與報表呈現,所需的時間與人力。
以上所提的服務與對應的專案套件整理如下:
- 資料ETL (Kettle or Pentaho Data Integration, PDI)
- 資料即時分析 (Mondrian)
- 資料報表呈現 (Reporting)
- 資料探勘 (WEKA)
- Plugin 製作 (Sparkl)
本操作說明手冊主要是針對 Kettle 進行講解,也就是 Pentaho 所提供的ETL工具。說明如何透過此工具介接不同資料源,進行所需的資料轉換,最後匯出到目標儲存設備。
Download and Install Kettle
進入Kettle介紹網頁,前往Download Section下載,下載檔案在作業系統都可使用。
下載並解壓縮後,解壓縮後的檔案無需另外的安裝程序,但執行前須確認是否有安裝 Java,若無 Kettle 會無法開啟。
雖然 Kettle 在所有作業系統都可使用,但會因為作業系統使啟動方式不同,故下面分別對Mac/Windows/Linux說明啟動方式。
- Mac用戶:點擊 Data Integration.app 檔案開啟 Kettle
- Windows用戶:點擊sh 檔案開啟 Kettle
- Linux用戶:進入Terminal中,前往 Kettle 的路徑,並鍵入 sh spoon.sh 開啟 Kettle
Basic Concepts
Kettle 的ETL程序主要可靠拖曳達成,其介面如下圖所示。
可看到左側有Transformations 與 Jobs、Design 與 View。左側為流程設計區域。
Transformations 與 Jobs 的差別如下:
- Transformations:控制資料從資料源的轉換與搬動。且在 Transformations 中的步驟可是平行執行。
- Jobs:控制整體 ETL 流程,通常包含多個 Transformations。且在 Jobs 中的步驟是循序執行。
Design 與 View 的差別如下:
- Design:包含可設定的步驟 (Step)。
- View:包含目前設定 Transformation 或 Job 的步驟與資料庫連線資訊。
First Transformation and Job
接下來就開始試著建立第一個 Transformation 與 Job 。
First Transformation
在第一個 Transformation 中,我們要在 Kettle 中產生資料,並驗證資料,最後在加入序列碼 (Sequence)。
首先,點上方功能列的 File,再點擊 New,選擇 Transformation,以新增一個新的 Transformation,如下圖所示。
接下來,在右方的 Design中,拖曳 Input中的 Generate Rows 圖示到設計區域,結果如下圖所示。
對於設計區域的步驟點擊左鍵後,可看到四個按鈕,如下圖所示。最左邊的圖示可設定步驟的前一步,最右邊的圖示可設定步驟的下一步。第二個圖示是編輯步驟 (Edit Step)。第三個圖示是其他可對此步驟的操作。
首先編輯 Generate Rows,設定要產生的資料型態與格式。Limit為欲產生的資料筆數。點擊 Fields中的空白欄位後,可建立變數名稱、型態、欲產生值與其他格式。例子如下圖所示,注意日期格式。
接下來,加入 Checksum 資料驗證步驟。在 Design,拖曳在 Transformation 中的 Add a checksum 的圖示到設計區域。將資料來源設定為 Generate Rows。
編輯此步驟,設定範例如下圖。其中 Get Field 可直接全選前步驟的欄位。並設定 Result field ,也就是欄位的名稱。 Compatibility Mode 是使與較舊版本相容,可見說明。最後點擊 Help 旁的空白部分,以完成設定 (介面無顯示,應為 Bug)。
最後,加入 Add sequence 新增序列號。在右方的 Design中,拖曳在 Transformation 中的 Add sequence 圖示到設計區域。設定資料來源為 Add a checksum,編輯此步驟,主要設定 Name of value (欄位名稱) 即可。
以上步驟都設定好後,就可以點選執行,如下圖所示。
若無設定錯誤,點擊Add sequence後,下方的 Execution Results中的 Preview data應如下圖所示。最後將此 Transformation 另存新檔,以利設定下面的 Job。
First Job
在第一個 job 中,我們要將上面的 Transformation 再進一步包裝。首先新增一個新的 job。(File -> New->job)
在 Design ,拖曳在 General 中的 START 到設計區域,編輯此步驟可以制定排程,如下圖所示。
接著再拖曳在 General中的Transformation 到設計區域,並編輯此步驟,主要是 Transformation filename要指定上面所設定的Transformation 檔案的路徑。
最後再拖曳 General 中的 SUCCESS 到設計區域,作為 Job 的結束點。點選執行,以執行此 Job。