在 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 并重新配置包含文件名的字段。
我有一个 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 并重新配置包含文件名的字段。