你可以用循環做到這一點。 但是,不要擔心,用Pentaho做這件事並不難。
首先,你會用作業來創建你的循環:
START - >Transform_that_holds_parameters - >Transform_to_run_in_a_loop
正如您可以猜到,你的轉換運行同樣在每個DB上是這個流的最後一個。但我們需要在該作業輸入上設置兩個高級標誌:
這時我們就需要用下面的結構來構建我們Transform_that_holds_parameters:
Some_sort_of_input - > copy_rows_to_result
在這裏,你將不得不抓住從某處所有連接參數,無論是Excel文件或另一個數據庫中的表格。但是,一旦您對這些數據進行了修改,請確保每個要運行轉換的數據庫都有一行。好嗎?
將它連接到'Copy rows to result'步驟,這一步將數據發送回我們的JOB,如果您記得,我們的下一個轉換設置爲'對每個輸入行執行'和'將以前的結果複製到參數」。
現在,請記住什麼是列轉換的最後一步的列名,您將需要他們在下一步。
你回我們的工作,並轉到Transform_to_run_in_a_loop,開放參數的特性,並在列「參數」和'流的列名稱與我們剛纔複製到結果列填寫。
在您的轉換中,您將需要使用完全相同的名稱設置相同的參數。在連接設置中使用這些參數。
完成後,現在您將擁有第一個轉換設置所有參數的設置,第二個轉換將爲您擁有的每個數據庫配置運行。
「但它只接受csv中的一行」 - 這是什麼意思?它可以有+100行(每行保存到某個數據庫的連接細節)。在變量中設置連接詳細信息並在運行之後運行子信息。在目錄$ KETTLE_HOME/example中有一個例子如何使用substransformation – simar