Informatica将多个连接的查询拆分到1个目标表的同一字段。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Informatica将多个连接的查询拆分到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个目标的同一个表的扁平文件,你填充相同的列(ACC)使用10个查找,它将导致数据加载的次数你使用的目标,这导致重复。
即使在每个查找中使用10个不同的条件,也应该只有一个输出端口来填充ACC列。
正确的解决方案是
- 只使用一个目标
- 使用非连接的查找,似乎你只从查找中映射一列(使用连接的查找会导致性能问题)。
- 在目标前使用表达式转换,并将结果组织起来传递到目标端口。
我没有完全理解,但我正在尝试回答。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行的映射。
以上是关于Informatica将多个连接的查询拆分到1个目标表的同一字段。的主要内容,如果未能解决你的问题,请参考以下文章
bigquery excel连接器 - 查询大于256个字符
使用 bigquery 和单个查询进行分区,根据日期将表拆分为多个表