我們在這一回,介紹下,Kettle中全局變量的使用,我們前面說過的配置文件,其實(shí)就是配置全局變量的地方
Kettle手冊(三)- 配置文件的使用及密碼加密
1. 全局變量
就是我們上面說的kettle.properties文件,我們在里面定義的變量,我們可以在所有的轉(zhuǎn)換或者作業(yè)中獲得到,比如,我們前面,說的數(shù)據(jù)庫參數(shù)
之前,我們已經(jīng)在數(shù)據(jù)庫連接中測試過,是可以,這里,我們輸出下這個(gè)變量,看看
1.1 輸出變量的值
我們這里,用到了“獲取變量"這個(gè)控件
我們單擊,"Get Variables",就可以獲取到當(dāng)前的全局變量信息
我們選擇幾個(gè)輸出試試
還有一個(gè),”日志“控件,
拖好之后,我們直接執(zhí)行,
日志中,我們會(huì)看到,我們定義在文件中的參數(shù)(加密的參數(shù),我沒有重啟,所以顯示的還是原來的)
那我們,可不可以,動(dòng)態(tài)的增加變量呢?
1.2 動(dòng)態(tài)增加變量
剛剛也在網(wǎng)上找了些資料,嘗試了下,這里簡單分享下(貌似,這得算是對(duì)局部變量的操作,暫時(shí)就放在這里吧)
我們先試下在轉(zhuǎn)換中設(shè)置變量,作業(yè)中也是可以使用的,我們后面再說
測試流程是這樣的, 我們再表輸入中,有2個(gè)時(shí)間參數(shù),然后作為變量
比如,有這樣一個(gè)場景,我們每天需要定時(shí)調(diào)度一些SP,SP都有開始時(shí)間,結(jié)束時(shí)間,調(diào)用時(shí),需要傳參數(shù)進(jìn)去,
這個(gè)時(shí)候,我們在使用Kettle的時(shí)候,就可以通過這樣的方式,去設(shè)置變量,然后再調(diào)用SP
我們單擊獲取字段后,就可以了,這里可以修改變量存在的范圍
執(zhí)行后,輸出,后面,我們就可以使用這2個(gè)時(shí)間變量了
這里使用的時(shí)候,也遇到一個(gè)問題,就是變量的默認(rèn)值,一直都沒有生效,不知道為什么,不管是,靜態(tài)值,還是變量值,都沒有辦法,待研究。
2. 局部變量(命名參數(shù))
在kettle中,相對(duì)于全局變量,我們還可以使用局部變量。感覺,這個(gè)全局變量,局部變量,都是相對(duì)而言的,
就網(wǎng)上大部分資料來說,Kettle中的局部變量就是“命名參數(shù)”
我們再轉(zhuǎn)換中,右鍵單擊,選擇,轉(zhuǎn)換設(shè)置
我們選擇,“命名參數(shù)”,定義一個(gè)變量,我們給一個(gè)默認(rèn)值
然后,在日志中,將變量輸出
我們執(zhí)行下,這個(gè)轉(zhuǎn)換,運(yùn)行時(shí)的界面,我們可以看到,這個(gè)參數(shù)是可以動(dòng)態(tài)改變的,或者,我們再命令行調(diào)這個(gè)轉(zhuǎn)換的時(shí)候,同樣可以給他賦值
運(yùn)行結(jié)果,這個(gè)就是簡單的局部變量了