Оптимизация обработки больших CSV-файлов: переход на серверное решение

Существует сервис, предоставляющий данные исключительно в формате CSV с кодировкой win1251. Прямое парсинг или использование API недоступны, что оставляет единственный вариант - анализ выгруженных файлов. Однако их объем часто достигает критических значений: от 100 тысяч до 10 миллионов строк при примерно 100 столбцах в каждом.

Первоначально для анализа использовался JavaScript-скрипт, запускаемый непосредственно в браузере. Его функционал включал:

  • Подсчет сумм по различным столбцам с настраиваемыми параметрами
  • Автоматическое построение графиков
  • Интерактивный веб-интерфейс для работы с данными

С ростом объема данных (файлы более 500 МБ, содержащие свыше 500 тысяч строк) браузерное решение перестало справляться с нагрузкой, вызывая сбои и зависания.

Текущая дилемма и технический контекст

Владея технологиями HTML, CSS, JavaScript и Node.js, рассматривается вариант переноса логики обработки на серверную часть с использованием Node.js. Основные вопросы:

  • Целесообразность такого перехода
  • Потенциальная нагрузка на браузер при серверной архитектуре
  • Альтернативные пути, включая изучение Python для данной задачи

Требуемый функционал системы остаётся неизменным: загрузка файла, его обработка, расчёт показателей и визуализация результатов через веб-интерфейс.

Ограничения и потребности

Решение разрабатывается силами двух сотрудников без привлечения профессиональных IT-специалистов или дополнительного бюджета. Однако его внедрение способно принести значительный эффект:

  • Экономия минимум 2 рабочих часов в день
  • Автоматизация аналитических процессов для экономического отдела
  • Создание удобного и стабильного инструмента, лишённого недостатков Excel (медленная работа с большими файлами, ненадёжность макросов)

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