1、大多數ETL項目都需要完成各種各樣的維護工作。例如,如何傳送文件;驗證數據庫表是否存在,等等。而這些操作都是按照一定順序完成。
1.1)、因為轉換以並行方式執行,就需要一個可以串行執行的作業來處理這些操作。一個作業包含一個或者多個作業項,這些作業項以某種順序來執行。作業執行順序由作業項之間的跳(Job hop)和每個作業項的執行結果來決定。
1.2)、作業項是作業的基本構成部分。如同轉換的步驟,作業項也可以使用圖標的方式圖形化展示。但是,如果你再仔細觀察,還是會發現作業項有一些地方不同於步驟:在作業項之間可以傳遞一個結果對象(result object)。這個結果對象里面包含了數據行,它們不是以數據流的方式來傳遞的。而是等待一個作業項執行完了,再傳遞個下一個作業項。因為作業順序執行作業項,所以必須定義一個起點。有一個叫“開始”的作業項就定義了這個點。一個作業只能定一個開始作業項。
1.3)、作業跳,作業的跳是作業項之間的連接線,他定義了作業的執行路徑。作業里每個作業項的不同運行結果決定了做作業的不同執行路徑。
a)、無條件執行:不論上一個作業項執行成功還是失敗,下一個作業項都會執行。這是一種藍色的連接線,上面有一個鎖的圖標。
b)、當運行結果為真時執行:當上一個作業項的執行結果為真時,執行下一個作業項。通常在需要無錯誤執行的情況下使用。這是一種綠色的連接線,上面有一個對鈎號的圖標。
c)、當運行結果為假時執行:當上一個作業項的執行結果為假或者沒有成功執行是,執行下一個作業項。這是一種紅色的連接線,上面有一個紅色的停止圖標。
d)、在圖標上單擊就可以對跳進行設置。
2、對於ETL參數傳遞是一個很重要的環節,因為參數的傳遞會涉及到業務數據是如何抽取。參數分為兩種:全局參數和局部參數。
1)、全局參數,定義是通過當前用戶下.kettle文件夾中的kettle.properties文件來定義(在這個C:\Users\.kettle目錄里面的哦!)。定義方式是采用鍵=值對方式來定,如:start_date=20130101。注:在配置全局變量時需要重啟Kettle才會生效。
2)、局部參數,局部參數變量是通過“Set Variables”與“Get Variables”方式來設置。注:在“Set Variables”時在當前轉換當中是不能馬上使用,需要在作業中的下一步驟中使用。
3)、參數的使用,Kettle中參數使用方法有兩種:一種是%%變量名%%,一種是${變量名},推薦后者。注:在SQL中使用變量時需要把“是否替換變量”勾選上,否則無法使變量生效。
自己加的兩個參數,PAGESIZE=4、STARTROW=0,重啟Kettle以后順序出現了亂序。
也可以去Kettle的編輯,編輯Kettle.properties文件,查看自己配置的全局參數的。
可以使用圖元去測試自己配置的全局參數,如下所示,記得勾選替換SQL語句中的變量。
3、常量傳遞就是先自定義常量數據,在表輸入的SQL語句里面使用?來替換。問號的替換順序就是常量定義的順序。
使用上一個步驟的常量值,如果要執行每一行,還要勾選每一行這個單選框的。
4、轉換命名參數,就是在轉換內部定義的變量,作用范圍是在轉換內部。在轉換的空白處右鍵,選擇轉換設置就可以看見。
使用表輸入參數傳遞,變量傳遞,轉換命名參數,記得勾選替換SQL語句里的變量。
5、設置變量、獲取變量,在轉換里面有一個作業分類,里面有設置變量和獲取變量的步驟。注意:“獲取變量”時在當前轉換當中是不能馬上使用,需要在作業中的下一步驟中使用!
表輸入參數傳遞,變量傳遞,轉換內設置變量和獲取變量。
獲取變量,如下所示:
6、變量可以在轉換里面設置,也可以在作業里面設置。表輸入參數傳遞,變量傳遞,作業里設置變量。
7、發送郵件就是執行成功、失敗、其它某種情景給相關人員發送郵件。
注意:只有企業郵箱才可以!個人郵箱不行!並且需要在郵件設置中開通客戶端授權碼!
用戶驗證,允許在客戶端登錄需要進行郵件設置。
設置消息,然后就可以進行發送消息了。
作者:別先生
博客園:https://www.cnblogs.com/biehongli/
如果您想及時得到個人撰寫文章以及著作的消息推送,可以掃描上方二維碼,關注個人公眾號哦。