Informatica将多个连接的查询拆分到1个目标表的同一字段。

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

在Informatica映射中,我需要将多个具有不同查找条件的Connected Lookups拆分,并将输出端口连接到1个目标表的同一个字段。

例如,我有10个LKP(所有LKP都根据10个不同的场景生成不同的Acc_No值),我需要将输出ACC字段连接到目标表的ACC字段。我在映射中创建了10个目标表,并且只将这10个LKP中的每个LKP的输出端口连接到目标表的ACC字段。但这导致目标表中要加载10倍的数据。我在源表中有100条记录,在目标表中只需要100条,但它的加载量是1000条。

我如何才能实现这一点--我是否需要在映射中使用10个目标表实例,或者是否可以使用1个,但使用其他技术来确保LKP匹配的记录不重复?

我的映射片段在这里--我在映射中有10个这样的LKPs

lookup data-warehouse informatica informatica-powercenter lookup-tables
1个回答
0
投票

基本上你要了解插入过程。如果你有10个目标的同一个表的扁平文件,你填充相同的列(ACC)使用10个查找,它将导致数据加载的次数你使用的目标,这导致重复。

即使在每个查找中使用10个不同的条件,也应该只有一个输出端口来填充ACC列。

正确的解决方案是

  1. 只使用一个目标
  2. 使用非连接的查找,似乎你只从查找中映射一列(使用连接的查找会导致性能问题)。
  3. 在目标前使用表达式转换,并将结果组织起来传递到目标端口。

0
投票

我没有完全理解,但我正在尝试回答。A. 你需要在所有查找之后进行表达式转换,这涵盖了你所有的场景。B. 你需要在上面的表达式后只有一个目标,请删除所有其他目标。

更多的细节,在表达式中,你需要写一个大的IF-ELSE条件,使用的是 IIF() 根据你的不同情况。例如,可以是--------。IIF( lkp1_val ='India' AND Acc_Type='Receivables', lkp1_val_Acc_no , IIF (lkp2_val ='Austria' AND Acc_Type='Receivables', lkp2_val_Acc_no ,... ))

我的观点#A是解决你的问题,而观点#B是显示为什么你在目标中看到1000行的映射。

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