Каковы хорошие стратегии для построения больших наборов данных (1M +)? - PullRequest
3 голосов
/ 20 января 2012

Я только начинаю подходить к этой проблеме, я хочу разрешить пользователям произвольно выбирать диапазоны и фильтры, которые позволяют им отображать большие наборы данных (реально это никогда не должно превышать 10 миллионов точек данных) на веб-странице. , Я использую эластичный поиск в качестве метода хранения и агрегирования данных, а также redis для отслеживания сводных данных, а d3.js - моя графическая библиотека.

Я думаю о лучшем решении - иметь предварительно рассчитанные итоги в разных группах, которые можно использовать для построения графиков. Таким образом, если точки данных существуют в течение нескольких лет, у меня могут быть группировки по месяцам и дням (что я в любом случае буду делать), но затем по группам, скажем, полдня, четверть дня, час, полчаса и т. Д. запрос данных графика Я делаю быстрый расчет, чтобы увидеть, какая из этих группировок даст мне идеальное количество точек данных (скажем, 1000).

Это разумный способ подойти к проблеме? Есть ли лучший способ?

Ответы [ 2 ]

2 голосов
/ 22 января 2012

Вам следует пересмотреть количество данных ...

  1. Даже в настольных приложениях для черчения нечасто показывать, что на графике много точек - например, источник выводит предупреждение о том, что он покажет только подмножествопо причинам производительности.Вы можете, например, отбросить каждую 3-ю точку, чтобы уменьшить их.
  2. Вы должны дать пользователю возможность увеличивать масштаб или перемещаться, чтобы исследовать данные, как стиль нумерации страниц ...
  3. Группировать или разбирать, как это называется в сообществе Lucene, конечно, возможно с таким количеством документов, но убедитесь, что у вас достаточно RAM + CPU
0 голосов
/ 12 августа 2013

Вы не можете отобразить (как правило) больше точек, чем у вас есть точки на экране. Таким образом, для построения графика 1М точек вам нужен действительно хороший монитор.

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