最近遇到一個問題,在作業(job)中定義的變量,無法傳遞到轉換中。
1. 作業job定義如圖
2.轉換定義如圖
3.為了測試轉換的設置,所以在轉換中設置了【命名參數】和默認值
在本地用spoon執行一點問題沒有,但上傳到遠程的服務器上,轉換就是獲取不到變量。
然后,另外又在另一台遠程服務器裝了一個測試環境,測試也沒問題,這就奇怪了。
最后,經過多次測試,竟然發現,只要刪除轉換里面的【命名參數】(光刪除默認值都不行),job定義的變量,就可以傳入到轉換中了
這就太神奇,是什么原因導致這個問題呢?
最后,對比了一下,本地電腦版本是8.2的,測試服務器是9.0的,會不會是版本的問題?
生成環境的服務器是linux的,無法使用圖形的spoon,一直沒有注意它的版本
通過${kettle_home}/pan.sh -version 查看版本,發現服務器的竟然是7.1的版本
突然想起8.0的release note 里面好像有修正這個變量的問題。
總結:
在kettle7中,轉換要接收作業的變量,一定不能定義命名參數