我有一个CSV文件和一个数据库表作为输入.我需要保留数据库表中的所有记录,但不包括CSV文件中的记录.这一切最终都写入了CSV文件.
我所有的尝试都产生了数百个重复,所以我在这里受到了很大的挑战.
这是一个快速而肮脏的技巧,但它应该适合您的需求.
将数据库和CVS输入连接到TMap-将数据库用作主连接,将CSV用作查找.就像是:
tMySqlInput---->Main--->tMap---out---->tFileDelimitedOutput
^
|
|
Lookup
|
|
tFileDelimitedInput
Run Code Online (Sandbox Code Playgroud)
在tMap中,像往常一样映射连接列.单击查找映射区域上方的扳手,将连接类型设置为内连接.确保"匹配模型"未设置为"全部",以避免交叉连接.然后,创建"out"输出连接.最后,单击此连接的扳手并将"Catch lookup inner join reject"设置为true
在"out"(因此,输出文件)上,您将只有DB中不匹配的行.根据您的数据,您可能需要在tFileDelimitedOutput之前添加tAggregateRow以最终清除重复项.