以下只是本人在使用過程中一些經驗,可能有誤解不對的地方,希望大家指正。
這個控制項可以在job中呼叫,也可以在transformation中使用。下面將分別說明在兩個不同任務中呼叫時的使用方法和需要注意事項。
在job中設定變數一般都是設定全域性變數,在不同轉換間使用。首先需要get system info用來檢索變數,因為我們一般會用來設定時間、路徑等一些變數
系統進行檢索
第一列選擇變數名稱,然後選擇type找到你需要的型別。如果想把你的輸入資訊設定為變數,type應該選擇command line argument 1.
雙擊set variables, 點選獲取變數會獲取到你定義的變數,以後呼叫時加上$就可以使用了。
設定變數名和值以及屬性
valid in the virtual machine: 整個虛擬機器將知道這個變數
valid in the parent job:變數僅在父任務中可用
valid in the grand-parent job:變數僅在組父任務中可用
valid in the root job:變數僅在根任務中可用
注意事項:
1. 只接受一行(只能一行)資料來設定變數
2.在本轉換中不能呼叫此變數,因為資料是並行傳送的
新建設定引數的job
指的是引數名和字段**(就是想用來設定成變數的字段)
因為資料是一行一行傳來,需要接受每一行資料,而不是只要第一行
設定變數job裡面的內容
在這個job裡面需要填寫引數名,不然這個job將會獲取不到上一步傳過來的字段。
設定job裡面的屬性設定
將輸入字段設定為引數, value填寫形式如下。
變數設定格式
後面就和全域性變數一樣可以呼叫了。
設定常量或者路徑為變數
如果設定引數值為常量或數字,則value可以直接,如上圖5所示
如果設定路徑作為變數(value裡還可以包含變數值),如上6,7。注意的是在呼叫路徑變數的時候加單引號『』,我是在後面引用變數的時候加的,所以設定的時候沒有加,當然也可以在設定value得時候就新增變數,那麼在呼叫的時候就不需要新增單引號了。
ETL工具kettle設定全域性變數
昨天讓kettle傳入的引數搞的很鬱悶,從網上查一些資訊,大多講的是每個transformation內部傳遞引數,要麼就是講在job中把引數傳進transformation,而且還不正確。大家最常碰到的問題恐怕就是要做增量抽取了吧,增量抽取不可避免要碰到時間戳,那麼我們假如每天晚上需要抽取當天新增的...
kettle中變數的設定和使用介紹
有沒有能統一管理乙個引數,然後讓所有的transformation和job都可以讀到呢?答案是有 1.首先,開啟.kettle kettle.properties 個人主機是 c users for elegant kettle 直接在裡面定義,注意這個檔案需要與spoon.bat放在同乙個目錄下面...
Kettle 設定變數的兩種方法
乙個複雜的kettle作業一般包括很多子作業和轉換,在主作業start後通常會新增乙個 設定變數 的流程,該流程的功能是為所有流程的公共變數設定通用值。主作業新增的 設定變數 針對的是所有流程,如果需要執行某個在作業,就需要將其引用的變數值改為常量才能執行,想當年麻煩,本文介紹兩種方法規避該問題 方...