如何使用Informatica排除两个平面文件中的匹配行?
我有一个平面文件(源代码),其数据看起来像这样(通常会有更多数据):
1,2,3
4,5,6
第二个平面文件(源代码)如下所示:
1,2,3
我希望结果(目标)是一个看起来像这样的平面文件:
4,5,6
我知道在SQL中有一个EXCLUDE(与INTERSECT相反)可以完成这项工作。但我使用平面文件和Informatica来做这一切。
我对Informatica很新。我只做了大约一个月。所以它可能相当明显。如果你能告诉我你会使用什么样的变形会很棒。
答案 0 :(得分:2)
您可以使用union转换来合并两个文件中的结果集。这将为您提供以下结果集。
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
答案 1 :(得分:1)
将第一个文件包含为Source,并使用基于可能匹配的端口的Lookup转换查找第二个文件。然后,您可以使用过滤器删除从查找缓存中回击的记录。
此方法不需要任何聚合,因此可能表现更好。