|
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,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
43207
|
|