比较2个文件并保留两者不相同的条目

时间:2014-03-06 14:41:39

标签: talend

我有一个CSV文件和一个数据库表作为输入。我需要保留数据库表中的所有记录,但不包括CSV文件中的记录。这一切都将最终写入CSV文件。

我所有的尝试都产生了数百个重复,所以我在这里受到了很大的挑战。

1 个答案:

答案 0 :(得分:7)

这是一个快速而肮脏的技巧,但它应该符合您的需求。

将数据库和CVS输入连接到TMap-将数据库用作主连接,将CSV用作查找。类似的东西:

tMySqlInput---->Main--->tMap---out---->tFileDelimitedOutput
                         ^
                         |
                         |
                       Lookup
                         |
                         |
                  tFileDelimitedInput

在tMap中,像往常一样映射连接列。单击查找映射区域上方的扳手,将连接类型设置为内连接。确保“匹配模型”未设置为“全部”,以避免交叉连接。然后,创建“out”输出连接。最后,单击此连接的扳手并将“Catch lookup inner join reject”设置为true

在“out”(因此,输出文件)上,您将只拥有DB中不匹配的行。根据您的数据,您可能需要在tFileDelimitedOutput之前添加tAggregateRow以最终清除重复项。