在 Pentaho 中对不同数量的文件迭代输入步骤

Iterate the input step over different number of files in Pentaho

我有一个 get file names 步骤,其中包含获取 4 个 csv 文件的正则表达式。 之后我有一个设置 csv 字段的 text file input 步骤,并读取这些文件。

完成此步骤后,将执行 Table output 步骤。

问题是 text file input 似乎在一条语句中读取了所有 4 个文件,因此 table output 语句插入了 4 个文件的行。所以我的输出 table 有 20 行(每个文件 5 行)

预期的行为是读取一个文件,将文件的 5 行插入输出 table 并执行 sql 脚本,将此 table 移动到最终的 table 并截断温度 table。现在对第二个、第三个和最后一个文件重复该过程。

临时的table在加载文件的每一步都会被删除,但是最终的table不会,它是增量的。

我如何在 pentaho 中做到这一点?

将您当前的作业更改为对每个传入记录执行一次的子作业。

在新的主要工作中你需要:

  • 运行获取文件名链接到将行复制到结果的转换
  • 包含您当前工作的工作条目。将其配置为对每一行执行。

在子作业中,您必须将 Get Filenames 替换为 Get Rows from Result 并重新配置包含文件名的字段。