SSIS数据流如何删除重复行但在SSIS中记录重复项

4
我从Remove duplicates in SSIS Data Flow学习到如何使用Sort转换来移除重复数据值的行。
在我的情况下,我正在读取一个分隔符文件,需要消除重复,并记录具有重复键的行。我需要将这些行输出到另一个分隔符文件中,并通过电子邮件将其发送回客户端,以便他们可以更正数据并再次尝试。
虽然我会尝试聚合和合并连接,但我还没有完全弄清楚该如何实现。希望能有一种已知的模式来解决这个问题。
3个回答

6

你好,我的答案适用于任何数据,因为互联网上的一些解决方案需要行的主键,而我的解决方案不需要主键。以下是示例结构和数据集:

a   b
1   23
1   23
16  59
12  12
13  45
12  12
45  56

只需按所有列进行分组并添加最后一列 - 计算所有行数(如果有两个或更多列,则只需在“聚合”元素中放置所有列,并对每个设置分组,最后放置“计数所有”列):
然后只需添加条件拆分元素,并提取所有具有多个同一行的行:
真实示例:

很好:+1。但是如果列a和b是关键列,我还想在结果OLE DB目标中包含列C和D怎么办? - John Saunders
顺便说一句,希望我能因为答案中的详细说明给予+10分。 - John Saunders
John Saunders说:“IT并不重要,无论你的列是否为键以及有多少列。你只需要在“聚合”元素中放置所有列,并在每个循环中设置分组,最后放置“计数全部”列。这样就可以工作了。” - Justin
嗨@Justin,当你说“对于我的解决方案,主键不是必需的”时,你确切地在谈论什么?主键更多是一个概念,我的意思是在这种情况下,你的主键是列a和b,所以我完全没有理解。 - Juan Ruiz de Castilla
@JuanRuizdeCastilla,互联网上的一些解决方案需要主键 - 一些行的ID列... 在这种情况下,是的,这是一个概念。 - Justin

2

我在我的博客中提供了几个选项来从数据流中删除重复项,同时还有一个小注脚,介绍如何“保存”这些重复行以备替代处理。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接