2015-06-21 94 views
3

我們正試圖設計一個將超大型Excel文件導入SQL數據庫的最佳方法。使用SSIS有點麻煩,因爲它會掃描頂部的X記錄以確定文件的格式,但下面的行可能會有所不同,所以需要大量的試驗和錯誤,我們必須將不尋常的列置於頂部,以便SSIS可以學」。將大型Excel文件導入到SQL Server中的最佳方法

當我們獲得新的文件格式導入時,它們符合行格式等方面的規範 - 所以我們可以說我們事先知道模式。 SQL目標表具有相同的架構,並具有一些額外的列,如插入日期和原始文件名。

有沒有更簡單的方法來創建我們要插入的新文件的格式定義?我們不必使用SSIS,我們可以使用任何其他工具,儘可能多地實現自動化。有測試數據的理智,我們將導入,我們計劃做對分期的數據集,如基本的查詢問題「的紀錄不到1%能錯過郵政編碼」等

非常感謝

+1

該文件在Excel中是強制性的嗎?如果可以導出爲CSV,則可以使用BCP將整行導入暫存表中的單個記錄,然後運行Stored Proc來檢查錯誤,以及上面提到的「學習」部分。然後你可以從那裏很容易地考慮自動化。 –

+0

有一個服務器級設置,告訴SSIS要掃描多少行以確定文件的格式。我忘記了設置的名稱,但我確信它可以很容易地搜索到。 –

+0

@TabAlleman是正確的,你可以使用TypeGuessRows = 0(https://jingyangli.wordpress.com/2009/02/13/imex1-revisit-and-typeguessrows-setting-change-to-0-watch-for-performance /),但是大文件可能會出現性能問題,因爲它會掃描整個文件。我建議追求將文件轉換爲分隔格式。大多數系統的出口不僅僅是excel。 –

回答

0

也許您可以將數據作爲文本導入,然後可以使用派生列轉換對其進行轉換。您可以使用連接字符串中的IMEX選項將數據從Excel讀取爲文本。有關此參數的更多信息,請參閱here

相關問題