Informatica 将多个连接的查找拆分到 1 个目标的同一字段 Table

Informatica Split Multiple Connected Lookups to same field of 1 Target Table

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

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

我怎样才能做到这一点 - 我是否需要在映射中使用 10 个目标 table 实例,或者可以使用 1 个实例来完成但使用其他技术来确保 LKP 匹配记录不会重复?

My mapping snippet is here - I have 10 such LKPs in the mapping

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

更多细节,在表达式中你需要根据你的不同场景使用IIF()写一个大的IF-ELSE条件。例如,它可以是 -
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 行。

基本上你要了解插入过程。如果您有 10 个相同 table/ 平面文件的目标,并且您使用 10 次查找填充相同的列 (ACC),这将导致数据在您使用导致重复的目标的次数中加载。

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

正确的解法是,

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