你可以用循环做到这一点。 但是,不要担心,用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