Оптимизация обработки больших CSV-файлов: переход на серверное решение
Существует сервис, предоставляющий данные исключительно в формате CSV с кодировкой win1251. Прямое парсинг или использование API недоступны, что оставляет единственный вариант - анализ выгруженных файлов. Однако их объем часто достигает критических значений: от 100 тысяч до 10 миллионов строк при примерно 100 столбцах в каждом.
Первоначально для анализа использовался JavaScript-скрипт, запускаемый непосредственно в браузере. Его функционал включал:
- Подсчет сумм по различным столбцам с настраиваемыми параметрами
- Автоматическое построение графиков
- Интерактивный веб-интерфейс для работы с данными
С ростом объема данных (файлы более 500 МБ, содержащие свыше 500 тысяч строк) браузерное решение перестало справляться с нагрузкой, вызывая сбои и зависания.
Текущая дилемма и технический контекст
Владея технологиями HTML, CSS, JavaScript и Node.js, рассматривается вариант переноса логики обработки на серверную часть с использованием Node.js. Основные вопросы:
- Целесообразность такого перехода
- Потенциальная нагрузка на браузер при серверной архитектуре
- Альтернативные пути, включая изучение Python для данной задачи
Требуемый функционал системы остаётся неизменным: загрузка файла, его обработка, расчёт показателей и визуализация результатов через веб-интерфейс.
Ограничения и потребности
Решение разрабатывается силами двух сотрудников без привлечения профессиональных IT-специалистов или дополнительного бюджета. Однако его внедрение способно принести значительный эффект:
- Экономия минимум 2 рабочих часов в день
- Автоматизация аналитических процессов для экономического отдела
- Создание удобного и стабильного инструмента, лишённого недостатков Excel (медленная работа с большими файлами, ненадёжность макросов)
Таким образом, задача сводится к выбору наиболее эффективного и реализуемого технического решения для обработки объёмных CSV-данных с последующим представлением результатов в веб-интерфейсе.