2011-04-06 34 views
2

我們正在開始一個處理大型平面文件的項目。這些文件有點「標準化」,我們想先將它們處理爲中間文件。SSIS中的審計和錯誤處理

我想查看一個自定義表的審計行和自定義表的錯誤處理過程中引發的錯誤。此外,錯誤必須存儲在事件日誌中。

根據審計&錯誤處理一般SSIS(VS2008)的最佳做法是什麼?

(編輯) 我們通過設計1個主包使得(我認爲)非常優雅的解決方案。這個軟件包運行一個兒童軟件包(最初的目的)。主包訂閱了3個事件,如OnInformation,OnWarning和OnError。這些事件被路由到通用審計日誌服務&,該服務調用企業庫日誌記錄&異常處理塊。

回答

1

我會建議你的是採用了穩定的ETL過程從文件即將以下理念:

  1. 在連接器從不投什麼,只是導入的字段,因爲他們將獲得最大的lenght的nvarchars。
  2. 爲轉換錯誤中的錯誤跟蹤過程添加行計數。
  3. 投射和控制每列到您的規格。
  4. 如果在某個階段無法讀取某一行,您將不知道該索引,但是您會知道該文件格式不正確(根據我的經驗,對於一半傳輸的文件極爲罕見),並且它應該被拒絕。

文件加載過程的一部分的快速截圖顯示拒絕(分配row_id後)如何工作(link to dataflow image)。爲此,您可以添加更多無數檢查(重複...),甚至可以爲已加載的文件存儲庫以檢查拒絕和您可能想要控制的任何其他內容(Link to control flow image)。

在我的一些進程中,我甚至使用了一個平面文件連接器,並將每行作爲批量文本導入,然後使用中間腳本組件將其拆分爲列,從而允許在文件中使用不同版本的列。

無論如何,對不起,不要更詳細(由於我的地位,我不能添加更多的鏈接或任何圖像),但我希望你瞭解這個概念。

Regards,

Francisco。