我每天從供應商那裏獲得一個10 GB XML文件,並且希望將該文件導入到SQL Server表中。 什麼是正確的方法?自動將10 GB XML文件導入SQL Server
0
A
回答
1
這是一個很大的舊XML文件。這就是我要做的,在最近的項目中,我收到了相當大的文件以供導入。
首先,我會確保我收到的文件是zip文件或gzip文件,我會在java中執行此操作,但它可以通過python或C#完成。然後,我會在一個流中解壓縮(不是一次只讀整個文件,只是從壓縮流中讀取)。
然後我會解析流解析器中的文件。在Java中我會使用STaX,但在其他語言中,其他選擇將可用。然後,當我讀取XML時,我將收集數據並將其寫入可傳遞給bcp.exe的CSV(製表符分隔)文件。
我不確定數據的結構,但也許可以將它放在一個CSV文件中,也可能需要多種類型的CSV文件。無論哪種方式,我會盡量不要創建大於50MB的CSV。然後,一旦CSV文件的gona超過大小閾值,我會關閉它並將其傳遞給另一個線程並繼續XML解析。
在第二個線程中,我會把它們分發給bcp.exe來加載數據。
如果你需要加載到多個表格,你仍然可以通過一個CSV文件來完成,但是BCP進入一個視圖並且在視圖上有'替代插入觸發器'。這個觸發器可以規範化數據和查找主鍵並插入子表等。
如果你在C#中這樣做,那麼也許你不需要使用bcp.exe作爲natice批量加載它比java API。
這種轉換爲分塊CSV,並行上傳,使用觸發器進行查找的整體方法對我們來說工作得非常好。
我有我的版本,需要一個6GB的XML文件夾,傳播數百個文件,並在幾分鐘內加載到數據庫中。這是對4個表格,但使用一個CSV文件與所有列的聯合。
相關問題
- 1. 將XML文件導入SQL Server太慢
- 2. 如何快速導入mysql中的10 GB sql文件?
- 3. 導入XML文件(3000)到SQL Server
- 4. 自動將平面文件導入MS SQL Server 2008
- 5. 導入XML到SQL Server
- 6. 導入文件到SQL Server
- 7. 導入SQL Server .bacpac文件
- 8. 將excel文件導入到sql server
- 9. 將EBCDIC文件導入到SQL Server中
- 10. 將Excel文件導入SQL Server
- 11. 將DBF文件導入到Sql Server中
- 12. 將MDF文件導入SQL Server 2008?
- 13. 如何將Excel文件導入SQL Server?
- 14. 錯誤將文件導入到SQL Server
- 15. 將xml文件導入到sql server表中
- 16. 使用OPENROWSET將XML文件導入SQL Server 2000
- 17. 將多個XML文件導入到遠程SQL Server表中
- 18. 將大型XML文件導入到SQL Server CE中
- 19. 經典ASP將遠程XML文件導入到SQL Server中
- 20. 將XML文件導入SQL Server的腳本
- 21. 如何將XML文件導入到SQL Server 2012中
- 22. 將xml鍵值對導入到sql server?
- 23. 將XML與BCP導入SQL Server
- 24. 將網站XML-feed導入到SQL Server
- 25. 將XML導入到SQL Server數據庫
- 26. 自動將XML導入Wordpress
- 27. 導入任意XML到SQL Server
- 28. 將60mb XML文件導入到SQL
- 29. 如何使用C#將XML文件數據動態導入到SQL Server中
- 30. 自動導入SQL Server中的CSV文件
什麼是你的服務器類型(Apache,IIS,nginx等)以及你使用什麼服務器端語言(.Net,Php等),你使用的是哪個sql server(Mysql,Mssql等)你試過了,你得到了什麼錯誤,你期望什麼? – HddnTHA
我更喜歡100%的T-SQL解決方案。如果這是不可能的,那麼用C#進行一些處理就可以接受了...... –