2015-04-24 19 views
0

問題(請參閱下文中的內容)

如何在SSIS中將單個任務(例如下載和解析)擴展爲任意數量的併發執行(例如500)?如何將併發ETL任務擴展到SSIS中的任意數字?

設置描述

我們的設置是,我們有我們要參觀,讓所有的物品,並將其插入到數據庫飼料的URL列表。

目前php腳本併發地下載它們,順序解析它們並將它們轉儲到csv中,然後使用加載數據infile將它們插入到數據庫中。 ETL包可以處理上述所有步驟。

+0

SSIS的控制流級允許並行化。我不記得公式,但它有記錄。所以,開箱即可運行N個併發任務。如果您需要更多的並行化,那麼您可以採用腳本任務方法,並將所有的並行化邏輯寫入代碼。或者你可以簡單地在自己的過程中運行更多的SSIS包。後一種方法在[我們在30分鐘內加載1 TB]中概述(https://technet.microsoft.com/zh-cn/library/dd537533%28v=sql.100%29.aspx) – billinkc

+0

@billinkc感謝這是要走的路 –

回答

0

這由Package Property:MaxConcurrentExecutables控制。默認值是-1,這意味着機器核心x 2,並且通常運行良好。

您還可以通過在每個數據流任務上設置EngineThreads來影響此操作。

下面是一個很好的總結:http://blogs.msdn.com/b/sqlperf/archive/2007/05/11/implement-parallel-execution-in-ssis.aspx

+0

這是我期待的解決方案,我需要以協調的方式處理工作分解。謝謝 –

+0

SSIS控制流設計器爲您提供優先約束(箭頭)和序列容器(盒)來管理協調。我儘量保持鬆散以儘量平行。直到服務器崩潰,我纔開心! –