我有一個Pentaho Kettle作業,可以從x個表中加載數據,並將其放入具有不同模式的目標表中。在運行時對列動態執行轉換
假設我有表1,像這樣:
列已被重命名時,訂單已更改,數據已轉換。重命名和順序很容易通過使用Select Values步驟進行管理,該步驟可以在ETL元數據注入步驟中使用,使其依賴於在運行時加載的一些配置值。
但是,如果我需要在某些列上執行某些轉換邏輯,那麼基於它們在目標表中的位置,這似乎不那麼簡單。
在我的例子,我想列「國家或地區名稱」資本化,而列「評級」被難倒(如更改實數到以前的整數值)。
雖然我可以通過隻手動添加改造完成每項做到這一點,我想我的解決方案是動態的,所以它可以很容易地通過校驗和組件運行「國家或地區名稱」一欄,或執行天花板上「評級」。
我可以很容易地包裝這些轉變在另一個改造,使他們可以在需要的時候進行參數設置和執行:
但是,在那裏我遇到麻煩的是,當我處理的數據行,我需要一種方法能夠說:
- 列「國家或地區名稱」應通過資本傳遞變換
- 列「評級「應通過地板傳遞變換
- 欄(S)」 AnythingElse「應通過一些其它可以通過變換
有沒有辦法來動態地打出列在一排,並執行根據可以提供的一些配置元數據對每一個進行不同的轉換?
從邏輯上講,這將是這樣的事情,雖然我懷疑有可能是來處理它作爲循環或某種形式的動態變化的,而不是繪製出每列的路徑的方式:
水壺非常靈活,似乎必須有辦法做到這一點,我只是努力知道使用哪些組件,以及如何去做。那裏的任何專家都有一些建議?
我正在處理一些比較大的數據集(數以百萬計的行),所以不願意使用Row Normaliser/Denormaliser或者如果可能的話寫入文件/數據庫。