Всякий раз, когда вы говорите о 2 000 000+ строках с несколькими измерениями в браузере, вам нужно задуматься о границах платформы. В частности, поскольку браузеры не используют сжатые структуры данных для объектов Javascript, основной вопрос заключается в следующем: «Будет ли объект данных вписываться в память браузера?» Chrome, по крайней мере, когда я проверил год назад, сидел около 1 ГБ памяти. С 2 миллионами строк и 20 измерений вы будете нажимать, чтобы просто загрузить данные в браузер.
Учитывая это, я думаю, вы должны думать о том, как вы ограничиваете объем данных в браузере, сохраняя при этом интерактивность. Начните задавать вопрос, например: «Сколько измерений, какие мощности я буду показывать в любой момент времени?»
Цель состоит в том, чтобы решить, может ли фактическая функциональность приложения поддерживать браузер. Если вы решите, что браузер может поддерживать функциональные возможности (возможно, это возможно, но это не задано), тогда задумайтесь о том, как скоординированная система браузера/сервера может предоставить тип интерактивности, который вы хотите.
Один из способов сделать это - динамическое повторное агрегирование в зависимости от того, какие размеры отображает пользователь в любой момент времени. Я собрал http://lcadata.info пару недель назад в качестве взломанного примера одного подхода (это с открытым исходным кодом), который использует dc.js на лицевой стороне. Но есть и другие способы, и точный подход может быть несколько уникальным для приложения.
Удачи.
Спасибо Ethan ..., я уменьшил объект JavaScript, указав короткие имена переменных, такие как c1, c2 и разделенные основные данные с транзакцией –
Приятно слышать обратную связь! Спасибо за обновление. –