【问题标题】:How do I Exclude matching rows in two flat files using Informatica?如何使用 Informatica 排除两个平面文件中的匹配行?
【发布时间】:2011-03-08 20:42:59
【问题描述】:

如何使用 Informatica 排除两个平面文件中的匹配行?

我有一个平面文件(源),其中的数据看起来像这样(通常更多数据):

1,2,3
4,5,6

第二个平面文件(源)如下所示:

1,2,3

我希望结果(目标)是一个如下所示的平面文件:

4,5,6

我知道在 SQL 中有一个 EXCLUDE(与 INTERSECT 相反)可以完成这项工作。但我正在使用平面文件和 Informatica 来完成这一切。

我对 Informatica 还是很陌生。我只做了大约一个月。所以可能比较明显。如果您能告诉我您会使用哪些转换,那就太好了。

【问题讨论】:

    标签: informatica-powercenter


    【解决方案1】:

    您可以使用联合转换来联合来自两个文件的结果集。这将为您提供以下结果集。

    col1, col2, col3
    -----------------
    1,2,3
    4,5,6
    1,2,3
    

    在此之后,我将使用聚合器转换并选择这些端口(以及您想要分组以将它们视为重复的端口)并在聚合器转换中获取计数。

    After Aggregator (new column count => total_count)
    ----------------------------------------------------
    col1, col2, col3,total_count
    -----------------------------
    1,2,3,2
    4,5,6,1
    

    下一步很简单,将它们通过过滤器转换并使用以下过滤器条件来忽略具有重复项的行。

    total_count = 1

    【讨论】:

    • 我从来没有这样想过。那是完美的!谢谢!
    【解决方案2】:

    将第一个文件作为源包含在内,并使用基于可能匹配的端口的查找转换来查找第二个文件。然后,您可以使用过滤器从查找缓存中删除被回击的记录。

    此方法不需要任何聚合,因此它的性能可能会更好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多