Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.05.2007, 10:24
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 1  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
По умолчанию Сбор статистики во времени

Здравствуйте.
Имеется таблица БД MySql. Данные в ней добавляются, обновляются, удаляются произвольно в течение рабочего дня, хотя наиболее задействован на некотором периоде времени (месяц) определенный диапазон записей (строк), добавленные за этот переиод, т.е. "свежие". Впрочем, это, наверно, не суть.
Вопрос: как выявить динамику изменения значений, хранящихся в этой таблице, во времени.
Как подойти к решению этого вопроса?
Единственное, что мне пока удалось придумать - делать с заданным периодом снапшоты с этой таблицы. Но это довольно накладно, поскольку проект, где эта таблица используется, не одногодичный, и к тому же часть данных при этом теряется.
Цель - прогнозировать на основе статистической обработки данных в этой таблице за разные периоды времени дальнейший ход процесса и т.п.
Склоняюсь к мысли, что прежде требуется проработать детально правила сбора информации и под них что-то придумывать. Но ... это не совсем то, что надо. Или даже совсем не то. Правила могут измениться.
Если есть хорошие ссылки на теорию - буду признателен.
Задача, возможно, схожа, например, с отображением статистики посещаемости страниц сайта. Как это реализуется?


Последний раз редактировалось alexcon314; 30.05.2007 в 10:44.
Старый 30.05.2007, 12:36
Skubent вне форума Посмотреть профиль Отправить личное сообщение для Skubent Посетить домашнюю страницу Skubent Найти все сообщения от Skubent
  № 2  
Ответить с цитированием
Skubent
 
Аватар для Skubent

Регистрация: Oct 2005
Адрес: Млечный Путь, 7-й рукав, YD AC-451, 3-я планета.
Сообщений: 996
Отправить сообщение для Skubent с помощью ICQ
Ммм... Не совсем понял, надо количество записей в таблице в контрольных точках времени снимать или по записям в таблице одно(два-три...) значение отслеживать ?
__________________
Тут вы найдете ответы на почти все вопросы:
А можно ли сделать так ? - Можно.
Почему не работает ? - Неправильно сделано.
Где ошибка ? - В ДНК.

Старый 30.05.2007, 14:46
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 3  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Skubent, спасибо за отклик. Постараюсь уточнить.
Есть приложение, работающее с таблицей в базе, из него пользователь вносит изменения.
Мне необходимо вести "лог" всех изменений в таблице с привязкой ко времени в течение длительного периода. Записывать все в файл(ы) в виде форматированного текста можно, но придется писать свое приложение-анализатор, чтобы приводить записи к удобной для обработки форме.
С другой стороны, анализатор будет делать операции, типичные для сервера БД: сортировка, выборка по условию и т.п., работая с массивом данных в логе. Вот я и подумал: нельзя ли это все организовать средствами самого сервера MySql?
В простейшем примере: нужно знать, каково было значение конкретного поля когда угодно с момента его появления в таблице.

Старый 30.05.2007, 18:55
Skubent вне форума Посмотреть профиль Отправить личное сообщение для Skubent Посетить домашнюю страницу Skubent Найти все сообщения от Skubent
  № 4  
Ответить с цитированием
Skubent
 
Аватар для Skubent

Регистрация: Oct 2005
Адрес: Млечный Путь, 7-й рукав, YD AC-451, 3-я планета.
Сообщений: 996
Отправить сообщение для Skubent с помощью ICQ
Ведется лог изменений, то есть либо поднимать транзакции, если версия мускула доросла до них, либо пытаться эмулировать транзакции добавлением статусного поля

INSERT INTO `log` SET `data_id` = ${что_мы_там_меняем},`old_data` = $old_data, `new_data` = $new_data, `update_time` = mktime(), `status` = 0;
Потом делать апдейт рабочей таблицы от пользователя, потом апдейтить запись в логе на status = 1.

Выборка из таблицы лога делается по ключевому полю data_id. Время в таблице есть, откуда куда параметр поменяли есть, количество изменений тоже легко вытащить.
Для более полного анализа - расширять таблицу лога, мало ли что еще захочет заказчик узнать.
__________________
Тут вы найдете ответы на почти все вопросы:
А можно ли сделать так ? - Можно.
Почему не работает ? - Неправильно сделано.
Где ошибка ? - В ДНК.

Старый 30.05.2007, 23:17
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 5  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Спасибо, Skubent. Механизм ясен. За работу.
Только еще один вопрос: как в этой эмуляции транзакции можно реализовать откат при ошибке?

Старый 31.05.2007, 13:29
Skubent вне форума Посмотреть профиль Отправить личное сообщение для Skubent Посетить домашнюю страницу Skubent Найти все сообщения от Skubent
  № 6  
Ответить с цитированием
Skubent
 
Аватар для Skubent

Регистрация: Oct 2005
Адрес: Млечный Путь, 7-й рукав, YD AC-451, 3-я планета.
Сообщений: 996
Отправить сообщение для Skubent с помощью ICQ
Это смотря какая ошибка. Если в апдейте рабочей таблицы - то не менять статусное поле лога, ну и игнорировать соответственно все записи с нулевым статусным полем. Ну и раздробить все операции с рабочей таблицей до атомарных, для связанных цепочек придумать несколько вариантов статуса или добавлять промежуточный лог.

ЗЫ. глянул на историю версий мускула. Транзакции там есть уже лет пять, это чтоб огород не городить.
__________________
Тут вы найдете ответы на почти все вопросы:
А можно ли сделать так ? - Можно.
Почему не работает ? - Неправильно сделано.
Где ошибка ? - В ДНК.

Старый 31.05.2007, 14:16
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 7  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Еще раз спасибо. С уважением.

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:49.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:49.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.