我必須創建一個具有超過60個milllion記錄的大型XML文件。 我需要一個快速的方法來做這個操作,因爲它會定期重複。爲數百萬條記錄創建XML
我在兩個地方
- 在數據庫中兩個不同的表有數據。
- 文件系統在兩個管道分隔的文件中。
目前,我正嘗試使用StaX解析器在JAVA中創建XML文件。
這裏我需要知道我是否應該使用數據庫/文本文件來讀取數據並創建XML文件。
哪一個會更快?
另外,是否有任何特定的API以優化的方式將處理這種大型數據創建/轉換爲XML?
我打開文件處理使用Linux命令以及提供它是一個更快的選項。
更新評論
你能多快可以從兩個單獨的文件的XML元素信息VS DB查詢CSV傾倒? PIPE分隔文件中提供了數據庫中可用的任何內容。 以及FAST如何獲取/創建XML元素信息正是此處問題的意圖。這正是影響整體運營速度的因素。
映射併發症:映射從1到很多。第一個文件中的1個記錄映射到第二個文本文件/表中的大約8000個記錄。
UPDATE on Comment - >使用大輸出緩衝區。
瞭解。將以更大的塊讀取數據庫/文件中的數據,並在處理完整塊後將其刷新。但我應該再次通過數據庫讀取或文件讀取嗎?
更新 我可以使用MySQL數據庫中的任何工具導出它,自動轉換爲XML格式嗎?
數據庫是有意義的查詢和報告。我會將查詢輸出轉儲爲CSV並生成XML輸出。因此,在XML生成的時候,數據庫是獨立的;這可能需要很長時間。在保存到輸出XML文件之前,請使用較大的輸出緩衝區。 – SparKot 2013-03-15 10:39:40
啊,用'pipe separated fields'選項你需要進行基準測試。使用大輸入緩衝區進行文件讀取。您可以從兩個單獨的文件與數據庫查詢CSV轉儲獲取XML元素信息的速度有多快?這兩個文件之間的映射有多複雜?它是'1-1'嗎?是在這些文件中排序的記錄,比如說「主鍵」? – SparKot 2013-03-15 10:50:39
@SparKot - >「保存到輸出XML文件之前使用大輸出緩衝區」是什麼意思。 ? – 2013-03-15 13:17:55