Инструмент для восстановления плоских файлов - PullRequest
4 голосов
/ 08 октября 2008

Сценарий: Попытка импортировать много (> 100) больших (> 1M записей) плоских файлов (csv).

Проблема: во многих записях отсутствуют разделители полей.

Спрашивать: существует ли инструмент синтаксического анализа, который попытается определить и проверить файл и позволит вам внести исправления в строку?

ETA: Я пытаюсь импортировать эти файлы в MS SQL Server с помощью мастера импорта DTS. Сообщение об ошибке дает мне номер строки файла, на котором он разбивается. Fix; повторить.

Ответы [ 5 ]

4 голосов
/ 08 октября 2008

Был там, сделал это. Написал свой собственный инструмент.

Примечательно, что многие программы, которые якобы выводят CSV, на самом деле не делают это правильно.

Коммерческий инструмент был бы неплох, но, учитывая разнообразие проблем, с которыми я сталкивался в файлах CSV (отсутствие разделителей, неправильные значения разделителя, встроенный CR / LF в середине полей и т. Д.), Его стоило написать мой собственный. Таким образом, когда я нахожу новую проблему, я просто расширяю существующую программу для ее решения.

Мне, вероятно, следует сменить псевдоним на NIH, учитывая мои склонности.

2 голосов
/ 08 октября 2008

Я бы, наверное, просто что-нибудь выбил в Python (или Perl или Awk).
Как узнать, где находятся поля, если разделители отсутствуют?

edit - я, вероятно, прочитал бы во всех строках, проигнорировал бы существующий разделитель, разделил бы их на известном контенте и выписал бы снова Вы должны сделать это только один раз, и это будет быстрее и проще, чем получить ошибку и исправить определенную строку.

1 голос
/ 21 октября 2011

Вы можете попробовать использовать Проверка плоских файлов для решения этой проблемы. Это позволяет вам легко отклонять файлы, которые имеют неправильный формат, и выявляет строки, в которых есть проблемы с файлом.

1 голос
/ 08 октября 2008

Если плоские файлы получены из одного и того же источника, я согласен, что написание собственных инструментов - один из лучших вариантов - проблемы должны быть согласованы от файла к файлу.

OTOH, если у вас есть постоянная необходимость импортировать данные от разных поставщиков, получение инструмента импорта может быть более продуктивным.

Прошло уже почти десять лет с тех пор, как я работал с ETL, поэтому я не могу дать никаких конкретных рекомендаций.

Кстати, возможно ли восстановить плоские файлы? Лучшее решение - не разбивать данные в первую очередь, а не очищать их потом.

0 голосов
/ 07 апреля 2011

Такое сообщение появляется при попытке доступа к данным и показывает, что записи отсутствуют. Звездное восстановление файлов может вывести вас из этого повреждения, где вы найдете все виды программного обеспечения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...