在SSIS中提取不同的记录

时间:2011-03-28 19:28:17

标签: sql-server-2008 ssis duplicate-removal

我正在编写SSIS包以将* .csv文件中的数据导入SQL 2008 DB。问题是其中一个文件包含csv文件中的重复记录,我想只从该源中提取不同的值。请看下面的图片。

Duplicate

不幸的是,生成的文件不在我的控制之下,它由第三方拥有,我无法改变它们生成的方式。

我确实使用了LookUp组件。但它只根据传入的数据检查现有数据。它不会检查传入数据中的重复记录。

5 个答案:

答案 0 :(得分:9)

我相信sort组件提供了删除重复行的选项。

答案 1 :(得分:4)

取决于你想要重复的重要性。你需要记录重复的内容还是仅仅摆脱它们?排序组件将摆脱排序字段上的重复。但是,重复可能在其他字段中具有不同的数据,然后您需要不同的策略。通常我将所有加载到临时表并从那里清理。我将删除的欺骗发送到一个例外表(我们必须回答客户的很多问题,为什么事情与他们发送的内容不匹配)我经常使用一组业务规则(并使用执行SQl)或者数据流任务来强制执行规则)以确定在一个区域中存在重复而不是另一个区域时要选择哪个(例如,当我们只能存储1时,两个业务地址)。我还要确保客户知道我们如何确定要选择哪两个。

答案 2 :(得分:1)

使用SORT工具从Toolbox中获取该工具,然后单击它。您将获得所有可用的输入列。 检查列并更改sortType方向,然后选中“删除具有重复排序值的行”。

答案 3 :(得分:0)

以cfv文件的方式输入数据,然后在加载后对其进行重复删除。 调试起来也会更容易。

答案 4 :(得分:0)

我使用了Aggregate Component和Group By QualificationID和UnitID。如果需要,您也可以使用排序组件。也许,我的信息可能对其他人有帮助。