如何使用 ETL Pentaho 检索 table 的所有数据并将其复制到另一个 table

how to retrieve all the data of a table and duplicate it in another table with ETL Pentaho

我正在使用 pentaho 数据集成,我想使用 ETLenter image description here[=13= 在 pdi 中为另一个 table 输出生成或复制来自一个 table 输入的数据]

这个问题你问了至少两次,但没有提供太多细节。你想要这样的东西吗:

Table A:
COLUMN1|COLUMN2
A|B
C|D

Table B:
COLUMN1|COLUMN2
A|B
A|B
C|D
C|D

在这种情况下,最简单的方法是创建一个转换 Table 输入 A -> Table 输出 B,并在作业中调用该转换两次。

OK,所以你想加载 table B 与 Table A 中完全相同的数据两次或 n 次。最简单的方法是创建两个转换和一个调用转换的作业。

  • 第一个转换通过简单的 数据生成器 步骤生成 n 行(您希望数据重复的行数),在数据生成器之后,您将 将行复制到结果 步骤
  • 第二个转换简单地使用 Table 输入 步骤查询 table A 并使用 [=] 在 table B 中插入该数据16=]Table 输出 步骤.
  • 然后您创建一个包含两个 Transformation 作业条目的作业。第一次转型,第二次转型。在第二个转换属性中,您选中 Execute for every input row? 选项,以便执行第一个转换中生成的行数的转换。

你在PDI的安装目录下有一个samples目录,里面每一行都有一个jobs/shell/,里面有一个如何执行作业入口的例子n次。

如果您只想复制行,我不会费心创建第一个转换,我会简单地创建第一个转换并在作业中调用它两次。它不是那么优雅,但如果 n 很小,它会更快,它不会随时间改变,你不需要在另一个进程中重用它。