【问题标题】:SSIS Redirect on Error - Too many rows错误时 SSIS 重定向 - 行数过多
【发布时间】:2017-12-07 09:46:13
【问题描述】:

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

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

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

【问题讨论】:

  • 您是在 OLE DB 目的地使用快速插入还是常规插入?
  • 快插入耶

标签: ssis ssis-2012


【解决方案1】:

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

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

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

  • 如果只是过滤掉连续的重复项 - 将 OLE DB Dest 切换到常规插入模式,但会显着降低性能。最简单的方法。
  • 如果性能下降不是一个选项,并且您需要保持简单 - 在 Dataflow 中使用 Sort Component 并勾选 discard duplicate rows 标志。警告 - 您无法控制将丢弃哪一行。
  • 如果您需要针对应该传递的数据实施一些业务规则 - 那么您必须实施一些评分列并使用它来过滤行。请参阅 Todd McDermid 的 article on this

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-11
    相关资源
    最近更新 更多