【问题标题】:I have to convert below SQL Query to informatica cloud logic我必须将下面的 SQL 查询转换为 informatica 云逻辑
【发布时间】:2021-11-24 12:54:13
【问题描述】:

joiner转换的输出(SQL查询中的TestData表名)如下

我需要将数据加载到如下目标

我写了类似的 SQL 查询

从测试数据中选择 * 作为 A 哪里 SourceSystem = 'NC' 和 存在 (从测试数据中选择 * 作为 B B.ClusterID = A.ClusterID AND B.SourceString = '50012559' AND B.SourceSystem = 'ACB' )

您能帮我如何将此 SQL 查询转换为 Informatica 云。

【问题讨论】:

  • 您在 Informatica 上实际尝试过当前查询吗?我希望它会起作用。
  • 是的,您可以将其转换为 infa 云映射。但我认为您的 sql 无法正常工作,因为 B.SourceSystem = 'ACBS' 没有数据。你要实现的逻辑是什么?
  • @koushik Roy 抱歉,错字是 ACBS=ABC 。
  • @Tim 如何在 joiner 之后进行查询,请分享您的想法。

标签: informatica informatica-powercenter informatica-cloud


【解决方案1】:

假设testData 是一个连接器输出,这就是解决方案。我假设,集群 ID 是唯一键。如果它不是唯一键,那么这个解决方案会导致重复。

首先,按 ClusterID 对连接器输出 TestData 进行排序。

然后在 SourceSystem = 'NC' 上放置一个过滤器(filter1)并创建管道 1。 将另一个过滤器(filter2)连接到 SourceString = '50012559' AND B.SourceSystem = 'ACB' 上的排序器并创建管道 2。 添加另一个连接器 - 条件为 pipeline1.ClusterID =pipeline2.ClusterID。

joiner 的输出将是您想要的数据。

这就是映射的样子 -

                                    |-Filter 1 ->|  
TestData_Joiner... -SRT_ClusterID-->|-Filter 2 ->| -JNR_ClusterID-> <desired output>

请注意,这将像下面的 SQL 一样生成数据。 `` SELECT * FROM TestData AS A WHERE SourceSystem = 'NC' AND EXISTS(SELECT * FROM TestData AS B WHERE B.ClusterID = A.ClusterID AND B.SourceString = '50012559' AND B.SourceSystem = 'ACB' )

【讨论】:

  • 谢谢 Koushik!在这里,测试数据是在连接器转换输出之后,从那里我必须实现相同的逻辑。我不能在 Source qualifier 中使用这个 TestData。
  • 我会修改记住Testdata是一个连接器输出
  • 谢谢科希克!!它工作正常。我还使用表达式变量端口实现的另一种方法是为所有记录分配贷款编号,然后仅过滤 NC 记录。这两种方法都按公认的方式工作。又比你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-12
  • 2019-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-08
  • 1970-01-01
相关资源
最近更新 更多