powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / БД для объектов с разным количеством параметров
25 сообщений из 66, страница 1 из 3
БД для объектов с разным количеством параметров
    #38543182
Vladimir A.K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Пытаюсь найти решение для следующей задачи.

Есть объекты. Нескольких типов.
Количество типов: единицы, потом, возможно, десятки.
У них измеряются (практически постоянно) некие параметры. Аналоговые и дискретные.
У каждого типа перечень и количество измеряемых параметров разные. Подмножества конечно пересекаются, но это мало что меняет.
Суммарное количество измеряемых параметров для одного типа объекта: сотни.
Частота измерений 1-2 раза в секунду.
Соответственно, количество записей большое. Я бы даже сказал, очень большое.

Предполагается два "хранилища" (пока условно назову так):
1. Для постоянно хранимых данных. Будет содержать ограниченное (небольшое) количество измеряемых параметров. Но опять-таки, для каждого типа объекта, количество и перечень - свои.
Здесь будут храниться данные из всех измерений.
Обращение к данным - периодически. Редко и с небольшим количеством выбираемых полей. Что-то типа статистики.
Возможно, со временем, данные старше некоторого срока будут бэкапиться и удаляться.
2. Временно хранимые данные. Сюда на некоторое время, необходимое для обработки должна сливаться вся измеренная информация.
После обработки данные будут удаляться.

Никак не могу придумать, каким образом грамотно организовать структуру такого вида.

Пока что пришло на ум:
1. Общая таблица записей "измерений". Будет содержать:
- тип объекта
- его номер
- дата-время записи
2. На каждый тип объекта создаются две таблицы, ссылающиеся на первую:
а). С данными постоянного хранения.
б). С данными временного хранения, в поля которой не будут включены поля из таблицы "а".

Насколько правилен и удобен такой подход?
Или есть уже готовые решения для таких задач, а я пытаюсь "изобрести велосипед"?

Заранее признателен за помощь.

P.S. На данный момент (разработка - отработка) будет использована Firebird.
В дальнейшем, скорее всего, другая СУБД.
...
Рейтинг: 0 / 0
БД для объектов с разным количеством параметров
    #38543624
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне одному кажется, что это уже 3-й топик про eav за эту неделю? у писателей универсальных систем посленовогоднее обострение? поищите по слову eav на форуме, а для трэша почитайте свежак этой недели.
...
Рейтинг: 0 / 0
БД для объектов с разным количеством параметров
    #38543666
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shtock,

Ты не одинок. Автор заморачивается структурой в то время как сначала нужно выбрать субд которая потянет подобный объем на запись. Ну и ладно ...
...
Рейтинг: 0 / 0
БД для объектов с разным количеством параметров
    #38543697
Vladimir A.K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShtockМне одному кажется, что это уже 3-й топик про eav за эту неделю? у писателей универсальных систем посленовогоднее обострение? поищите по слову eav на форуме, а для трэша почитайте свежак этой недели.
Спасибо. Буду знать по какому ключу искать.
...
Рейтинг: 0 / 0
БД для объектов с разным количеством параметров
    #38543710
Vladimir A.K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Злой Бобр,
Заморачиваюсь.
Но, во-первых, боюсь, если начну задавать его в этом разделе, буду неправильно понят :)
Во-вторых, выбор и приобретение потребуют некоторого времени. А кое-какие пробы и наработки хотелось бы начать делать сейчас.
P.S. Таки задам.
Что Вы посоветуете?
...
Рейтинг: 0 / 0
БД для объектов с разным количеством параметров
    #38543722
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vladimir A.K.Насколько правилен и удобен такой подход?
Или есть уже готовые решения для таких задач, а я пытаюсь "изобрести велосипед"?

Каждая задача в чем-то оригинальна. Ваше решение правильно. Никакого eav.
...
Рейтинг: 0 / 0
БД для объектов с разным количеством параметров
    #38543731
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir A.K.Что Вы посоветуете?
Смотрите в сторону DB2 или Oracle. Первый вариант шутрее в плане записи, второй медленнее но имеет больший функционал в плане администрирования и анализа.
...
Рейтинг: 0 / 0
БД для объектов с разным количеством параметров
    #38543763
