Как обрабатывать большие объемы данных файла журнала для отображения в динамических диаграммах? - PullRequest
1 голос
/ 19 августа 2010

У меня есть много данных из файла журнала, из которых я хочу отображать динамические графики, в основном для произвольных периодов времени, которые могут быть отфильтрованы или агрегированы по разным столбцам (которые я мог предварительно создать). Мне интересно, как лучше хранить данные в базе данных и получать к ним доступ для отображения графиков, когда:

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

Существуют ли передовые практики или инструменты / плагины для рельсов, которые помогают обрабатывать такие данные и объем данных? Возможно, есть механизмы базы данных, специально предназначенные для этого или имеющие полезные функции (например, индексы CouchDB)?

РЕДАКТИРОВАТЬ: Я ищу масштабируемый способ обработки этих данных и схемы доступа. Вещи, которые мы рассмотрели: выполнить запрос для каждого сегмента, объединить приложение - возможно, слишком медленно. Временная метка GROUP BY / гранулярность - неправильно считает соединения. Предварительная обработка данных в строки с наименьшей степенью детализации и понижающей дискретизацией по запросу - возможно, лучший способ.

Ответы [ 2 ]

0 голосов
/ 28 августа 2010

В конце концов, я решил эту проблему, предварительно обработав данные в каждую минуту, так что для каждого события и минуты есть одна строка.Это позволяет легко и быстро выбирать и получать правильные результаты.Чтобы получить различную гранулярность, вы можете выполнить целочисленную арифметику для столбцов меток времени - выберите abs (timestamp / factor) * factor и сгруппируйте по abs (timestamp / factor) * factor.

0 голосов
/ 19 августа 2010

Я думаю, вы можете использовать метки времени mysql для этого.

...