环境:带有SSIS和SSAS的SQL Server 2008 R2。
简短问题:无论如何让SSIS将数据行从失败的查找发送到跟踪事件?
长问题:我正在整理一些SSIS软件包,这些软件包对数据中的数据进行了大量转换,这些表中包含多达几百万行。最终目的地是SSAS立方体。所有查找都应该成功 - 失败表明数据质量问题已经渗透,因此在查找失败时使整个ETL失败是正确的。
然而,似乎没有任何简单的方法可以让SSIS Lookup组件在跟踪日志中记录“在查找期间没有匹配的行”时报告哪一行失败。我想看看我能做些什么来实际捕获失败的行并同时获取跟踪记录在行中的行数据。
目前,我不得不求助于将不匹配的行提供给CSV文件进行分析,但这意味着接收然后继续处理,这是我不想要的。此外,将文件挂钩到每个查找组件意味着管理大量额外文件(还需要其关联的连接管理器配置)。理论上,如果我将所有输出都输入到Union变换中,我可以管理单个文件,但是当我处理具有多达10-15个Lookup变换的包时,这会很快变得混乱。
我想知道是否有任何方法可以挂钩到OnError事件来获取这些数据,但如果存在,则不明显。
欢迎任何其他想法。我不敢相信我是唯一一个想知道如何做到这一点的人,但是我的stackoverflow-fu和google-fu已经抛弃了我,我不能(奇怪地)在这上面找到任何东西......
干杯!
答案 0 :(得分:0)
您是否可以将这些行重定向到表格中并在其中放置“源包”列以进行查询或简化补救报告?
另外,只是一个想法,但也许您可以将所有输出重定向到此page上的“垃圾输出”。然后,您可以继续记录查找错误,而无需将数据移动到目标表。