我有一个数据流,我需要将来自两个不同来源的数据合并到目标表中,但也只想插入唯一值并忽略现有值。
行键由两列组成,我将其转换为SHA1哈希,以便更容易合并。
我正在做的事情" NOT EXISTS"通过"左外连接"合并连接,我得到正确的连接,后来我使用条件拆分只获得空值。
每个源都按哈希排序。现有的数据源被多播到两个连接以检查现有值,我只想要新的。
我遇到的问题是,即使对我来说,一切看起来还不错,我仍然会遇到唯一的密钥违规(source1和source2都生成完全不同的密钥,数据集中的密钥是唯一的)我无法追查这个问题。
我尝试通过添加更多种类,甚至在现有数据"之后减慢所有内容。源完成它仍会产生唯一的密钥违规。
答案 0 :(得分:4)
如果要执行NOT Exists操作,则配置了“Redirect no match output”的完整缓存中的LOOKUP组件是您应该使用的组件。性能非常好。
这个例子可以提供帮助:http://www.rad.pasfu.com/index.php?/archives/46-SSIS-Upsert-With-Lookup-Transform.html
希望得到这个帮助,