kettle的作業和參數組件

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/

如果您想及時得到個人撰寫文章以及著作的消息推送,可以掃描上方二維碼,關注個人公衆號哦。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章