Я нахожусь на стеке LAMP для веб-сайта, которым я управляю. Необходимо сводить статистику использования (различные вещи, связанные с нашим настольным продуктом).Долгосрочная статистика - мысли о выборе языка?
Я изначально решил проблему с PHP (будучи тем, что у меня было множество классов для работы с данными уже). Все хорошо работало на моей dev-блоке, которая использовала 5.3.
Короче говоря, управление памятью 5.1, кажется, сосать намного хуже, и я должен был сделать много глупостей, чтобы использовать сценарии долгосрочного свертывания для работы в фиксированном пространстве памяти. Наши серверные ребята не хотят обновлять PHP в это время. С тех пор я перевел мой сервер-сервер обратно в 5.1, поэтому я снова не сталкиваюсь с этой проблемой.
Для разработки баз данных MySQL для свертывания статистики для разных периодов и разрешений, потенциально выполняющих процесс, который делает это все время в будущем (в отличие от графика cron), какой язык вы рекомендуете? Я смотрел на Python (я знаю это более или менее), Java (не знаю, что это хорошо), или придерживаться его с PHP (хорошо это знаю).
Edit: дизайн осветление для комментатора
разрешения: Пути сценарий Накопительного работает в настоящее время, у меня есть некоторые классы для определения разрешения и ведер. У меня есть год, месяц, неделя, день - с учетом «числа ведра» каждый класс дает начальную и конечную временную метку, которая определяет временной диапазон для этого ведра - это основано на произвольной дате эпохи. Система поддерживает «полные» записи, т. Е. Заполняет ее свернутый набор данных для каждого разрешения с момента последнего запуска.
SQL Strat: базовая статистика находится во многих несходных схемах и таблицах. Я делаю индивидуальные запросы для каждого свернутого стата по большей части, а затем заполняю одну запись для вставки. Вы предлагаете вложенные подзапросы, такие как:
ВСТАВИТЬ в rolled_up_stats (someval, someval, someval, ...) VALUES (SELECT SUM (somestat) из someschema, ВЫБРАТЬ AVG (somestat2) от someschema2)
Эти подзапросы будет генерировать временные таблицы, не так ли? Мой опыт заключается в том, что в прошлом меласса была медленной. Это лучший подход?
Edit 2: Добавление некоторых встроенных ответов на вопрос
Язык был узким местом в случае 5.1 PHP - я был по существу сказал, что я сделал выбор неверного языка (хотя скрипты работали отлично на 5.3). Вы упомянули python, который я проверяю для этой задачи. Чтобы быть ясным, то, что я делаю, представляет собой инструмент управления для статистики использования настольного продукта (журналы фактически написаны сервером EJB для таблиц mysql). Я анализирую файл журнала Apache, а также пользовательскую веб-отчетность на веб-странице, но этот проект является отдельным. Подход, который я сделал до сих пор, представляет собой совокупные таблицы. Я не уверен, что эти продукты очереди сообщений могут сделать для меня, я посмотрю.
Чтобы идти немного дальше - данные используются для отображения активности с течением времени на сервисе и уровне клиента, чтобы позволить руководству понять, как используется продукт. Вы можете выбрать период времени (с 1 апреля по 10 апреля) и получить график общих минут использования определенной функции в разных деталях (часы, дни, месяцы и т. Д.) В зависимости от выбранного периода времени. Это, по сути, анализ факта использования.Однако, как представляется, потребность в режиме реального времени идет в сторону реального времени (см. Последний час использования)
1. Почему вы хотите, чтобы он был долговременным? Почему периодическая работа через cron-job недостаточна? 2. Я предположил, что сценарии сворачивания запускают SQL как «INSERT INTO RolledUpTable SELECT SUM (что-то) из RawTable GROUPBY Element_id» или некоторые из них, но вы, похоже, подразумеваете, что свернутые скрипты считывают информацию в процессе , обрабатывать их, а затем вставлять их в БД. Это звучит как странный выбор дизайна. Просьба уточнить ваш вопрос :) – moshez
Добавленные разъяснения ... вроде как нерестится отдельный вопрос, хотя ;-) – Josh
Кроме того, это не обязательно нужно долго работать. Причина, по которой я считал, что это хороший подход, заключается в том, что после использования системы люди уже интересуются данными в реальном времени с часовым разрешением. Может быть, необоснованный запрос, но, если предположить, что это не так, работа cron, похоже, не режет горчицу. – Josh