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个这样的LKPs

答案

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

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

正确的解决方案是

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

我没有完全理解,但我正在尝试回答。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个字符

MySQL联合查询

使用 bigquery 和单个查询进行分区,根据日期将表拆分为多个表

将功能应用于每个组,其中组被拆分为多个文件,而不连接所有文件

Informatica抽取SQL Server数据库乱码

在Informatica云中映射任务输出中的列排序