Vladimir A.K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Злой Бобр, спасибо.
В принципе смотрю в сторону Oracle.
Первую в глаза не видел. Со второй несколько лет общался.
Но не как админ или проектировщик. Просто, в основном, пользовался: запросы, вьюверы и т.п. Иногда инициировал некоторые изменения в структуре.

Как проектировщик опыта нет. Кроме мелких десктопных решений.
Вот сейчас новый для себя термин услышал: EAV.
Я конечно уже гугль уже открыл. Но все же:
- та структура, которую описал, EAV или с точностью наоборот?
- прекрасно знаю, что лучший помощник: поиск по форуму. Но т.к. не владею терминами, просьба подсказать, по каким ключевым словам искать-то то, чего добиваюсь.
...
Рейтинг: 0 / 0
БД для объектов с разным количеством параметров
    #38543792
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir A.K.,

Приведите пример, т.к. честно говоря я немного непонял структуру. Т.е. объекты, типы, ... замените на конкретные данные. Ну например: сейсмодатчики, каждый датчик считывает 30 показаний в секунду, ... Так можно будет более четко дать направление куда копать.
...
Рейтинг: 0 / 0
БД для объектов с разным количеством параметров
    #38543828
Vladimir A.K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Злой БобрVladimir A.K.,

Приведите пример, т.к. честно говоря я немного непонял структуру. Т.е. объекты, типы, ... замените на конкретные данные. Ну например: сейсмодатчики, каждый датчик считывает 30 показаний в секунду, ... Так можно будет более четко дать направление куда копать.
Попробую.

Частота измерений к делу отношения не имеет.
Измерение производит некоторая АСУ.

Измеренные данные АСУ записывает в файлы.
Частота записей: 1-2 раза в секунду.

Потом файлы или по каналам связи или на носителях передаются на сервер, где, собственно происходит импорт в БД.

Имеется несколько типов таких АСУ.
Каждый тип АСУ стоит на N-ном количестве объектов, которым АСУ управляет.

Структура данных одного типа АСУ (для примера):
- 101 аналоговый канал (часть данных может быть представлена как целочисленные, остальные - с плавающей точкой).
- 160 дискретных входов.
- 48 дискретных выходов.
- время записи.

У остальных типов АСУ - похоже. Но количество аналоговых каналов и дискретных входов-выходов отличается.
...
Рейтинг: 0 / 0
БД для объектов с разным количеством параметров
    #38543837
rockclimber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir A.K.Во-вторых, выбор и приобретение потребуют некоторого времени. А кое-какие пробы и наработки хотелось бы начать делать сейчас.Ну так начинайте, любая платная СУБД имеет ознакомительную версию, которая лежит прямо на сайте производителя. У оракла например есть образ системы для виртуальной машины, где уже готовая ОС с установленным ораклом и кучей средств разработки.
...
Рейтинг: 0 / 0
БД для объектов с разным количеством параметров
    #38543844
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir A.K.,

Да EAV вам в помощь, судя по примеру (хотя до меня так и недошло толком).
...
Рейтинг: 0 / 0
БД для объектов с разным количеством параметров
    #38543858
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir A.K.Предполагается два "хранилища" (пока условно назову так):
Советую: выбирайте для этих хранилищ разные СУБД. И ни в коем случае не используйте
для второго Firebird.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
БД для объектов с разным количеством параметров
    #38543865
Vladimir A.K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovVladimir A.K.Предполагается два "хранилища" (пока условно назову так):
Советую: выбирайте для этих хранилищ разные СУБД. И ни в коем случае не используйте
для второго Firebird.

