Sql server 2008 SSIS查找组件--识别失败的行/发送到跟踪输出?

Sql server 2008 SSIS查找组件--识别失败的行/发送到跟踪输出?,sql-server-2008,ssis,sql-server-2008-r2,Sql Server 2008,Ssis,Sql Server 2008 R2,环境:带有SSI和SSA的SQL Server 2008 R2 简短问题:是否仍然可以让SSI将失败查找中的数据行发送到跟踪事件 长问题:我正在收集一些SSIS包,这些包对表中多达数百万行的数据进行大量转换。最终目的地是SSAS多维数据集。所有的查找都应该成功——失败表明数据质量问题已经渗透进来,因此在失败的查找中失败整个ETL是正确的 但是,似乎没有任何简单的方法可以让SSIS查找组件报告在跟踪日志中记录“row yieled no match in Lookup”时失败的行。我想看看是否有什

环境:带有SSI和SSA的SQL Server 2008 R2

简短问题:是否仍然可以让SSI将失败查找中的数据行发送到跟踪事件

长问题:我正在收集一些SSIS包,这些包对表中多达数百万行的数据进行大量转换。最终目的地是SSAS多维数据集。所有的查找都应该成功——失败表明数据质量问题已经渗透进来,因此在失败的查找中失败整个ETL是正确的

但是,似乎没有任何简单的方法可以让SSIS查找组件报告在跟踪日志中记录“row yieled no match in Lookup”时失败的行。我想看看是否有什么我可以做的,以实际捕获失败的行,并获得行数据记录在跟踪的同时

目前,我不得不求助于将不匹配的行提供给CSV文件进行分析,但这意味着takeon会继续处理,这是我不想要的。此外,将文件挂接到每个查找组件上意味着管理大量额外文件(还需要配置其关联的连接管理器)。理论上,如果我将所有输出输入到联合变换中,我可以管理单个文件,但是当我处理包含多达10-15个查找变换的包时,这会很快变得混乱

我想知道是否有任何方法可以连接到OnError事件来获取这些数据,但如果有,这是不明显的

欢迎有其他想法。我不敢相信我是唯一一个想知道如何做到这一点的人,但我的stackoverflow fu和google fu已经抛弃了我,我无法(奇怪地)在这上面找到任何东西


干杯

您是否可以将这些行重定向到一个表中,并在其中放置一个“源程序包”列,以便查询它们或简化补救报告


此外,这只是一个想法,但也许您可以将所有输出重定向到该页面上的“垃圾输出”。然后,您可以继续记录查找错误,而无需将数据移动到目标表

您是指SQL跟踪还是DTS错误日志/表?因此,您希望您的“takeon”在第一次查找失败后停止处理?还是希望它显示所有失败的查找?如果第一个错误失败,并且提要中存在多个数据问题,则可能会非常耗时。@Sam-或者。最终,我可以跟踪有问题的行,而不必将extr数据流元素添加到配置中。对于日志文件/表来说,最好是历史性地查看它,但在探查器中也很好。如果它告诉我故障是什么,也很高兴它在第一次故障时停止。一般来说,我发现这是一个没有正确处理的代码,所以为一个失败的行修复它将为所有可能失败的行修复它。可能值得一看这篇文章。-要点似乎是重定向行(如果以这种方式设置)提供了错误代码和说明,本文将详细介绍如何扩展该错误输出。这个机制看起来是一个有用的线索,可以帮助你创建你想要的输出类型。问题是我有六个转换,最大的有大约20个不同的数据流,最小的有两个数据流,但是每个数据流可以有两到十二个查找转换。将出错的行重定向到另一个表会很快变得非常糟糕,所以我宁愿使用一些原始调试输出,并告诉我“在查找{x}值期间,行未产生匹配项”,或者将报告失败的行发送到某个地方。最后,我只想知道查找失败的值是什么:-)