一、kettle設置變數中變數活動類型
在kettle中,可以通過通過設置變數來控制作業和轉換的流程。而設置變數的第一步就是選擇變數活動類型。在kettle中,常用的變數活動類型有三種:系統、父作業和當前作業。
系統變數是在當前系統上定義的,可以在所有kettle活動中使用。常用於定義路徑和系統參數等。父作業變數是在父級作業中定義的變數。當前作業變數是在當前作業中定義的變數。通過選擇不同的變數活動類型,可以在不同的場景下定義變數。
圖1 kette設置變數中變數活動類型
二、kettle設置變數默認值
kettle設置變數時,除了設置變數活動類型,還可以設置變數的默認值。當變數沒有被賦值時,kettle會使用默認值來初始化變數。在kettle變數中,常見的默認值有靜態的和動態的。
靜態默認值在變數被定義時就已經被設置好了,而動態默認值則是在運行時根據確定的條件去生成。例如,你可以根據當前日期設置動態默認值。
圖2 kettle設置變數默認值
三、kettle設置變數組件
kettle中,可以將變數設置為全局的,這樣在作業或轉換中的任何一個組件中都可以訪問這個變數。在kettle中,標記為『Get Variable』的圖標表示可以獲取全局變數的值。例如,一個作業中可能設置了一個連接資料庫需要的變數,這個變數需要在作業中所有的組件中訪問,這時可以使用全局變數。
在組件級別上,kettle也可以通過設置變數來實現組件之間的變數傳遞。例如,在一個轉換中,一個文本文件輸入組件中讀取文本文件名,傳遞給另一個文本文件輸出組件中。這時也需要在組件級別上設置變數。
圖3 kettle設置變數組件
四、kettle設置變數用屬性文件
在kettle中,有時需要管理大量的變數。為了更好的管理這些變數,可以使用屬性文件。屬性文件是一種用於配置和國際化的文件,它們可以用於不同的地方,例如設置變數的默認值和描述信息等。
使用屬性文件有很多好處,例如,可以將屬性分組管理,編寫工具可以按照屬性文件格式實現讀寫等。而在kettle中,可以通過使用『Load values from a file』步驟來載入屬性文件,在此步驟中可以指定屬性文件的路徑、屬性名和變數值等。
圖4 kettle設置變數用屬性文件
五、kettle設置變數和獲取變數
在kettle中設置變數和獲取變數都很方便。在任何轉換或作業中,在添加步驟或組件時,都可以通過添加『Set Variables』和『Get Variables』步驟來設置和獲取變數。而在kettle中,針對變數的賦值和訪問提供了更多的方式。例如,在kettle命令行工具和kettle API中,可以使用相應的函數來對變數進行操作。
圖5 kettle設置變數和獲取變數
六、kettle設置變數獲取不到
在kettle中,如果設置的變數獲取不到,或者值不正確,可能是由於設置變數的位置不正確或者步驟之間的順序不正確造成。為了解決這個問題,可以通過在kettle作業或轉換中使用合適的調試技術來檢查變數的值。
例如,在轉換中,可以使用Set Variables步驟來設置變數的值,並使用Get Variables步驟來測試變數的值。在作業中,則可以使用調試模式或者輸出到日誌文件來調試變數的值。
七、kettle作業中設置變數
在kettle作業中,設置變數的方式和轉換中類似。在作業中,可以使用『Set Variables』步驟來設置變數,並使用『Get Variables』步驟來獲取變數。與轉換不同的是,在作業中使用全局變數時,需要在jovl描述文件中引用變數。例如,在jovl文件中可以通過「&{變數名}」語法來引用變數。
圖6 kettle作業中設置變數
八、kettle循環設置變數
kettle中,循環是一個常見的操作,而設置循環變數可以實現循環過程中參數的變化。kettle中循環可以使用『Loop values from step』步驟,該步驟可以將源流中的欄位循環賦值給目標流中的欄位。這個賦值過程可以使用變數來實現,如下面的例子:
圖7 kettle循環設置變數
九、kettle循環傳遞變數
kettle中,從一個組件中傳遞變數到另外一個組件中也是很常見的操作。這個過程可以通過設置變數和屬性文件來實現,使用起來相對簡單易用。
例如,在數據流轉換中,可以使用『Set Variables』步驟來設置變數的值,並將這個步驟與源節點和目標節點相連。在目標節點中,可以使用『Get Variables』步驟來獲取變數的值。這個過程可以使用組件間的變數傳遞來實現。
十、kettle轉換里設置變數
在kettle轉換中,設置變數可以通過設置步驟屬性、使用組件間變數傳遞、使用屬性文件等方式實現。其中,設置步驟屬性是最常見的方式之一。例如,在文本文件輸入步驟中設置變數的值,可以在文本文件輸入步驟中設置變數,並且在文本輸出步驟中使用這個變數。這個過程中,變數的值會被傳遞到下一個步驟中。
圖8 kettle轉換里設置變數
總之,在kettle中設置變數是非常常見的操作,不同場景下需要採用不同的設置方式。在實際開發中,我們需要對kettle的變數操作進行深入了解,才能更好地進行kettle的二次開發和定製。
原創文章,作者:YTXL,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/133700.html