powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование БД для статистики данных с температурных датчиков
11 сообщений из 11, страница 1 из 1
Проектирование БД для статистики данных с температурных датчиков
    #37348526
googlah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно вести статистику данных с температурных датчиков
каждые 5-30 секунд (еще точно не решили) по запросу cron будет выполняться скрипт который будет опрашивать температурные датчики и записывать данные
Сейчас остановился на том что проектирую структуру БД для хранения этого всего
в качестве БД пока выступает Мускул мб в дальнейшем перейду на Слона или MariaDB
вот первый вариант который пришел в голову по отображению он мне нравиться больше всего так как удобнее просматривать будет через админку все это дело
но еще не придумал куда записывать название датчиков и описание

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
--1 вариант
------------------------------------------------------------------------------------
CREATE TABLE `temp` (
  `datatime` datatime NOT NULL default ,
  `sensor1` decimal( 3 , 2 ) unsigned NOT NULL ,
  `sensor2` decimal( 3 , 2 ) unsigned NOT NULL ,
  `sensor3` decimal( 3 , 2 ) unsigned NOT NULL ,
  PRIMARY KEY  (`datatime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
-------------------------------------------------------------------------------------

вот второй более удобный

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
--2 вариант
-------------------------------------------------------------------------------------
CREATE TABLE `temp` (
  `datatime` datatime NOT NULL default ,
  `sensor_id` int( 3 ) unsigned NOT NULL ,
  `temp` decimal( 3 , 2 ) unsigned NOT NULL ,
  PRIMARY KEY  (`datatime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

CREATE TABLE `sensors` (
  `sensor_id` int( 3 ) unsigned NOT NULL ,
  `sensor_name` varchar( 32 ) unsigned NOT NULL,
  `sensor_description` text NOT NULL,
  PRIMARY KEY  (`sensor_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
-------------------------------------------------------------------------------------


вот как то так

подскажите как будет удобнее сделать так как я пока еще не придумал идеальный вариант
...
Рейтинг: 0 / 0
Проектирование БД для статистики данных с температурных датчиков
    #37348759
sptz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
googlah,

второй вариант
...
Рейтинг: 0 / 0
Проектирование БД для статистики данных с температурных датчиков
    #37348761
sptz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
googlah,

только примари кей в первой таблице надо (datatime, sensor_id)
...
Рейтинг: 0 / 0
Проектирование БД для статистики данных с температурных датчиков
    #37349731
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну для примари-кей я бы сделал просто id, а на datatime, sensor_id сделал бы Unique index
...
Рейтинг: 0 / 0
Проектирование БД для статистики данных с температурных датчиков
    #37349732
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
другое дело что если данные будут меняться быстрее, а не так редко как у Вас, то я бы вообще на этой табе на unique index забил. Делал бы простой индекс.
...
Рейтинг: 0 / 0
Проектирование БД для статистики данных с температурных датчиков
    #37349915
sptz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shtock,

я имел ввиду первую таблицу из второго варианта.

Если использовать просто ID, будет нарушение, когда будет несколько записей с одинаковым ID, но разным временем.

Распространенная практика - это ID + timestamp.
...
Рейтинг: 0 / 0
Проектирование БД для статистики данных с температурных датчиков
    #37350832
googlah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот еще вопрос
подскажите как справиться с объемом БД?
ведь если опрашивать датчики каждую минуту у меня за год будет БД величиной в 525600 строк и то это если 1 датчик
а их предположительно будет около 20
и того 10512000 за год с 20 датчиков
что лучше брать для таких задач?
MariaBD или Слона?
...
Рейтинг: 0 / 0
Проектирование БД для статистики данных с температурных датчиков
    #37351758
sptz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
googlah,

слон надежнее ИМХО.


У нас же используется Oracle, записей по датчикам около 200 млн, используем секционирование по годам.
...
Рейтинг: 0 / 0
Проектирование БД для статистики данных с температурных датчиков
    #37351765
sptz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
googlah,

И потом, в базу надо записывать только если произошли изменения, а если предыдущее значение такое же, то не писать его. Потом при обработке данных используется ступенчатая аппроксимация.
...
Рейтинг: 0 / 0
Проектирование БД для статистики данных с температурных датчиков
    #37351833
AlexKB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sptzgooglah,

И потом, в базу надо записывать только если произошли изменения, а если предыдущее значение такое же, то не писать его. Потом при обработке данных используется ступенчатая аппроксимация.
Причем изменением следует считать превышение апертуры.

Я для таких задач использую Cache. Там можно и драйвера написать, и математическую обработку выполнить, и в БД записать, и на экране отобразить, и отчет распечатать - все в единой технологии.
А датчиков, првильнее сказать информационных каналов, бывает от сотен до тысяч.
...
Рейтинг: 0 / 0
Проектирование БД для статистики данных с температурных датчиков
    #37351903
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Была даже похожая тема: Есть 1000 событий и на каждое - своя реакция . Как оптимизировать в Cache.

Поскольку Caché кроме реляционного подхода поддерживает и объектный, можно использовать коллекцию типа массив, то есть в одном поле хранить показания сразу множества датчиков.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование БД для статистики данных с температурных датчиков
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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