Lookup转换SSIS中错误输出和“无匹配输出”之间的区别是什么

时间:2012-12-05 19:02:18

标签: ssis

我想在SSIS中使用查找转换并将其连接到两个平面文件目标。我知道转换有两个绿色输出,但我不能使用红色错误输出而不是“无匹配输出”和“重定向行”而不是?有什么区别?

1 个答案:

答案 0 :(得分:9)

通过SSIS中的查找转换,您可以控制如何处理“不匹配”情况。双击查找转换,在“常规”选项卡上,您可以通过选择以下选项之一来选择处理不匹配行的方式:

  • 忽略失败:继续处理,好像什么都没发生一样
  • 失败组件:引发异常并停止处理数据流任务
  • 将行重定向到错误输出:不是跟随绿色输出,而是将行移动到红色输出以便单独处理。
  • 将行重定向到无匹配输出:将行切换到辅助输出,允许您以不同于匹配数据的方式处理不匹配的数据。

如果右键单击“查找”并选择“显示高级编辑器”,则可以看到更多详细信息。跳转到“输入和输出属性”窗格,您可以看到“查找无匹配输出”和“查找错误输出”流之间的区别。

Lookup Transformation Advanced Editor

“查找错误输出”是一个标准且不可编辑的输出流,它捕获错误并将错误详细信息添加到现有列集合中,允许您处理错误,记录错误,跟踪导致错误的行等。

“查找无匹配输出”允许您定义自己的列以传递到不同的输出流和/或对不匹配的行执行一些不同的处理。一个很好的例子是使用“查找转换”来查看在处理时是否需要向数据库中的查找表添加新行。不匹配的行可以重定向到“无匹配输出”,分组以删除重复项,并插入到数据库中,而其余行继续进行。

底线,这取决于你想要做什么。如果要处理错误(即截断,与处理不匹配行的方式不同),则可以使用“查找无匹配输出”来执行此操作。

就个人而言,我宁愿使用匹配/不匹配输出处理已知条件,并保存“错误输出”以进行实际的意外异常处理。