使用pentaho修改表中的列

问题描述 投票:0回答:1

enter image description here我是一个pentaho初学者,我想在每次excel生成后修改我的表中的一列(我的表是一个信息传输表,我们一直清空它),知道我有几次转换并且更新将仅在一个转换中完成我将如何执行此操作,以便在每次执行时它只会在执行此更新的转换中进行更新(因为在作业中所有转换都将并行执行)

我在转换中使用了表输入组件和 microsoft excel writer,在工作中我使用了此转换和 sql 脚本组件来提出更新请求,但不要忘记我在这项工作中还有其他转换。

pentaho pentaho-spoon pentaho-data-integration
1个回答
0
投票

好吧,如果我正确理解你的问题,你有 N 个转换 T1.N 后跟 T2.N,它们是并行执行的,从一个表读取但应用不同的过滤器来生成不同的 excel 文件。

所有并行转换完成后,您想要读取/更新源表中的 STATUS 列(可能将其标记为已处理的“行”,或者只是将其带到另一个表或其他表中)并且您只想执行一次,即这就是为什么在您的原始屏幕截图中,您在 T2.1 转换之后有“SQL 2”脚本,但实际上您希望它在所有 T2.N 转换完成后执行,因此原始屏幕截图中的作业结构无效。你不能把它放在所有并行分支汇聚的地方,因为它会被执行N次。

因此,您不再使用一项工作,而是使用两项工作。在作业 J1 中,您放置了所有并行执行:

您不需要“成功步骤”来将作业标记为已完成,当所有步骤都正确完成时,该作业将被标记为已完成,为了清楚起见,我喜欢在顺序运行作业时使用它,但对于并行作业我更喜欢省略它,因为它可以被解释为当任何分支完成时工作就会完成。

此外,在您的屏幕截图中,您尚未标记要并行运行的条目(“=”符号和“开始”条目后面的 --- 行)。为此,您可以右键单击“开始”条目,然后选择“并行运行下一个条目”选项

然后创建第二个作业 J2,它依次启动第一个作业,然后启动 SQL 2 脚本:

现在只有在 J1 成功完成后才会启动 SQL 2 脚本。

© www.soinside.com 2019 - 2024. All rights reserved.