Подключение к огромной базе данных CSV.

30.04.2017

Не так давно в FastReport .NET была добавлена возможность загружать данные из csv-файла. Иными словами, файл в формате CSV теперь можно использовать в качестве источника данных.

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

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

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

Казалось бы, проблема решена и можно успокоиться, но не давала покоя идея о большом csv-файле. После недолгих поисков был найден действительно огромный файл. Размер этого файла 441 мегабайт, казалось бы - не очень внушительно, но, тем не менее, это 31 столбец и 2 458 525 строк.

Тестирование загрузки этого файла принесло двоякие результаты. С одной стороны, файл открывался, что несомненно радовало. Но очень печалило то, что на загрузку файла уходило без малого полчаса.

Как известно путей решения этой проблемы два. Но покупать новый компьютер как-то не хотелось. Поэтому пришлось потратить некоторое время на оптимизацию кода. В результате удалось добиться загрузки файла в течение двух минут.

1 ноября 2024

Новые возможности редактора отчетов FastReport VCL

Рассматриваем новые возможности редактора отчетов: выносные линии, подсветка пересекающихся объектов, обновлённые деревья отчетов и данных.
30 октября 2024

Использование стилей при создании отчетов в FastReport VCL

В статье подробно рассматривается одна из новых возможностей FastReport VCL – применение стилей и страниц стилей.
28 октября 2024

Как настроить WSL 2 для работы с FastReport и FastCube

В этой статье попробуем вместе разобраться, как настроить WSL 2 для работы с компонентами FastReport и FastCube в Lazarus для Linux.