Почему разные?
"Хранилища" - понятие условное.
Предполагалась пара таблиц на каждый тип АСУ.
...
Рейтинг: 0 / 0
БД для объектов с разным количеством параметров
    #38543886
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir A.K.Почему разные?
Потому что требования к СУБД у них диаметрально противоположные.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
БД для объектов с разным количеством параметров
    #38543972
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Оракл вполне справится по функционалу. И поскольку данные уже в виде файла для импорта даже MS SQL потянет. Вопрос только в железе. Сервер начального уровня даже и рядом нестоял. Так что по железу это отдельная тема. Но автор уже сейчас может спокойно лепить таблицы и писать скрипты.
...
Рейтинг: 0 / 0
БД для объектов с разным количеством параметров
    #38543977
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой БобрОракл вполне справится по функционалу.
Да, но для беспроблемного удаления первички нужно секционирование, а это уже ЕЕ редакция.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
БД для объектов с разным количеством параметров
    #38544042
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ищите по форуму по слову датчики.
Краткий пересказ:
У вашей задачи есть минимум три слоя
1 Прием оперативных данных - СУБД очень не любит поток одиночных инсертов. СУБД вполне может лечь, куда тогда будут поступать данные. Вам потребуется буфер например в виде плоского файла из которого оптом данные заливаются в СУБД по таймеру.
2 Оперативная база, например за несколько дней
3 Аналитика - смотрите в сторону хранилища, DWH, OLAP и т.д.

Dimitry Sibiryakov Да, но для беспроблемного удаления первички нужно секционирование, а это уже ЕЕ редакция.Секционирование на базе вьюх вполне делается без ЕЕ.
...
Рейтинг: 0 / 0
БД для объектов с разным количеством параметров
    #38544102
Iliyam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257,

удалять тоже через view будете? а если таблица начнет разрастаться, несмотря на то, что вы регулярно удаляете устаревшие данные? хорошо, если сам себе и программист и админ, а то разное бывает...
...
Рейтинг: 0 / 0
БД для объектов с разным количеством параметров
    #38544113
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЗлой БобрОракл вполне справится по функционалу.
Да, но для беспроблемного удаления первички нужно секционирование, а это уже ЕЕ редакция.

Незная точных задач сложно что-то утверждать. Возможно что для отображения вполне хватит и вьюх. А насчет удаления - я б пока незаморачивался. На этапе импорта можно использовать временные таблицы. Ну а дальше нужно уже знать ТЗ автора. Гадать бесполезно.
...
Рейтинг: 0 / 0
БД для объектов с разным количеством параметров
    #38544125
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Iliyam удалять тоже через view будете?Конечно

create table new_table as select .....

alter view allTables
select * from one_table
union all
select * from new_table

суть в том что вся предварительная работа идет в фоне, а для клиента это мгновенно через alter view
...
Рейтинг: 0 / 0
БД для объектов с разным количеством параметров
    #38544137
Iliyam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257,

так речь была о двух БД, в одной из которых данные будут удаляться.
или вы собираетесь делать, допустим, каждый день create new_table... drop old_table... alter view... ? ну-ну
...
Рейтинг: 0 / 0
БД для объектов с разным количеством параметров
    #38544575
Vladimir A.K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное спасибо всем. Принявшим участие в обсуждении.
Я с Вашего позволения, попробую описать ситуацию подробнее.

Для начала маленькое лирическое отступление о текущем состоянии дел.

Я здесь недавно.
В настоящий момент здесь уже есть кое-какие "наработки" по обсуждаемой теме. И идея создания общей БД не нова.
Есть эксплуатируемые (по всей стране) объекты с АСУ на них. АСУ пишут информацию в файлы.
Более того. Есть некая "БД". Точнее, есть некоторая структура БД. Реализована в Firebird (отдельная песня).
Структура БД - :'(

Для информации под аналитику одна таблица, в которой:
250 полей типа float - аналоговые входы.
250 полей типа smallint - дискретные входы\выходы.
И еще несколько служебных полей: время измерения, время записи в БД, идентификаторы типа АСУ (символьный), идентификатор объекта, на котором стоит АСУ (символьный) и т.п.

Для информации, хранящейся постоянно, другая таблица:
50 полей типа float, плюс служебная информация.

