2010-11-10 2 views
1

Я собираюсь написать некоторое программное обеспечение на PHP для анализа файлов журнала и агрегирования данных, а затем отобразить их в виде графиков (например, гистограммы, а не вершины и ребра).Сохранение и отображение статистики

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

Вот что я должен делать:

  • Файлы журнала представляют собой файлы данных, которые хранит исходные данные с сервера статистики мы имеем установки, идущие от нашего офиса (мы посылаем асинхронные вызовы к серверу статистики вроде как Гугл Аналитика). Он хранит данные в формате csv.
  • написать скрипт для разбора файлов и агрегировать данные в базу данных (или я думал о Redis)
  • Там будут миллионы и миллионы вещей агрегировать поэтому при отображении статистики он должен быть быстрым

Я знаю о OLAP для БД, но если я хочу пойти с redis, вы думаете, что он будет масштабироваться для больших объемов данных? Как вы считаете, для синтаксического анализа файлов достаточно PHP-скрипта или я должен идти с чем-то более быстрым, например C/C++?

В основном я хотел бы получить интересные идеи о различных способах выполнения моей задачи. Он должен быть быстрым и масштабируемым.

Любые идеи?

ответ

1

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

+0

Да, это в основном то, что я хочу сделать. – gprime

+0

Но какие языки и технологии хранения вы бы предложили? Спрятать php и mysql? – gprime

+0

Я бы сказал, что PHP отлично работает на лицевой стороне, если у вас есть хороший графический пакет, с которым вам удобно. MySql должен быть хорошим для вашего уровня хранения данных. Это оставляет ваш шаг агрегации данных; это действительно зависит от того, как вам удобно запускать все это. Если вам нравится PHP для него, все должно быть хорошо, поскольку вы отключаете производительность; конечно, вам нужно охарактеризовать фактическую производительность, чтобы определить, достаточно ли она достаточно быстро, или если вам нужно другое решение. –

Смежные вопросы