场景:试图导入许多(>100)、大型(>1M记录)平面文件(csv)。
问题:许多记录缺少字段分隔符。
问:是否有解析工具可以尝试定义和验证文件,并允许您进行"在线"更正?
ETA:我正试图使用DTS导入向导将此文件导入到MS SQL Server。错误消息会给我它中断的文件的行号。修复;重复
去过那里,做到了。写我自己的工具。
值得注意的是,有多少据称输出CSV的程序实际上并没有正确地这样做。
一个商业工具会很好,但考虑到我在CSV文件中遇到的各种问题(缺少分隔符、错误的分隔符值、在字段中间嵌入CR/LF等),这是值得我自己写的。这样,当我发现一个新问题时,我只需扩展我现有的程序来处理它
考虑到我的爱好,我可能应该把我的昵称改成NIH。
我可能只是在Python(或Perl或Awk)中敲了一些东西
如果缺少分隔符,你怎么知道字段在哪里?
编辑-我可能会读入所有的行,忽略现有的分隔符,将它们拆分到已知的内容上,然后再次写出。你只需要做一次,这将比出现错误和修复特定线路更快、更容易。
如果平面文件来自同一个来源,我同意编写自己的工具是最好的选择之一——问题应该在不同文件之间保持一致。
OTOH,如果您一直需要从不同的提供商导入数据,那么使用导入工具可能会更有效率。
我做ETL工作已经快十年了,所以我不能提出任何具体的建议。
顺便说一句,有可能重新生成平面文件吗?更好的解决方案是一开始就不要破坏数据,而不是事后清理。
您可以尝试使用平面文件检查器来解决此问题。它允许您轻松拒绝格式不正确的文件,并识别文件有问题的行。
当您尝试访问数据时,会弹出这样的消息,显示记录丢失。Stellar文件修复可以让你摆脱这种腐败,在那里你会发现各种各样的软件。