2009-09-14 53 views
1

我們正在評估SSIS,看它是否適合即將推出的新項目。其中一個進程將不得不處理帶有分隔記錄的平面文件。該文件將包含訂單。有一個標題行,(可選)送貨地址行和一個或多個明細行。每行的字段都是分隔的,但格式不同。使用SSIS讀取多種記錄類型的平面文件

我讀到這樣的回答:

SSIS transactional data (different record types, one file)

而且我可以分割使用的條件性拆分任務產生多個輸出數據,但我不知道如何從那裏繼續。我有我需要解決兩個問題:

  1. 訂單表頭應該先插入,因爲地址和細節將引用訂單記錄的地址和細節之前,所以我想我需要處理輸出第一,但我不確定在SSIS如何使條件拆分任務的分支在之前的其他分支處理。理想情況下,我想處理訂單標題,然後將訂單ID存儲在用戶變量中,以便在處理詳細信息時可以引用該變量。

  2. 該文件中會有多個命令,因此分割它更復雜。

我總是可以在C#中編寫一個應用程序來預處理文件或將文件讀入臨時表,但我不確定我喜歡那種方法。

任何經歷過這個過程的人都可以分享他們如何處理它的一些見解嗎?

感謝,

克里斯

回答

2

拆分後,存每種類型的記錄到它自己的臨時表 - 或成SSIS原始數據的目的地,這是速度更快,對於像這樣的中間步驟。然後將所有標題加載到它們的最終表格中,然後繼續執行,無參考錯誤。

我假設詳細記錄有一個headerID在他們?這應該使你的第二個問題容易處理。如果沒有,請告訴我們。

+0

謝謝,我會測試一下。我對原始數據目的地不是很熟悉。我曾想過使用臨時表,但想知道是否有其他選擇。再次感謝。 – 2009-09-16 15:25:40