Диаграмма высокой производительности для большого количества данных в JavaScript - PullRequest
4 голосов
/ 12 сентября 2010

Мне нужен высокопроизводительный компонент для построения графиков. Используемая базовая технология не является конкретной; может быть javascript, flash или java, чего бы это ни стоило.

Мне нужно решить следующие вопросы:

1. Мне нужно выбрать правильный тип диаграммы для таких данных:

001. testA 002,003
002. testB 003,004
003. testC 004
004. testD

В настоящее время я думаю о сетевом виде:

http://www.connectedaction.net/wp-content/uploads/2009/09/2009-September-NodeXL-CHI-2010-Tag-Network.png

http://visualgadgets.blogspot.com/2008/06/graphs-and-networks.html

2. Диаграмма должна отличаться по производительности:

На сегодняшний день у меня более 604 миллионов записей, и я ожидаю, что в ближайшие несколько дней они вырастут до миллиарда. Это много для визуализации.

3. Диаграмма должна быть доступна из JavaScript

Учитывая проблему 2 , мне нужно будет визуализировать диаграмму за один раз (во время запуска приложения), а затем постепенно обновлять ее. Под «обновлением» я подразумеваю «добавить записи»; записи (и ссылки между узлами) не будут удалены.


Не знаю, что еще я мог бы добавить, вот и все.


Редактировать: У меня есть несколько полезных советов; Я мог бы использовать предварительно обработанные данные, чтобы показать полную диаграмму, а затем отображать детали в реальном времени только тогда, когда их увеличивают соответственно.

Однако, учитывая мой вышеупомянутый формат данных, это немного сложно сделать, учитывая, что могут быть циклические ссылки. Я должен обдумать это.

Между тем мне все еще нужен совет по хорошему компоненту построения диаграмм для диаграмм сети / топологии.

Ответы [ 3 ]

3 голосов
/ 12 сентября 2010

Это исключает возможность составления диаграмм на стороне сервера, так как это потребует большого количества ресурсов на сервере, если вы поддерживаете сайт с высоким трафиком.Логично было бы позволить клиентской стороне выполнять обработку диаграмм.

Если вы не отображаете много диаграмм на одной странице, производительность не должна быть такой большой для клиентской стороны сделки.Однако, чтобы использовать данные, вам нужно будет переформатировать их для ЛЮБОГО инструментария / фреймворка для построения диаграмм.

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

Вот ссылка на 5 лучших jQuery список графиков.

Дополнительные сведения можно найти в короткой сессии Google;)

1 голос
/ 12 сентября 2010

Еще один вариант - предварительно обработанная база данных. я сделал это несколько лет назад на сервере sql, мы настроили второй сервер БД с некоторыми очень сложными пакетами DTS и сценариями sql, которые взяли огромный объем данных, с которыми мы работали, и суммировали его, чтобы сервер Crystal Reports мог справиться с обслуживанием отчетов.

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

Что касается визуализации, я слышал много хорошего о JavaFX и его возможностях построения графиков.

0 голосов
/ 14 сентября 2010

Что касается графиков, я нашел следующих кандидатов:

ProtoVis и jsViz

Оба основаны на javascript, поэтому довольно медленны при рендеринге (наверное?). Я думаю, что сначала попробую ProtoVis.

...