Диаграмма Миллионы строк - PullRequest
1 голос
/ 20 апреля 2011

Получил быстрый вопрос по графику.

Потребность: Мне нужно реализовать построение диаграмм для моего клиента, а набор данных клиента содержит миллионы строк. Данные собираются о цели каждые 10 секунд или около того, и это накапливает довольно много данных. Мне нужно наметить эти данные.

Я посмотрел Google Finance, чтобы увидеть, как они это сделали, чтобы наметить MSFT http://www.google.com/finance?q=msft

Похоже, что в любой момент времени они НЕ рисуют ВСЕ точки. В зависимости от выбранного временного диапазона выбранные и нанесенные на график данные могут различаться.

Я хотел бы получить некоторые сведения о том, как массировать миллионы строк данных, и подготовить его к созданию графика, подобного графику Google, и указателей о том, как реализовать построение диаграмм с помощью массированных данных.

спасибо Шон

Ответы [ 3 ]

0 голосов
/ 20 апреля 2011

В Google Finance волшебство происходит с таблицей данных из БД, они берут больше данных о разрешении на ближайшие даты и меньше данных о разрешении на старые даты, а также используют графику на временной шкале (я знаю, что есть несколько хороших открытых программ).

Например: вы получаете из БД минутное разрешение с сегодняшнего дня, часовое разрешение за последнюю неделю, дневное разрешение за последние 6 месяцев и т. Д.

0 голосов
/ 25 апреля 2011

Я надеюсь, что либо вы знаете, что вы хотите предоставить клиенту, либо они знают, чего хотят (ЧТО можно формализовать в спецификации требований) Определение того, что вы хотите дать, может очень сильно изменить то, как вы хотите это сделать.
Давайте возьмем гипотетические (но часто используемые) сценарии Допустим, вы хотите показать точку на XY (x-time y-price) 1. Допустим, пользователь выбирает гранулярность. скажи 1 секунду. дать пользователю возможность видеть почасово / ежедневно (если ежедневно, то самое большее за последние 3/5 дней) 2. Допустим, пользователь хочет видеть данные за 1 день Теперь вы знаете, что вам нужно сгенерировать запрос, который будет возвращать 10 часов * 60 минут * 60 секунд тиков

Если пользователь хочет видеть данные о днях в виде галочки, тогда вы даете ему возможность видеть неделю / месяц / годы ... Опять же, теперь вам просто нужно вернуть (1 год * 365день) отметки, если пользователь видит год

Если пользователь меняет разрешение / гранулярность, измените окно.

Еще одним сценарием может быть 10-миллисекундный тик на один день данных.

НЕ имеет смысла показывать 10-миллисекундный тик на графике недели или более.

0 голосов
/ 20 апреля 2011

Для графиков акций стандартный способ сделать это - выбрать (или рассчитать) ряд опций:

  1. Диапазон дат
  2. Интервал
  3. Тип диаграммы

Вы можете пока игнорировать тип диаграммы.Но два других важны.

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

Например, если они выбрали 1 день, вы выбираете цену открытия и закрытия каждого дня.

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