如何在pentaho DI中动态呈现表名和文件名

时间:2014-12-18 08:37:00

标签: file dynamic pentaho

我要求一个源是一个表,一个源是一个文件。我需要在列上加入这两者。问题是我可以通过一个转换为一个表执行此操作,但我需要使用相同的转换将多个文件和表集合作为目标加载到另一组特定文件中。

更具体地说明我的要求:

Source Table                     Source File    Target File

VOICE_INCR_REVENUE_PROFILE_0    VoiceRevenue0   ProfileVoice0
VOICE_INCR_REVENUE_PROFILE_1    VoiceRevenue1   ProfileVoice1
VOICE_INCR_REVENUE_PROFILE_2    VoiceRevenue2   ProfileVoice2
VOICE_INCR_REVENUE_PROFILE_3    VoiceRevenue3   ProfileVoice3
VOICE_INCR_REVENUE_PROFILE_4    VoiceRevenue4   ProfileVoice4
VOICE_INCR_REVENUE_PROFILE_5    VoiceRevenue5   ProfileVoice5
VOICE_INCR_REVENUE_PROFILE_6    VoiceRevenue6   ProfileVoice6
VOICE_INCR_REVENUE_PROFILE_7    VoiceRevenue7   ProfileVoice7
VOICE_INCR_REVENUE_PROFILE_8    VoiceRevenue8   ProfileVoice8
VOICE_INCR_REVENUE_PROFILE_9    VoiceRevenue9   ProfileVoice9

表和文件名始终对应,即VOICE_INCR_REVENUE_PROFILE_0应始终与VoiceRevenue0连接,结果应存储在ProfileVoice0中。在这种情况下应该没有不匹配。我尝试使用表名和文件名设置变量,但它一次只接受值。

所有表名和文件名都是常量。有没有其他方法来解决这个问题。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

尝试使用"将行复制到结果"步。它会将所有传入的行(在您的情况下为表和文件名)存储到内存中。对于每一行,它都会尝试执行您的转换。通过这种方式,您可以一次读取多个文件名。

尝试阅读this链接。它不是确切的答案,但类似。


我创建了一个示例here。请检查这是否是必需的。

在第一个转换中,我读取了表名和文件名并将其加载到内存中。之后我使用了get variable步骤来读取所有文件和表名以生成输出。 [注意:我没有在任何地方使用表输入作为源,而是使用了TablesNames。您可以将其替换为表格输入数据。]

希望有所帮助:)