2008-10-08 61 views
4

場景:試圖導入許多(> 100),大(> 1M以上)平面文件(csv)。平面文件修復工具

問題:許多記錄缺少字段分隔符。

問:是否有解析工具會嘗試定義和驗證文件,並允許您進行「內聯」修正?

ETA:我試圖使用DTS導入嚮導將此文件導入到MS SQL Server。該錯誤消息給我打斷的文件的行號。固定;重複。

回答

4

在那裏,做到了。寫了我自己的工具。

很明顯有多少程序涉嫌輸出CSV並沒有真正做到這一點。

一個商業工具會很好,但考慮到我在CSV文件中遇到的各種問題(缺少分隔符,錯誤的分隔符值,字段中間的嵌入式CR/LF等),這是值得的寫我自己的。這樣當我發現一個新問題時,我只是擴展現有的程序來處理它。

我應該改變我的暱稱NIH給我的傾向。

+0

這個問題可能是沒有一個廣泛使用的標準(我在編寫CSV時遵循http://www.rfc-editor.org/rfc/rfc4180.txt,但是當你正在讀它)。 – 2008-12-09 13:22:53

2

我可能會在Python(或Perl或Awk)中敲出一些東西。
如果分隔符丟失,您如何知道字段的位置?

編輯 - 我可能會閱讀所有的行,忽略現有的分隔符,將它們拆分到已知的內容並再次寫出它們。你只需要這樣做一次,這比得到一個錯誤並修復一個特定的行更快,更容易。

+0

可根據內容推導出這些字段。這就是爲什麼我希望有一個工具可以讓我在不能正確解析的記錄中插入字段分隔符。 – 2008-10-08 17:08:25

1

如果平面文件來自同一個源,我同意編寫自己的工具是最好的選擇之一 - 問題應該從文件到文件保持一致。

OTOH,如果您持續需要從不同供應商導入數據,那麼獲取導入工具可能會更有效率。

自從我完成ETL工作已經差不多十年了,所以我不能提出任何具體的建議。

順便說一句,有可能重新生成平面文件嗎?更好的解決方案是首先不要破壞數據,而不是事後清理數據。

-1

當您嘗試訪問數據並顯示記錄丟失時,彈出此類消息.Stellar文件修復功能可以幫助您擺脫這種腐敗現象,您可以找到所有類似的軟件。

1

您可以嘗試使用Flat File Checker來解決這個問題。它允許您輕鬆拒絕格式不正確的文件,並識別文件存在問題的行。