Обработка больших данных из API для визуализации - PullRequest
0 голосов
/ 30 мая 2018

Допустим, у меня есть API, который дает мне значения запасов за последний месяц.Данные отбираются каждый час.

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

Моя идея заключается в том, что будет бэкэнд-приложение (т.е. в Java Spring), которое получит данные изAPI и вычислите среднее значение для каждого дня (используя поток, может быть, параллельный поток?), А затем поместите его в новую коллекцию и передайте его внешнему интерфейсу для добавления в диаграмму.

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Начните думать из пользовательского интерфейса, что вам там нужно, как часто вам это нужно и как быстро?

Затем получите данные из бэкэнда, если данных слишком много одновременно и APIиначе не может:

  • получить данные и сократить до того, что нужно пользовательскому интерфейсу (бэкэнд), использовать один раз и выбросить
  • ИЛИ получить данные и сократить до того, что нужно пользовательскому интерфейсу (backend), некоторое время храните в кэше
  • ИЛИ предварительно обрабатывайте данные, чтобы, когда пользовательский интерфейс нуждался в них, они были готовы

Для формата возврата рассмотрим что-то более легкое, как некоторый простого имя массив JSON {"dayAverages": [0.34, 1253.432, ...]}, "month" : 2, "year": 2018}, то в пользовательском интерфейсе адаптироваться к потребностям вашей библиотеки, (что спорно).

1015 * Также обратите внимание, как пользователи используют интерфейс, то вы можете получить некоторые идеи о том, какчтобы оптимизировать опыт (предварительная загрузка в следующем месяце ...)

Если вы делаете это в учебных целях, рассмотрите возможность сделать это async + lambdas = bonus:)

0 голосов
/ 30 мая 2018

Что касается вашего вопроса "... как мне сделать эту работу?"-

Это чрезвычайно широко.Есть много, много способов сделать это.Некоторые из этих способов сильно зависят от вашей архитектуры, от того, какой объем трафика ожидается для вашего приложения, какая нагрузка запроса может обрабатывать API и т. Д. Вот несколько общих моментов, на которые следует обратить внимание:

  • Любой видархитектуры MVC (или аналогичной) подойдет для вашего веб-приложения.
  • Вы упоминаете, что нуждаетесь в «серверном приложении» некоторого типа.Не уверен, что вы имеете в виду здесь, но функции усреднения можно встроить непосредственно в каркас веб-приложения, не требуя отдельного фонового приложения.
  • Если вы собираетесь вычислять средние значения для отображения в веб-приложении,вам нужно будет где-то поддерживать состояние.Предполагая, что API не дает этого вам, вам понадобится база данных некоторого типа или, по крайней мере, некоторый тип механизма кэширования памяти, чтобы облегчить это.То, как вы это сделаете, будет зависеть от вашей архитектуры и трафика / нагрузки на ваше приложение (например, будет ли у вас несколько серверов с балансировкой нагрузки).

Надеюсь, это поможет.Мы могли бы дать больше, если вы зададите конкретные вопросы.

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