tft每日頭條

 > 科技

 > ssis文件怎麼加載

ssis文件怎麼加載

科技 更新时间:2025-02-24 19:29:51

數據流任務對錯誤的處理,和控制流不同,在數據流中,主要是對于錯誤行的處理,一般通過Error Output配置。

ssis文件怎麼加載(數據流的錯誤輸出)1

1,操作失敗的類型:Error(Conversion) 和 Truncation。

2,錯誤處理方式:Fail Component,Ignore Failure 和 Redirect Row

3,Error Output增加兩個跟Error相關的Column:ErrorCode 和 ErrorColumn,這兩個Column的數據類型是DT_4

一,錯誤處理方式

當遇到錯誤行時,對待錯誤行的方式有三種:

  • Fail Component:當某一列選擇了Fail Component,并且産生了錯誤時,數據流将停止并失敗,同時觸發任何針對Data Flow Task的OnError Event。
  • Redirect Row:當任何被标記為Redirect Row的column 中任何一行産生錯誤,整個行将被發送到紅色的錯誤path輸出,但數據流不會失敗。如果沒有使用紅色的Error Path輸出,那麼,該行将會從數據流中抛棄。
  • Ignore Failure:忽略錯誤。如果錯誤發生在源或轉換中,那麼錯誤列的值會被設置為NULL;如果是截斷錯誤,那麼隻會向下遊發送部分截斷後的值;當錯誤發生在目的組件上,Ignore Failure的處理方式将會導緻目的組件忽略整個行。

這三種處理錯誤的方式,隻有Fail Component 會導緻Data Flow 失敗,觸發OnError Event,并産生錯誤信息;Redirect Row 和 Ignore Failure 不會導緻任何組件失敗,因此,SSIS 不會抛出任何錯誤信息。

二,對Error Row的做 Redirect 處理

有以下數據流設計:

ssis文件怎麼加載(數據流的錯誤輸出)2

1,配置Data Conversion 組件的Error Output

在Data Comversion 組件,進行一個轉換,将字符串類型轉換為int 類型,故意使其産生錯誤,配置錯誤處理方式是 Redirect Row

ssis文件怎麼加載(數據流的錯誤輸出)3

2,輸出錯誤代碼和錯誤列

在Advanced Editor中查看組件的錯誤輸出列:ErrorCode 和 ErrorColumn,這兩列都是 DT_I4類型,用于輸出 ErrorCode 和 發生錯誤的Column ID。

ssis文件怎麼加載(數據流的錯誤輸出)4

3,存儲Error Output

創建臨時表,存儲Data Conversion的Error Output

create table dbo.Test_ErrorOutput ( ID int, Env nvarchar(11), ErrorCode int, ErrorColumn int )

将Data Conversion的 紅色Path(Error Output Path)鍊接到Error Output Destination。

ssis文件怎麼加載(數據流的錯誤輸出)5

查看 Error Output path的元數據,共有四列:Source的兩個(ID和 Env),ErrorCode 和 ErrorColumn,對于轉換失敗的Column(copy of env),并沒有出現在path中。對于轉換失敗的新增Column,Error Output不會輸出給下遊組件。

ssis文件怎麼加載(數據流的錯誤輸出)6

4,執行Package,查看執行結果

ssis文件怎麼加載(數據流的錯誤輸出)7

Redirect Row的錯誤處理方式不會導緻Data Flow Task的失敗,不會觸發OnError 事件,也不會導緻其子組件和整個Package的失敗。

三,結論

數據流的錯誤處理方式,使得數據流組件能夠自行處理錯誤,不同的錯誤處理方式,産生的結果也是不同的:

  • 當設置Failure Component時,表示Data Flow需要觸發OnError 事件,抛出錯誤信息;
  • 當設置Redirect或者ignore,表示Data Flow 不會觸發OnError Event,Data Flow 将按照設定的容錯邏輯進行處理。
,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved