Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Инкриментальный способ хранения данных - как? (Ilomikus) 25/09/2014 - 14:21:24
      Re: Инкриментальный способ хранения данных - как? (Akina) 25/09/2014 - 17:55:36
      Re: Инкриментальный способ хранения данных - как? (Ilomikus) 25/09/2014 - 21:58:27
      Re: Инкриментальный способ хранения данных - как? (Akina) 26/09/2014 - 08:45:21
      Re: Инкриментальный способ хранения данных - как? (Ilomikus) 26/09/2014 - 17:28:28
      Re: Инкриментальный способ хранения данных - как? (Akina) 26/09/2014 - 18:16:05
      Re: Инкриментальный способ хранения данных - как? (Ilomikus) 27/09/2014 - 01:04:45
      Re: Инкриментальный способ хранения данных - как? (Akina) 27/09/2014 - 21:44:08

> Original message text:
> From: Ilomikus - 25/09/2014 - 14:21:24
> Subject:Инкриментальный способ хранения данных - как?
> -----------------
> День добрый!
>
> Встала проблема хранения и использования большого количества почти одинаковых данных.
>
> Есть около 2000 датчиков например температуры, их необходимо опрашивать каждые 2 секунды, то есть прирост 60000 показаний в минуту, 86400000 в сутки, что очень и очень немало. Хранить надо за год в оперативной базе, 3 года в архивной. Тип хранимых данных - id датчика, "его" время, показание с плавающей точкой. Размер таблицы вижу просто атомный. Надо извлекать для отчёта на некоторый момент срез всех датчиков.
>
> Лазейку вижу в том, что данные слабо меняются, т.е. за две секунды с прошлого опроса может поменяться 1-2-3 датчика или вообще ни одного.
>
> Вижу решение такое, ближайший аналог - сжатие видео с ключевыми и дельта-кадрами:
>
>
> 0. две таблицы - data_touchstone и data_patch
>
> 1. в data_touchstone по крону складываются опорные данные скажем раз в 5 минут.
>
> 2. в data_patch кладём разницу между опорными данными и текущей ситуацией, т.е. применив дельту найдем значения на опорный момент + 2 секунды.
>
> 3. пока не наступил момент следующего события записи в data_touchstone, берём текущее значение датчиков, используем последнее значение data_touchstone в как точку отсчёта, последовательно накладываем все изменения ДО настоящего момента, получаем разницу с текущим значением и пишем в data_patch
>
> 4. получаем картину типа такой:
> секунда 0 - опорные данные
> секунда 2 - опорные данные + разница 1
> секунда 4 - опорные данные + разница 1 + разница 2
> секунда 5 - опорные данные + разница 1 + разница 2 + разница 3
>
> и т.д. до следующих опорных данных.
>
> Вопрос - не изобретаю ли я велосипед?
> Может есть готовое решение?
> Делал кто-либо подобное?
> Может есть стандартная фича не в mysql?
>
> Заранее спасибо!
>
>
>
>
>
>


From: Ilomikus - 26/09/2014 - 17:28:28
Subject:Инкриментальный способ хранения данных - как?
-----------------
Анекдот в тему:
Программист ложится спать . Ставит два стакана на прикроватную тумбочку.
Один с водой, другой пустой.
Жена спрашивает — зачем с водой?
- Если проснусь ночью и захочу пить.
- А зачем пустой?
- Если не проснусь или не захочу пить.

Вот у меня не так, поэтому если нет ничего - ничего и не пишу в дельту.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
43207



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |