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

dan*_*ren 1 ssis

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

GSh*_*gan 9

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

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

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

查找转换高级编辑器

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

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

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

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