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 列。
正确的解法是,
- 只使用一个目标
- 使用未连接的查找,似乎您只映射了查找中的一列
(使用连接查找会导致性能问题)
- 在目标之前使用表达式转换,并将结果组织起来传递给目标端口。
在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 列。
正确的解法是,
- 只使用一个目标
- 使用未连接的查找,似乎您只映射了查找中的一列
(使用连接查找会导致性能问题)
- 在目标之前使用表达式转换,并将结果组织起来传递给目标端口。