2008-10-08 62 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来解决这个问题。它允许您轻松拒绝格式不正确的文件,并识别文件存在问题的行。