一、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-hant/n/133700.html