Pentaho-具有多个复制行以导致从结果中获取行为空

Pentaho-具有多个复制行以导致从结果中获取行为空,pentaho,etl,kettle,spoon,Pentaho,Etl,Kettle,Spoon,我试图处理一些数据并将其存储在数据仓库中。为此,我想在一个转换中存储维度,在另一个转换中存储事实(只有一个)。因此,我可以使用一个作业来执行第一个作业,将行复制到结果中,并将它们放入第二个转换中 在第一次转换中,我读取了一些Excel文件,并将这些数据分成了一些流。这是来自一次洗礼的数据,所以我有一个流给人,另一个流给父母,另一个流给赞助者,等等。。。在每个流的末尾,我将数据插入数据库并返回PK autogenerated(它是一个id autoincrement) 在第二个示例中,我只有从re

我试图处理一些数据并将其存储在数据仓库中。为此,我想在一个转换中存储维度,在另一个转换中存储事实(只有一个)。因此,我可以使用一个作业来执行第一个作业,
将行复制到结果中
,并将它们放入第二个转换中

在第一次转换中,我读取了一些Excel文件,并将这些数据分成了一些流。这是来自一次洗礼的数据,所以我有一个流给人,另一个流给父母,另一个流给赞助者,等等。。。在每个流的末尾,我将数据插入数据库并返回PK autogenerated(它是一个id autoincrement)

在第二个示例中,我只有
从result
中获取行,并希望将它们设置为txt文件(只是为了查看是否正确完成)。问题是该文件已创建,但为空。我假设,如果我让
中的字段从result
中获取行,它将获取所有字段

我做错了什么

最后,我想让一个
复制行,以在第一次转换的每个流的末尾生成
,并在第二次转换中获得所有这些数据

在“Insert Pare Padrina”中,我返回自动生成的id_Pare_Padrina,与“Insert Mare Padrina”相同(我有更多的流,我还必须将它们包含到结果中)。由于我需要其他行的值,所以不会每行执行此转换


谢谢大家!

为了将数据从第一次转换传递到第二次转换,需要设置某些参数,如:

1。首先,在第二次转换的转换设置(在职务级别)中,检查以下项目,如下图所示:

将以前的结果复制到参数将确保“将行复制到结果”步骤中的所有结果/数据正确地传递到下一级

为每一个输入行执行:将为第一个转换文件中的每一行执行第二个转换。根据您的要求,这是可选的

2.在相同的转换设置中,在参数选项卡中定义“参数”。查看下图:

这里,NAME是我定义的参数。因此,当您使用“从结果中获取行”时,可以定义这些参数名称

3.您可以交替使用“获取变量”步骤来获取来自上一步骤的所有变量,而不是使用“从结果获取行”。您只需在ktr文件(CTRL+T)中定义参数名称。(事实上,我实际上就是以这种方式实现的,它对我很有效。)

4.由于“将行复制到结果”步骤使用堆内存,因此定义此步骤的多个实例可能会很快耗尽内存空间,您的代码可能会遇到问题。理想情况下,使用此步骤的单个实例

但若数据交互只有一行,最好的选择是使用“设置变量”步骤

我想你可能错过了工作中的一些部分

您可以阅读有关复制行的更多信息,以获得更多信息


希望有帮助:)

是否需要在“参数”选项卡中设置所有参数?如果有多个
复制行以在相同转换中产生不同列的结果,是否会出现问题?只设置需要传递的参数。。理想情况下,由于复制到行使用堆内存,最好的做法是只定义一个“将行复制到结果”步骤。但我找不到一种方法将数据发送到来自不同步骤和不同字段名的下一个转换。@Lyd是否可以共享代码??或者工作/转变的屏幕截图,这样我就可以更清楚地了解你到底做了什么:)Lyd,你有没有找到解决问题的办法?你介意发同样的邮件吗?谢谢