SSIS重定向错误 - 行太多

时间:2017-12-07 09:46:13

标签: ssis ssis-2012

我有一个导入平面CSV文件的SSIS包,文件中有大约200,000条记录。我已使用帐号的主要唯一键设置数据导入的表。源数据中不应该有任何重复项(受控制的应用程序 - 在我的影响之外)

然而,CSV中有1个重复的行,但是当我添加主键时,它会重定向7k行...这些不重复的行只是为了无缘无故地重定向加载?

enter image description here

如果我手动删除单个重复行,它可以完美地工作。数据或文件没有什么特别之处,它应该只导入数据并重定向错误行。

enter image description here

1 个答案:

答案 0 :(得分:1)

此行为是由于使用了OLE DB目标和快速插入模式。

使用快速插入模式,OLE DB目标发出INSERT BULK命令并批量插入。如果批处理中的某一行违反表约束,则整个批处理失败并重定向到错误输出。乍看之下这种行为很奇怪 - 拒绝超过1行。

您可以用它做什么 - 取决于您的目标和限制

  • 如果只是过滤掉连续的重复项 - 将OLE DB Dest切换到常规插入模式,代价是显着降低性能。最简单的方法。
  • 如果性能下降不是一个选项,并且您需要保持简单 - 在数据流中使用排序组件并勾选丢弃重复行标记。警告 - 您无法控制哪一行将被丢弃。
  • 如果您需要实现某些数据应该传递的业务规则 - 那么您必须实现一些评分列并使用它来过滤行。见托德麦克德米尔的article on this