你可能會經常選擇不同的應用程序去解決數據整合問題。關鍵是要確定哪些應用可以在給你帶來足夠功能的同時,成本較低。
例如,你面臨著使用SQL Server Transact-SQL的BULK INSERT語句或BCP工具來往SQL Server中讀取文本文件的工作,與SSIS相比,這樣可以在成本較低的情況下滿足數據讀取功能的需求。當你有較小的數據集和簡單的數據整合需求時,上述情況很可能發生,這時啟動SSIS操作的開銷就能抵消使用BCP或BULK INSERT所獲得的性能收益。
幫助你做出正確的選擇,我們把每一應用的主要功能組件列出來,以便你能夠根據主要的需求做出相應的評價。例如,以下的使用指導可以幫助你在BULK INSERT/BCP或SSIS中做出選擇。
◆BULK INSERT / BCP使用指導 – 當你的應用場景有以下的特征時,應該使用BULK INSERT / BCP:
◆有單一的數據源,并且是文件形式
◆有單一的目標,并且是SQL Server
◆沒有數據轉換的需求,比如直接從源讀取到目標
◆沒有工作流程管理,注意流程管理并不適合BULK INSERT,因為它只是一個將數據讀取進SQL Server的單獨操作
◆SSIS使用指導 - 當你的應用場景有以下的特征時,應該使用SSIS:
◆多個不同種類的數據源和目標
◆有數據轉換需求:聚集,查詢,創建新列
◆與其他的管理任務(如郵件或FTP)相結合
◆通過工作流程管理控制多個任務和轉換的順序
評估選擇
根據使用指導,你可以更好的評估哪種應用選擇更符合你的數據需求。
在文件讀取的例子中,你的需求不僅僅是往SQL Server中讀入5000000條記錄,還包括對這些記錄的數據聚集?紤]到這些需求,確認以下哪個方法可以完成這項任務。注意,這里僅僅列出兩個可行的方法。
◆方案1 - BULK INSERT解決方案 – 你當然可以使用BULK INSERT去從源文件讀取數據,并裝載到SQL Server中。但是,你還需要增加額外的操作,在把數據裝載到目標表前對其進行聚集。一種方法是使用BULK INSERT把數據放入一個暫時的表,然后使用Transact-SQL對暫時表中的數據進行聚集,再用Transact-SQL把數據讀入目標表中。
◆方案2 – SSIS解決方案– SSIS提供了一站式的解決方案,你可以在聚集數據的同時將其裝載到目標表中。并且,在SSIS中你還能添加工作流程來控制這些操作的順序,甚至對執行過程進行日志,記錄操作執行的過程,以及進行出錯處理,找出不符合要求的記錄。
當你對比上述兩個方案時,SSIS解決方案可以不使用暫時表,并且把所有的數據讀取邏輯和工作流程裝入單一的SSIS包中。而對于方案1,你不僅需要使用Transact-SQL來對數據進行聚集,還需要把數據邏輯封裝在一個存儲過程中。所以,根據這一對比,SSIS解決方案是這一讀取-聚集案例最優的選擇,也就是可以提供足夠的功能,并且有能力集中管理工作流程。
文章來源于領測軟件測試網 http://www.kjueaiud.com/