天天看點

執行個體學習SSIS(四)--使用日志記錄和錯誤流重定向執行個體學習SSIS(一)--制作一個簡單的ETL包執行個體學習SSIS(二)--使用疊代執行個體學習SSIS(三)--使用包配置執行個體學習SSIS(四)--使用日志記錄和錯誤流重定向執行個體學習SSIS(五)--理論介紹SSIS

導讀:

<b>一、使用日志記錄</b>

<b></b>

SSIS提供的日志記錄方式:

         文本檔案

         SQL

Server Profiler

         Windows

事件日志

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(四)--使用日志記錄和錯誤流重定向執行個體學習SSIS(一)--制作一個簡單的ETL包執行個體學習SSIS(二)--使用疊代執行個體學習SSIS(三)--使用包配置執行個體學習SSIS(四)--使用日志記錄和錯誤流重定向執行個體學習SSIS(五)--理論介紹SSIS

         2、指定寫入日志資訊的txt檔案,如下圖:

執行個體學習SSIS(四)--使用日志記錄和錯誤流重定向執行個體學習SSIS(一)--制作一個簡單的ETL包執行個體學習SSIS(二)--使用疊代執行個體學習SSIS(三)--使用包配置執行個體學習SSIS(四)--使用日志記錄和錯誤流重定向執行個體學習SSIS(五)--理論介紹SSIS

         3、選擇要記錄的事件:

執行個體學習SSIS(四)--使用日志記錄和錯誤流重定向執行個體學習SSIS(一)--制作一個簡單的ETL包執行個體學習SSIS(二)--使用疊代執行個體學習SSIS(三)--使用包配置執行個體學習SSIS(四)--使用日志記錄和錯誤流重定向執行個體學習SSIS(五)--理論介紹SSIS

調試:

執行個體學習SSIS(四)--使用日志記錄和錯誤流重定向執行個體學習SSIS(一)--制作一個簡單的ETL包執行個體學習SSIS(二)--使用疊代執行個體學習SSIS(三)--使用包配置執行個體學習SSIS(四)--使用日志記錄和錯誤流重定向執行個體學習SSIS(五)--理論介紹SSIS

         在D:\lyp\SQL\SSIS\package4下建立了一個log.txt檔案,可以看到裡面有相應的事件執行記錄。

<b>二、使用錯誤流重定向</b>

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(一)--制作一個簡單的ETL包執行個體學習SSIS(二)--使用疊代執行個體學習SSIS(三)--使用包配置執行個體學習SSIS(四)--使用日志記錄和錯誤流重定向執行個體學習SSIS(五)--理論介紹SSIS

    調試程式,可以看到“使用者來源”變成了紅色,整個包停止了,檔案中的資料沒有被成功導入到資料庫中。

執行個體學習SSIS(四)--使用日志記錄和錯誤流重定向執行個體學習SSIS(一)--制作一個簡單的ETL包執行個體學習SSIS(二)--使用疊代執行個體學習SSIS(三)--使用包配置執行個體學習SSIS(四)--使用日志記錄和錯誤流重定向執行個體學習SSIS(五)--理論介紹SSIS

使用錯誤流重定向

         目标

                   把出錯的行重定向的别的檔案(errorLog.txt)而不會使包停止。

         步驟:

                   1、拖拽一個“平面檔案目标”到資料流頁籤。

                   2、把“使用者來源”的紅箭頭拖到該目标上,在彈出的“配置錯誤輸出”中将UiD的“錯誤”選擇為“重定向行”。

                   3、編輯“平面檔案目标”:

                            建立“平面檔案連結管理器”,選擇錯誤記錄檔案(errorLog.txt),如下:

執行個體學習SSIS(四)--使用日志記錄和錯誤流重定向執行個體學習SSIS(一)--制作一個簡單的ETL包執行個體學習SSIS(二)--使用疊代執行個體學習SSIS(三)--使用包配置執行個體學習SSIS(四)--使用日志記錄和錯誤流重定向執行個體學習SSIS(五)--理論介紹SSIS
執行個體學習SSIS(四)--使用日志記錄和錯誤流重定向執行個體學習SSIS(一)--制作一個簡單的ETL包執行個體學習SSIS(二)--使用疊代執行個體學習SSIS(三)--使用包配置執行個體學習SSIS(四)--使用日志記錄和錯誤流重定向執行個體學習SSIS(五)--理論介紹SSIS

         調試:

                   調試程式,可以看到向資料庫中插入了兩條記錄,并在errorLog.txt中寫入了出錯的行。

執行個體學習SSIS(四)--使用日志記錄和錯誤流重定向執行個體學習SSIS(一)--制作一個簡單的ETL包執行個體學習SSIS(二)--使用疊代執行個體學習SSIS(三)--使用包配置執行個體學習SSIS(四)--使用日志記錄和錯誤流重定向執行個體學習SSIS(五)--理論介紹SSIS