实例学习SSIS(四)--使用日志记录和错误流重定向
导读:
实例学习SSIS(一)--制作一个简单的ETL包
实例学习SSIS(二)--使用迭代
实例学习SSIS(三)--使用包配置
实例学习SSIS(四)--使用日志记录和错误流重定向
实例学习SSIS(五)--理论介绍SSIS
一、使用日志记录
SSIS提供的日志记录方式:
文本文件
SQL Server Profiler
Windows 事件日志
SQL Server
XML 文件
准备工作
使用上节的包,修改myconfig.dtsConfig,将文件夹对应到D:\lyp\SQL\SSIS\package4。
在文件夹下新建userinfo5.txt和userinfo6.txt。
Userinfo5.txt:11|name11|我是name11|男,12|name12|我是name12|女
Userinfo6.txt:13|name13|我是name13|男,14|name14|我是name14|女
步骤:
1、添加一条文本日志,如下图:
2、指定写入日志信息的txt文件,如下图:
3、选择要记录的事件:
调试:
在D:\lyp\SQL\SSIS\package4下创建了一个log.txt文件,可以看到里面有相应的事件执行记录。
二、使用错误流重定向
SSIS错误处理方式
在数据转换时很有可能会发生错误,SSIS对错误的处理方式:
1、选择忽略某些列中的失败;
2、重定向整个失败的行;
3、使组件失败。
默认情况下,所有组件发生错误时失败,从而导致包失败并停止后续处理。
为了不让包停止,发生错误时,通过配置来处理错误,通常是将失败的行重定向到别处进行处理。
准备工作
1、使用上面日志记录用到的包;
2、创建有错误的数据源文件userinfo7.txt(D:\lyp\SQL\SSIS\package5\)。
userinfo7.txt:15|name15|我是name15|男,abc|name17|我是name17|女,18|name18|我是name18|女
在转换id为int时会出现错误。
使用组件失败的情况
在“数据流”中编辑“用户来源”平面文件源,在“错误输出”中将各列的“错误”选成“组件失败”:
调试程序,可以看到“用户来源”变成了红色,整个包停止了,文件中的数据没有被成功导入到数据库中。
使用错误流重定向
目标
把出错的行重定向的别的文件(errorLog.txt)而不会使包停止。
步骤:
1、拖拽一个“平面文件目标”到数据流选项卡。
2、把“用户来源”的红箭头拖到该目标上,在弹出的“配置错误输出”中将UiD的“错误”选择为“重定向行”。
3、编辑“平面文件目标”:
新建“平面文件链接管理器”,选择错误记录文件(errorLog.txt),如下:
调试:
调试程序,可以看到向数据库中插入了两条记录,并在errorLog.txt中写入了出错的行。