我們正在傾銷大量的數據(按照體積而不是頻率),即從數據庫轉儲到Excel文件,即一次轉儲100K或> 400MB記錄。轉儲過程目前正在Python,R和Java中執行(使用POI庫)。作爲轉儲過程的一部分,我們從數據庫讀取數據到中間文件(管道分隔文本文件),然後由代碼拾取更新excel文件。最近,我們遇到了這樣的問題:數據庫中帶有換行符的文本導致管道限制文件無效,因爲1條記錄跨越多行而不是一行。例如,設計中間數據文件的格式?
| Col1 | Col2 | Col3 |
| Val | Val2 | Val3 |
是管道分隔文件的有效示例。如果數據包含任何新的線路,然後:
| Col1 | Col2 | Col3 |
| Val1
| Val2 | Val3
|
這樣的情況下變得難以捕捉並導致更多的編碼則需要爲了使這樣的檢查工作要做。
我想知道是否有任何庫/技術可以用來寫出這樣的臨時數據。我不確定XML是否是一個解決方案,考慮到性能可能成爲如此大量數據的問題。 JSON似乎更適合,但是我不知道我的所有選擇。
我們希望看到來自文件的_actual_(匿名)數據。但總的來說......你可能不得不爲新行字符解析你的文本文件,並用「文本」值替換它們(比如'\ n') - 爲了兼容性原因你可能想要這樣做)。在閱讀器大小上,請注意您的列分隔符,並「忽略」它們之間的任何其他行。我沒有意識到這是非正式的圖書館...... _why_你在做這件事嗎?特別是因爲Excel可以附加到一些數據庫? –
您是否考慮過使用OpenCSV等CSV庫?這通過將它們放在引號中來支持帶逗號的多行字段和字段。 (這是Excel所做的) –
另外,哪些部分分別由Java,Python和R執行?哪些語言正在生成這些數據,哪些正在解析它們,哪些正在執行? – abarnert