2009-05-28 92 views
0

我想知道SSIS如何處理大型數據集的交易。我有大約150,000行的「大型」數據集,每個數據集都需要根據業務規則進行驗證,作爲ETL從分段數據庫到實時數據庫的一部分。SSIS交易 - 大型記錄集

如果任何記錄不符合其業務規則,則記錄應該在實時數據庫中結束(即回滾事務)。

我的問題是SSIS如何處理大型交易 - 或者可以嗎?它會處理輸入149,999條記錄,然後如果最後一條記錄沒有遵守它的總線規則,那麼將整卷卷回來?或者是否有更好的執行此類大數據傳輸操作的最佳做​​法?

我目前的想法是在控制流級別處理序列容器中的每個記錄,並在容器上啓用transcation設置。所有驗證都將在序列容器中完成,插入也將在此容器中完成。

回答

2

SSIS可以很好地處理交易。在哪裏跌倒是針對使用MSDTC的多個數據庫或服務器進行交易(仍然有效,但有一些注意事項)。

您可以將數據流任務中的TransactionOption設置爲Required。這將迫使SSIS將其註冊到交易中。同樣,你可以把其他任務的TransactionOption被notsupported時(例如更新狀態表,如果它不能失敗)。

你不能真正處理序列容器中的每個記錄(除非你遍歷一個數據流任務多次這可能不是最好的方式)。相反,我把數據流的TransactionOption必需的,那麼如果任何記錄在您的數據流失敗應該失敗的任務,並回滾整個事務。

0

我與丹麥,SSIS和SQL服務器同意應該有這個數額的交易沒有問題,只要有適當的基礎設施來支持這一點。