如何在单勺转换中基于变量生成输出?
How to generate output based on variable in a single spoon transformation?
我是 pentaho 的新手。我遇到了一个问题。
我有勺子改造。我有一个包含数据的输入文件。基于输入文件,需要生成输出文件。我的问题是如何根据输入文件生成具有不同文件名的输出文件。
例如:我有一个输入文件,其中有一个字段国家(比如美国)。我需要在最后生成一个包含该国家/地区的输出 xls 文件,即 USA.xls
为此,我所做的是将国家/地区字段映射到变量
${COUNTRY_NAME}
,这样我就可以在生成输出文件名时使用这个变量。但它没有按预期工作。
我需要根据输入文件多次运行这个转换。每个输入文件都有不同国家名称的国家字段。所以我需要为每个国家/地区生成相应的 excel。
例如:在我的第一个 运行 中,我使用了带有美国的文件。现在 ${COUNTRY_NAME} 是美国。输出文件生成的名称以 USA.xls 结尾。到目前为止,一切都很好。但是当我运行第二次用AUS转型的时候,${COUNTRY_NAME}还是USA。输出文件生成的名称以 USA.xls 而不是 AUS.xls.
结尾
我只有一个转换。请帮助我根据输入文件生成具有不同名称的 xls 文件。
提前致谢
你不能在一次转换中做到这一点。原因是在转换中所有步骤 运行 并行进行,因此在写入输出文件时,美国和澳大利亚的数据仍然混合在处理管道中。
当您需要做与时间相关的事情时,请使用 job
。基本上你按原样进行转换,根据 ${country}
过滤数据并将其放入名为 filename${country}.xls
的文件中(是的,你可以,字符串被连接起来)。
变量 ${country}
在另一个读取数据的转换中定义,按国家/地区保留 Unique row
,Set Variables
。
然后你做一个读取第二个transfo的工作(定义${country}
)并链接到第二个(产生filename${country}.xls
)。
您有一个 sample
文件夹,与您的 PDI 一起提供,与您的勺子位于同一目录中。bat/spoon.sh。 sample/job/run_all/Run all sample transformations.kjb
与您想要实现的几乎相同。
我知道,这么简单的任务,第一反应就是难上加难。但是当您习惯推理时,您会发现能够以如此简单的方式控制并行处理的所有好处。
我是 pentaho 的新手。我遇到了一个问题。
我有勺子改造。我有一个包含数据的输入文件。基于输入文件,需要生成输出文件。我的问题是如何根据输入文件生成具有不同文件名的输出文件。
例如:我有一个输入文件,其中有一个字段国家(比如美国)。我需要在最后生成一个包含该国家/地区的输出 xls 文件,即 USA.xls 为此,我所做的是将国家/地区字段映射到变量
${COUNTRY_NAME}
,这样我就可以在生成输出文件名时使用这个变量。但它没有按预期工作。
我需要根据输入文件多次运行这个转换。每个输入文件都有不同国家名称的国家字段。所以我需要为每个国家/地区生成相应的 excel。
例如:在我的第一个 运行 中,我使用了带有美国的文件。现在 ${COUNTRY_NAME} 是美国。输出文件生成的名称以 USA.xls 结尾。到目前为止,一切都很好。但是当我运行第二次用AUS转型的时候,${COUNTRY_NAME}还是USA。输出文件生成的名称以 USA.xls 而不是 AUS.xls.
结尾我只有一个转换。请帮助我根据输入文件生成具有不同名称的 xls 文件。
提前致谢
你不能在一次转换中做到这一点。原因是在转换中所有步骤 运行 并行进行,因此在写入输出文件时,美国和澳大利亚的数据仍然混合在处理管道中。
当您需要做与时间相关的事情时,请使用 job
。基本上你按原样进行转换,根据 ${country}
过滤数据并将其放入名为 filename${country}.xls
的文件中(是的,你可以,字符串被连接起来)。
变量 ${country}
在另一个读取数据的转换中定义,按国家/地区保留 Unique row
,Set Variables
。
然后你做一个读取第二个transfo的工作(定义${country}
)并链接到第二个(产生filename${country}.xls
)。
您有一个 sample
文件夹,与您的 PDI 一起提供,与您的勺子位于同一目录中。bat/spoon.sh。 sample/job/run_all/Run all sample transformations.kjb
与您想要实现的几乎相同。
我知道,这么简单的任务,第一反应就是难上加难。但是当您习惯推理时,您会发现能够以如此简单的方式控制并行处理的所有好处。