|
1 / 1 / 0
Регистрация: 08.02.2012
Сообщений: 16
|
|
Архитектура ХД для временнЫх данных08.02.2012, 16:19. Показов 1175. Ответов 6
Метки нет (Все метки)
Господа, возникла задача организовать хранилище данных. Есть опыт работы с уже существующими БД, но вот с задачей их проектирования меня нелегкая столкнула впервые (ибо вообще я занимаюсь алгоритмами а ля Data Mining)
Выскажите, пожалуйста, свое мнение относительно оптимальной на Ваш взгляд архитектуры БД под следующую задачу: Серверу поступает информация от кучи разных сенсоров/датчиков и необходимо организовать ее хранение для последующего анализа с целью автоматического принятия каких-либо решений (приоритет №1) и отображения пользователям-операторам (приоритет №2). Важные аспекты: 1. Допустим, алгоритмы анализа данных неизвестны и им для работы может потребоваться произвольный временной срез/промежуток. Кроме того, для расчетов могут потребоваться данные с нескольких устройств, которые могут иметь разную периодичность подачи данных (см. п.5) 2. Пользователь может задать временной промежуток и ему нужно показать данные за этот период от 1 до N (N<10) устройств. Таких пользователей на сервер может приходиться до 100 чел. 3. Все пользователи хотят видеть также последнее актуальное значение по каждому и датчиков. 4. Количество датчиков и сенсоров может быть в любой момент увеличено "горячим" способом, т.е. архитектура (и сама система работы с БД есс-но) должна предусматривать данную возможность. По прикидкам в месяц может быть до 10-ти таких событий. 5. Данные могут поступать в любой момент, хотя относительно постоянная периодичность имеет место быть. У одних датчиков данные могут поступать в среднем 1 раз в минуту, у других - раз в 15 минут, у третьих - 2 раза в секунду. И все это нужно бережно хранить. 6. Самый критичный параметр для всей этой беды - быстродействие - данные нужно отдавать подсистеме анализа предельно быстро. 7. Количество датчиков/сенсоров в системе от 100 до 10 000 шт. (8) БД может стать (и скорее всего станет) со временем распределенной. (9) Сама система со временем может стать "системой реального времени" (и перекочевать на QNX или RHEL MRG, например), соотвественно, требования к быстродействию возрастут. Ну, или в самом простом виде вопрос можно сформулировать так: "Каковы способы организации БД для хранения большого количества распределенных во времени данных?" Мне лично кажется, что требования очень схожи с требованиями к БД для АСУ ТП. Кстати, может быть данная задача вообще не для реляционных БД? P.S. Буду признателен также за любые ссылки на полезные материалы. Например, описания архитектуры БД для чего-нибудь подобного, фондовый рынок, например, или сбор данных со счетчиков электроэнергии. Спасибо
0
|
|
| 08.02.2012, 16:19 | |
|
Ответы с готовыми решениями:
6
Архитектура базы данных Срез данных временных меток в Unix архитектура процессоров и компьютерная архитектура,Intel32. для первокурсников |
|
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
|
|
| 08.02.2012, 18:06 | |
|
IMHO, на коленке такое будет сложно. Если контора коммерческая - смотреть в сторону покупки iFix или ему подобного
0
|
|
|
1 / 1 / 0
Регистрация: 08.02.2012
Сообщений: 16
|
|
| 08.02.2012, 18:32 [ТС] | |
|
Проект делаем как пилотный, чтобы показать потенциальным заказчикам, которые заинтересованы в разработке подобных систем для своих целей. Соответственно, это накладывает ряд ограничений, в т.ч. финансовых. Может быть есть другое решение?
Все перечисленное в первом посте, так сказать, идеальные требования. На этапе пилотника можно некоторыми требованиями пожертвовать. Неужели не существует адекватного бесплатного (в идеале opensource) решения для хранения временнЫх данных? Не создавать же для каждого показания датчика (или каждой минуты на худой конец) строку таблицы ![]() P.S. За iFix спасибо, не знал.
0
|
|
|
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
|
||
| 08.02.2012, 18:43 | ||
|
0
|
||
|
1 / 1 / 0
Регистрация: 08.02.2012
Сообщений: 16
|
|
| 08.02.2012, 18:56 [ТС] | |
|
Тогда придется в пределах интервала (записи данных в БД) не в БД данные хранить, а программный буфер для каждого девайса создавать на этот период. Тяжеловато, конечно, получится, но что делать.
Аналитическая ценность информации со временем убывает, поэтому в принципе можно прореживание по времени организовать, тогда достаточно компактно получается с точки зрения хранения.
0
|
|
|
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
|
|
| 08.02.2012, 20:58 | |
|
В твоем случае можно использовать т.н. секционированные представления (partition views) Передовые серверы БД красиво это умеют
1
|
|
|
1 / 1 / 0
Регистрация: 08.02.2012
Сообщений: 16
|
|
| 10.02.2012, 17:44 [ТС] | |
|
Угу, я в принципе так и собирался.
Спасибо. P.S. Вроде бы реализовал все, что нужно на PostgreSQL. Не самое изящное решение, конечно, получилось, но все что надо ХД делает.
0
|
|
| 10.02.2012, 17:44 | |
|
Помогаю со студенческими работами здесь
7
Архитектура для получения данных из разных источников Хранение временных данных Загрузка данных из временных таблиц Создание временных данных в SQL с PHP или удаление данных из SQL по истечению времени
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|