Pentaho BIServer Community Edtion 6.1 使用教程 第三篇 發布和調度Kettle(Data Integration) 腳本 Job & Trans


     Pentaho BIServer Community Edtion 6.1 集成了 Kettle 組件,可以運行Kettle 程序腳本。但由於Kettle沒有直接發布到 BIServer-ce 服務的程序,所以,在本地(Windows環境)通過圖形化界面開發完成的ETL 腳本 (.ktr & .kjb) ,需要上傳到BIServer-ce 管理的資源庫,才能被BIServer-ce 運行和調度。

重點:Kettle 資源庫 與 BIServer-ce 資源庫 建立一致的目錄管理ETL腳本文件。

 

第一部分 Kettle 腳本開發

1 創建資源庫,並登錄

此處使用MySQL 資源庫方式。

image

 

2 新建MySQL庫同步Job

基本邏輯:讀取源數據庫所有表明,保存在結果集中,對結果集的每一行數據即每一個表名,執行同步任務。其中同步任務是指清空目標數據庫指定表,將源表數據輸出到目標表。

整個MySQL庫同步作業包括五個文件。均存儲在資源庫的 /home/spads/ 目錄下,兩個Job :

job_all_table_extract.kjb 、job_single_table_extract.kjb

三個trans:

trans_acquire_tableNames.ktr、trans_Single_TableName_Set.ktr、trans_Single_Table_extract.ktr

image

3 本地測試程序是否可以運行

執行 job_all_table_extract.kjb ,驗證程序是否成功執行。

可選擇線上測試運行,根據需要選擇。

 

第二部分 發布Kettle腳本到 BiServer-ce

BIServer-ce 使用資源庫管理程序文件,登錄http://IP:8080/pentaho 后,可以點擊 Browse Files 瀏覽程序文件。

由於 Kettle 資源庫和 BIServer-ce 資源庫表結構無關,所以不能直接通過數據庫發布Kettle 腳本。需要在Kettle 中導出*.ktr 和 *.kjb 文件,通過資源管理頁面,上傳到BIServer-ce 的資源庫。

此處需注意,Kettle 資源庫中5個腳本文件存在目錄引用關系,所以需要在BIServer-ce 資源庫中建立對應的文件目錄,並將到處的腳本文件發布到指定的目錄,腳本文件才可以運行成功。

1 導出kettle 腳本

注意文件名

image

2 在BIServer資源庫中建立與Kettle 資源庫一致的文件目錄

Kettle 腳本在Kettle資源庫中的存儲路徑為 /home/spads,BIServer-ce 資源庫的默認根目錄為/home 因此在/home目錄下新建目錄 spads

image

3 上傳kettle 腳本到對應的文件目錄

image

第三部分 運行、調度Kettle 腳本

在資源瀏覽中選擇JOB,可以選擇右邊的動作 Run in background 執行,並可以通過open 查看執行日志。 也可以選擇Schedule 進行調度處理。

image

 

 

 

 

注:Kettle 執行表輸入表輸出時,可能會出現字符集亂碼問題。一般需要檢驗作業或者轉換使用的DB 連接的連接參數,

characterEncoding    utf8  指定連接字符集為 utf8 (MySQL使用,其他數據庫使用UTF-8)

 

還有一些數據問題,比如MySQL輸入表中存在日期為 0000-00-00 00:00:00, 會導致表輸入讀取錯誤,可以通過配置 

zeroDateTimeBehavior  convertToNull  

 

 還有Kettle 默認會把空字符串轉換為NULL,如果輸入表和輸出表對特定字段均限定不許為空,則會導致表輸出錯誤,為解決此問題,需要配置Kettle 的配置文件,此文件通常存放在/用戶名/.kettle/目錄下,此處為/root/.kettle/kettle.properties

在里面增加一行:

KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL=Y

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM