2016-05-19 8 views
0

. Чтобы разработать интерактивную панель мониторинга, такую ​​как https://dc-js.github.io/dc.js/vc/index.html с DC, является ли рендеринг на стороне клиента на всем наборе данных с помощью crossfilter лучшим вариантом для платформы аналитики?Является ли чистая сторона рендеринга огромных данных с постоянным током для интерактивной визуализации, подходит для инструментов аналитики.

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

Я знаю, что существует возможный способ рендеринга на стороне сервера (NodeJS), можно использовать библиотеку crossfilter, но в качестве бэкэнд-плана следует использовать Python.

Основная проблема. Взаимодействие должно быть плавным на стороне клиента, даже когда размер данных огромен. Теперь вопросы:

  • Это хорошая идея, чтобы извлечь все данные в стороне клиента, независимо от его размера, чтобы сделать приложение наиболее интерактивным?

  • Какое ограничение оно накладывает на стек памяти клиента?

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

ответ

1

Это хорошая идея, чтобы извлечь все данные в стороне клиента, независимо от его размера , чтобы сделать приложение наиболее интерактивным?

Нет

Сколько ограничений не накладывает на стек памяти клиента?

размером с ваши данные. Chrome максимизирует потребление около 1 ГБ памяти, но собирается застопориться задолго до того, как вы попадете туда для большинства случаев использования. Если у вас сжато более ~ 10 МБ данных, пришло время подумать о вариантах, не связанных с клиентом.

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

Вам необходимо подумать о передовых архитектурах, которые разделяют нагрузку обработки данных между клиентом и сервером, которые, как правило, не имеют простой реализации библиотеки. Я собрал http://lcadata.info (это с открытым исходным кодом) как один пример того, как это сделать. Это интерфейс Lift/Scala/Spark, но вы можете сделать что-то подобное с Python.