且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

实例学习SSIS(四)-- 使用日志记录和错误流重定向

更新时间:2021-08-07 11:46:56

一、使用日志记录

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、添加一条文本日志,如下图:
实例学习SSIS(四)-- 使用日志记录和错误流重定向
        2、指定写入日志信息的txt文件,如下图:
实例学习SSIS(四)-- 使用日志记录和错误流重定向
        3、选择要记录的事件:
实例学习SSIS(四)-- 使用日志记录和错误流重定向
调试
实例学习SSIS(四)-- 使用日志记录和错误流重定向
在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时会出现错误。

使用组件失败的情况

                  在“数据流”中编辑“用户来源”平面文件源,在“错误输出”中将各列的“错误”选成“组件失败”:
实例学习SSIS(四)-- 使用日志记录和错误流重定向
调试程序,可以看到“用户来源”变成了红色,整个包停止了,文件中的数据没有被成功导入到数据库中。
实例学习SSIS(四)-- 使用日志记录和错误流重定向
使用错误流重定向

        目标

                  把出错的行重定向的别的文件(errorLog.txt)而不会使包停止。

        步骤:

                  1、拖拽一个“平面文件目标”到数据流选项卡。

                  2、把“用户来源”的红箭头拖到该目标上,在弹出的“配置错误输出”中将UiD的“错误”选择为“重定向行”。

                  3、编辑“平面文件目标”:

新建“平面文件链接管理器”,选择错误记录文件(errorLog.txt),如下:
实例学习SSIS(四)-- 使用日志记录和错误流重定向
实例学习SSIS(四)-- 使用日志记录和错误流重定向
 
调试:

                  调试程序,可以看到向数据库中插入了两条记录,并在errorLog.txt中写入了出错的行。(文/青羽
实例学习SSIS(四)-- 使用日志记录和错误流重定向
 




本文转自 qianshao 51CTO博客,原文链接:http://blog.51cto.com/qianshao/236236,如需转载请自行联系原作者