Как обрабатывать большие объемы данных, используя клиент JavaScript и микросервис с библиотекой Python? - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь выяснить, как обрабатывать большие объемы данных (до 1,5 Гб float64) на микросервисе, управляемом клиентом JavaScript.

Библиотека Python (технически оболочка C)Ранее был разработан для параллельной работы наших алгоритмов обработки данных.(Примечание: разделение данных для параллельной обработки увеличивает использование памяти, поскольку каждый соседний блок нуждается в значительном перекрытии данных)

В настоящее время мой общий подход заключается в том, чтобы иметь клиент и микросервис:

  • Служба, работающая с библиотекой Python (при необходимости может запускаться локально), обрабатывает входные данные.

  • Клиентское приложение JavaScript отправляет команды / параметры обработки от пользователя и выводит графики изслужба.

Для отправки данных между ними я пробовал:

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

ТекущийПринимая во внимание:

  • Разбиение на страницы или сжатие данных, отправляемых обратно клиенту, но сжатия / разбиения на страницы может быть недостаточно для уменьшения размера.
  • Использование общей локальной памяти между клиентом JavaScript и службой дляне нужно фактически отправлять данные между ними.

Есть ли подход, который мог бы работать лучше для решения этой проблемы?

...