powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Перенос данных из таблицы в таблицу с математикой
4 сообщений из 4, страница 1 из 1
Перенос данных из таблицы в таблицу с математикой
    #39529407
Gexan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем добрый день
Появилась такая задачка, реализовано сейчас на PHP, но очень хочется перенести этот процесс на MySQL

Суть
Есть две таблицы
первая cpu_live
вторая cpu

В таблицу cpu_live с периодичностью в секунду пишется порядка 100-200 записей, из которых мы на сайте строим живой график
поля таблицы:
id, machine_id, cpu, cpu1, cpu2, cpu3, cpu4, cpu5, cpu6, cpu7, cpu8, cpu9, cpu10, cpu11, cpu12, cpu13, cpu14, cpu15, cpu16, data_add

во второй таблице все идентично


Хотелось бы получить следующее

Выбрать допустим 10 самых старых записей по machine_id, получить средние значения всех столбцов и сохранить полученное одной строкой в cpu.
После этого удалить эти 10 самых старых записей
Затем еще раз то же самое, и так до того момента пока в cpu_live не останутся данные за последние 30 минут

Вроде бы все просто, но если честно уже всю голову поломал :)

На всякий случай объясню проблему целиком может кто-нибудь подскажет более изящное решение

В таблицу пишутся показания процессоров с периодичностью в секунду, повторюсь из них строится живой график за последние 20сек-10 минут.
Само собой график рисуется запросом в бд
Столкнулись с тем что когда мы пытаемся сделать выборку за час, мы имеем определенные сложности, поскольку детализация графика получается с точностью до секунды, ладно, час еще терпимо, а вот показания за день заставляют сервер задуматься...

Пока вижу только два решения либо делать выборку с прореживанием, но через 30 минут после поступления данных к нам их хранить в этом виде нет уже совсем никакого смысла, либо где то хранить данные уже в прореженном виде, а это собственно сабж)

Заранее спасибо
...
Рейтинг: 0 / 0
Перенос данных из таблицы в таблицу с математикой
    #39529418
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обычное дело - расчёт укрупнённой статистики и очистка детальной.

Расчёт укрупнёнки я бы предложил возложить на шедулер (CREATE EVENT) - потребуется несколько усредняющих заданий, скажем, минутное, десятиминутное, часовое, суточное... А очистку устаревших данных заменить на партиционирование по дате-времени, с заблаговременной подготовкой партиций на будущие периоды и отключением потерявших актуальность старых партиций, которые можно как удалять, так и архивировать.

Ещё я бы предложил крепко подумать, надо ли вот строго "10 старых". Если, скажем, в таблицу падает по одной записи с машины в секунду - не проще ли усреднять за 10 секунд, например? во-первых, не надо отсчитывать штуки, которых явно в таблице нет, во-вторых, проще строить графики, когда все значения аргумента выровнены.
...
Рейтинг: 0 / 0
Перенос данных из таблицы в таблицу с математикой
    #39529429
Gexan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Уточню, 10 самых старых показаний с машины.
С каждой машины раз в секунду падают показания с процессоров и как вы написали выше нам не нужны эти данные по истечении 30 минут, достаточно хранить средние данные за 10 секунд.
Таким образом график рисоваться будет намного быстрее и удобнее.

Да, наверное это поможет, сейчас попробую сделать шедулер
...
Рейтинг: 0 / 0
Перенос данных из таблицы в таблицу с математикой
    #39529433
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gexan10 самых старых показаний с машины.
Gexanдостаточно хранить средние данные за 10 секунд.
Вы уж определитесь. Это разные вещи. Не факт, что в таблицу лягут все 10 точек за 10 секунд - а ну как одна пропущена...
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Перенос данных из таблицы в таблицу с математикой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]