2013-10-12 33 views
0

我正在研究需要將數據從CSV文件導入SQL Server的系統。 CSV文件有兩組不同的數據。每組數據在數據庫中都有自己的表。 (請參見附件圖像,瞭解CSV的樣子)將通常格式化的CSV文件的導入數據過程自動化到SQL Server 2012中

csv file

要使用導入/導出功能,我必須複製兩套粘貼到兩個不同的CSV文件,然後將它們導入一次一個如此該映射正常工作。

該系統將與CSV文件1000每天的基礎上進行處理。所以這個過程需要自動化。我猜我需要編寫一些.net腳本來處理每個需要數據並將其轉儲到數據庫中的CSV文件。我對麼?還有其他建議嗎?

+1

如果你有SQL Server,請不要你有SSIS? – Andrew

+0

我確實有SSIS。但是在使用SSIS之前,我有1000個需要修改的CSV文件。如果我直接在上面的CSV上嘗試SSIS,它不會識別正確的字段。 – wackytacky99

回答

1

我們的方法是創建一個與我們的主要應用集成服務,其內容CSV的隊列和XLS文件的用戶發送,解析並將它們存儲到DBMS(Oracle或SQL Server)中的數據表中 此方法的優點是您的服務可以執行其他操作並將消息發送回您的應用程序。

用戶可以通過熟悉的界面(您的應用程序)來學習新工具。基本上,它與應用程序完全集成,但是實際的處理是在專用服務器上完成的。

+0

這正是我想要完成的。但我不知道如何完成這一點。我可以通過VBScript來修改和創建新的CSV,然後使用SSIS-BI將數據導入到SQL Server中。 – wackytacky99

+0

一旦文件處於隊列中,winservice將運行一個應用程序,該應用程序知道如何處理使用Office Interop的文件。我的意思是,在我們的情況下,沒有腳本或任何工具 - 它都在C#代碼中。您可以像數據庫表一樣讀取CSV和XLS,然後在將數據存儲到主數據庫之前對數據進行任何操作和解析。 –

+0

所以你建議用C#或vb.net編寫這樣的應用程序,對嗎?而不是使用SSIS-BI? – wackytacky99

1

Talend也特別爲這種東西一大利器。您可以設計來自任何數據源的導入作業(包括從CSV到Excel)。

如果數據量是相當大的每一個CSV文件,我會寫一些工作,其槓桿的SqlClient的批量插入功能。這使得數據插入快了很多......

了Talend支持批量插入,所以這應該是很容易創建...

我們擁有了Talend喬布斯100S不僅複製數據,而且還做了很多轉換等......這是一個非常堅實的事情,它是免費的...

+0

那麼你是說Talend會提供處理100個CSV文件的能力,將CSV中的選定字段轉換成單獨的文件,然後將新文件中的數據插入到SQL Server中? – wackytacky99

+0

是的,輕鬆!這就是這個工具非常擅長的。你也可以設計這些「任務」並在任何你想要的地方運行它,它實際上編譯成一個jar文件(Talend在後臺生成Java代碼)。 – MichaC

1

一個可行的方法是:

  1. 創建任務(如Windows服務)運行,每天檢查您接收的文件和分割在2個CSV文件中的每個csv文件(TYPE_1和TYPE_2的文件夾)
  2. 創建SQL Server中的作業的第一份工作後運行,並且使用BULK INSERT 到每種類型的文件導入到其對應的表。
相關問題