我有一個程序,它監視服務器上的一個文件夾。當新文件(平面文件)進來時,程序(C#)讀取數據,批量插入表中。它工作正常。從不同格式的文件中將數據導入到sql server中
現在我們擴展系統。這意味着數據文件可以採用不同的格式(平面文件,csv,txt,excel ..)或不同的列(我們需要將它們映射到表格中的列)。
我的問題是:C#是這個的最佳選擇嗎?或者,SSIS是一個更好的選擇?
感謝
我有一個程序,它監視服務器上的一個文件夾。當新文件(平面文件)進來時,程序(C#)讀取數據,批量插入表中。它工作正常。從不同格式的文件中將數據導入到sql server中
現在我們擴展系統。這意味着數據文件可以採用不同的格式(平面文件,csv,txt,excel ..)或不同的列(我們需要將它們映射到表格中的列)。
我的問題是:C#是這個的最佳選擇嗎?或者,SSIS是一個更好的選擇?
感謝
這取決於你的背景。不同的格式不應該決定去SSIS。使用解決方案C#程序:您可以繼續使用它,因爲它之前運行穩定。易於部署,特定於您的域名,易於配置。 解決方案SSIS:配置更加複雜,要求開發人員對SSIS有深入的瞭解。管理費用要求超過C#程序。然而,它很容易看到(有圖表讓你更容易看到流程整合)。 從我的角度來看,如果整合過程不需要複雜的業務規則,那麼您應該使用C#程序。否則,如果整合過程需要複雜的規則,SSIS更強大。希望這個幫助。
在C#應用程序中,我猜你正在使用SqlbulkCopy組件,並將其與SSIS相比並不那麼強大。所以如果你的數據量變得很大,那麼C#應用程序將變得更慢。
如果您熟悉SSIS,我的建議是使用SSIS。在SSIS中,您可以使用C#開發的端到端解決方案,即檢查特定文件夾中的文件以將數據加載到數據庫中。
我不一定會選擇其中一個,但根據文件類型和處理量來選擇。對於某些文件類型,它可能更容易與C#和其他SSIS更好地工作。
你的團隊中有誰對SSIS很好?找到一個C#開發人員爲你找工作要比找到了解SSIS的人容易得多。
這些需求/格式將來會如何更新?記住這一點也很重要。
我的確同意別人的看法,認爲SSIS更強大,併爲更復雜的轉換提供支持,但問題是您真的需要這樣嗎?
我擔心的一件事是:它需要繼續觀看新文件的文件夾。現在,它使用Windows服務,並正常工作。如果使用SSIS,我將不得不使用SQL代理來調用SSIS來做類似的事情嗎? – urlreader 2013-04-23 14:37:54
SSIS提供了一個文件觀看任務,與C#程序監視文件夾類似。你可以參考這裏:http://www.sqlis.com/post/file-watcher-task.aspx – 2013-04-23 16:53:54