Pentaho Community Edition

PENTAHO 6.1 SPEEDS DATA PIPELINE
2018-01-25
MongoDB-Replica Set 建立方法
2018-02-01

Pentaho Community Edition 為開源商業智慧軟體,旨在提供用戶資料分析流程整合服務,減少資料從各種來源萃取-轉換-載入 (Extract-Transform-Load, ETL) 到目標儲存設備,以及進一步資料探勘與報表呈現,所需的時間與人力。

以上所提的服務與對應的專案套件整理如下:

  1. 資料ETL (Kettle or Pentaho Data Integration, PDI)
  2. 資料即時分析 (Mondrian)
  3. 資料報表呈現 (Reporting)
  4. 資料探勘 (WEKA)
  5. Plugin 製作 (Sparkl)

本操作說明手冊主要是針對 Kettle 進行講解,也就是 Pentaho 所提供的ETL工具。說明如何透過此工具介接不同資料源,進行所需的資料轉換,最後匯出到目標儲存設備。

Download and Install Kettle

進入Kettle介紹網頁,前往Download Section下載,下載檔案在作業系統都可使用。

下載並解壓縮後,解壓縮後的檔案無需另外的安裝程序,但執行前須確認是否有安裝 Java,若無 Kettle 會無法開啟。

雖然 Kettle 在所有作業系統都可使用,但會因為作業系統使啟動方式不同,故下面分別對Mac/Windows/Linux說明啟動方式。

  1. Mac用戶:點擊 Data Integration.app 檔案開啟 Kettle
  2. Windows用戶:點擊sh 檔案開啟 Kettle
  3. Linux用戶:進入Terminal中,前往 Kettle 的路徑,並鍵入 sh spoon.sh 開啟 Kettle
Basic Concepts

Kettle 的ETL程序主要可靠拖曳達成,其介面如下圖所示。

Pentaho Community Edition1

可看到左側有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,如下圖所示。

Pentaho Community Edition2

接下來,在右方的 Design中,拖曳 Input中的 Generate Rows 圖示到設計區域,結果如下圖所示。

Pentaho Community Edition3

對於設計區域的步驟點擊左鍵後,可看到四個按鈕,如下圖所示。最左邊的圖示可設定步驟的前一步,最右邊的圖示可設定步驟的下一步。第二個圖示是編輯步驟 (Edit Step)。第三個圖示是其他可對此步驟的操作。

Pentaho Community Edition4

首先編輯 Generate Rows,設定要產生的資料型態與格式。Limit為欲產生的資料筆數。點擊 Fields中的空白欄位後,可建立變數名稱、型態、欲產生值與其他格式。例子如下圖所示,注意日期格式。

Pentaho Community Edition5

接下來,加入 Checksum 資料驗證步驟。在 Design,拖曳在 Transformation 中的 Add a checksum 的圖示到設計區域。將資料來源設定為 Generate Rows。

編輯此步驟,設定範例如下圖。其中 Get Field 可直接全選前步驟的欄位。並設定 Result field ,也就是欄位的名稱。 Compatibility Mode 是使與較舊版本相容,可見說明。最後點擊 Help 旁的空白部分,以完成設定 (介面無顯示,應為 Bug)。

Pentaho Community Edition6

最後,加入 Add sequence 新增序列號。在右方的 Design中,拖曳在 Transformation 中的 Add sequence 圖示到設計區域。設定資料來源為 Add a checksum,編輯此步驟,主要設定 Name of value (欄位名稱) 即可。

以上步驟都設定好後,就可以點選執行,如下圖所示。

Pentaho Community Edition7

若無設定錯誤,點擊Add sequence後,下方的 Execution Results中的 Preview data應如下圖所示。最後將此 Transformation 另存新檔,以利設定下面的 Job。

Pentaho Community Edition8

First Job

在第一個 job 中,我們要將上面的 Transformation 再進一步包裝。首先新增一個新的 job。(File -> New->job)

在 Design ,拖曳在 General 中的 START 到設計區域,編輯此步驟可以制定排程,如下圖所示。

Pentaho Community Edition9

接著再拖曳在 General中的Transformation 到設計區域,並編輯此步驟,主要是 Transformation filename要指定上面所設定的Transformation 檔案的路徑。

Pentaho Community Edition10

最後再拖曳 General 中的 SUCCESS 到設計區域,作為 Job 的結束點。點選執行,以執行此 Job。