Индексы в этих таблицах ... из нескольких полей. Причем часть из них: символьные и дата-время. :(
Первичные ключи: пять полей, в т.ч. символьные, дата-время ...
Внешние ключи отсутствуют как класс.

У каждого типа АСУ есть своя конфигурация, в которой описаны все входы-выходы. Причем конфигурация хранится в другом файле БД.

У одного АСУ м.б. 200 аналоговых каналов и 200 дискретных, у другого 100 и 100 соответственно, т.д.
У одного АСУ во вторую таблицу пишется 10 параметров, у второго 20.

В связи с этим таблицах с данными измерений (и в первой и второй) огромная избыточность. Большинство полей после вставки - NULL.

Все это работает ужасно медленно, информация вставляется ужасно долго. Информация за месяц на десктопе вставляется пару суток :(

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

И по факту имеется куча отдельных файлов БД, в которые заносится информация за месяц и делается кое-какая, на данный момент элементарная, обработка. Следующий месяц - следующий файл. И т.д.

ТЗ нет. Есть "намерения".
Вот я и пытаюсь преобразовать эти намерения в конкретные решения.
...
Рейтинг: 0 / 0
БД для объектов с разным количеством параметров
    #38544599
Vladimir A.K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Теперь по серверу и СУБД.
Вопрос о том, что может нужно ориентироваться на что-то серьезное встал сразу.
На него я ответил: "Ребята, Вы сами не можете мне полностью объяснить, какую задачу нужно решить. Давайте сперва более-мене разберемся в задаче и под нее подберем СУБД"
Можно сейчас что-то купить. И даже если не ошибся с выбором, то деньги лягут мертвым грузом.
Потому как надо будет определиться со структурой, сделать кое-какие наработки, подготовиться профессионально (возможно обучение пройти) etc.

Из более-мощных СУБД я имел дело с Oracle (уже говорил об этом) и, перед этим, лет шесть работал в телекоммуникационной компании с MS SQL Server 6.5, 7.0, 2000.
Других и в глаза не видел.
Ориентируюсь на Oracle. Ваши рекомендации вроде как одобряют выбор.
Но все равно, покопаю пока в этом направлении.

По железу: пока не представляю, что нужно.
Термин "сервер начального уровня" применительно к такой СУБД мне ни о чем не говорит.
Если кто подскажет, буду благодарен.


Ну и отступление про firebird. Здесь почти все пишут на Delphi. Причем 2002-м. С БД работа большинства не связана, но полагаю, что выбор firebird-а обусловлен борландовскими корнями интербейза.

Тут еще небольшая задачка есть. Базенка по ремонтам для локальной сети. Маленькая. Транзакции редкие.
Ее пока буду делать на MySQL, с web-клиентами. Но это так, для справки.
...
Рейтинг: 0 / 0
БД для объектов с разным количеством параметров
    #38544614
Vladimir A.K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257Ищите по форуму по слову датчики.

Спасибо. Поищу.
SERG1257Краткий пересказ:
У вашей задачи есть минимум три слоя
1 Прием оперативных данных - СУБД очень не любит поток одиночных инсертов. СУБД вполне может лечь, куда тогда будут поступать данные. Вам потребуется буфер например в виде плоского файла из которого оптом данные заливаются в СУБД по таймеру.

Что имеется ввиду?
Бодаясь с имеющейся firebird-овской базой, разбираясь с импортом, пробовал хоть как-то убыстрить процесс вставки данных.
Множественной вставки ФБ не знает. Из-за огромного количества полей и ограничения длины пакета в 64к, много строк через EXECUTE BLOCK не вставишь.
В одном из вариантов попробовал сперва делать вставку в таблицы внешних файлов а из них одним select-ом уже в таблицу БД.
Вы не что-то подобное подразумевали?
SERG12572 Оперативная база, например за несколько дней
3 Аналитика - смотрите в сторону хранилища, DWH, OLAP и т.д.

Вы таки считаете, что это должны быть две раздельные БД?
Ведь еще нужны таблицы с конфигурациями АСУ, и ряд других таблиц (список всех АСУ, список всех объектов, на которых эти АСУ стоят, иерархия подразделений etc.).
Получается, все это надо держать в двух базах и реплицировать изменения.
SERG1257ЕЕ
Как расшифролвывается ЕЕ?
...
Рейтинг: 0 / 0
25 сообщений из 66, страница 1 из 3
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / БД для объектов с разным количеством параметров
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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