Pentaho中的同步共享定义

Pentaho中的同步共享定义,pentaho,kettle,pentaho-spoon,Pentaho,Kettle,Pentaho Spoon,Pentaho中是否有创建同步共享定义的方法 假设我们有一个源文件s1,它用于两个转换t1,t2。现在,假设我在t1中做了更改,在s1中再添加一列,我希望它也反映在t2中。Pentaho有没有办法做到这一点 当我们在Pentaho中共享数据库连接时,所有的更改都会反映在我们使用它的地方。我们是否也可以对文件执行类似的操作(如果我正在创建文件的共享定义并将其存储在存储库中,然后在其他转换中使用) 谢谢您的时间。通常,我建议对共享逻辑使用子转换。但在这种情况下,结果流中的字段数量将发生变化,因此子转

Pentaho中是否有创建同步共享定义的方法

假设我们有一个源文件s1,它用于两个转换t1,t2。现在,假设我在t1中做了更改,在s1中再添加一列,我希望它也反映在t2中。Pentaho有没有办法做到这一点

当我们在Pentaho中共享数据库连接时,所有的更改都会反映在我们使用它的地方。我们是否也可以对文件执行类似的操作(如果我正在创建文件的共享定义并将其存储在存储库中,然后在其他转换中使用)


谢谢您的时间。

通常,我建议对共享逻辑使用子转换。但在这种情况下,结果流中的字段数量将发生变化,因此子转换不会给您带来太多好处;您仍然需要进入父转换以更改流元数据


另一种方法是使用元数据注入步骤,这样您就可以拥有动态流结构。如果在两个转换中只使用了一个源文件,那么这可能有点过头了,但是如果有很多转换共享了很多源文件,那么这是一种很好的方法。关于如何使用此步骤,web上有多个来源;可以找到这样一个。

谢谢@Ken的回复。我发现实现这一点的方法是:假设我在C:\Users\Desktop上有一个源文件file.xlsx。现在我可以在kettle属性中创建一个名为INPUT_FILE的变量。此变量的值为C:\Users\Desktop\File.xlsx,即文件位置。现在,在T1中,对于文件位置,我只调用${INPUT_file}。T2也是这样。如果此文件的位置发生更改,我将只编辑输入文件并更改位置,如果我需要更改文件中的任何内容,更改将反映在所有转换中,因为它们引用的是公共文件。Kettle属性似乎是引用单个文件的一种非常全局的方式。您可能需要在某个时间处理其他输入文件?