Я построил кроссфильтр с несколькими размерами и группами для визуального отображения данных с помощью dc.js. Представленные данные представляют собой данные о поездке на велосипеде, и каждая поездка будет загружена. Сейчас имеется более 750 000 единиц данных. Файл JSON, который я использую, составляет 70 мб, и его нужно будет только увеличивать, поскольку я получаю больше данных в ближайшие месяцы.
Итак, мой вопрос: как я могу сделать данные более тонкими, чтобы он мог масштабироваться хорошо? Прямо сейчас на загрузку моего интернет-соединения требуется примерно 15 секунд, но я беспокоюсь, что это займет слишком много времени, как только у меня будет слишком много данных. Кроме того, я попытался (безуспешно) получить индикатор выполнения /spinner для отображения во время загрузки данных, но я не увенчался успехом.
Колонки, которые мне нужны для данных, start_date, start_time, usertype, gender, tripduration, meters, age
. Я сократил эти поля в моем JSON до start_date, start_time, u, g, dur, m, age
, поэтому файл меньше. На перекрестном фильтре в верхней строке отображается линейная диаграмма, показывающая общее количество поездок в день. Ниже приведены графики строк для дня недели (рассчитанные по данным), месяц (также рассчитанный) и круговые диаграммы для типа пользователя, пола и возраста. Ниже есть две гистограммы для start_time (округленная до часа) и триптурация (округленная до минуты).
Проект находится на GitHub: https://github.com/shaunjacobsen/divvy_explorer (набор данных находится в data2.json). Я попытался создать jsfiddle, но он не работает (вероятно, из-за данных, даже для сбора всего 1000 строк и загрузки его в HTML с тегами <pre>
): http://jsfiddle.net/QLCS2/
В идеале он будет функционировать так, чтобы сначала загружать только данные для верхней диаграммы: это будет загружаться быстро, поскольку это просто количество данных в день. Однако, как только он попадает в другие диаграммы, для получения более подробных сведений требуется более подробное описание данных. Любые идеи о том, как заставить это функционировать?