powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура базы
49 сообщений из 49, показаны все 2 страниц
Структура базы
    #37923301
ВячеславЛ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.

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

Вопрос: какую базу делать - с одной таблицей и писать туда все мясом или отдельно таблицы на каждый параметр, или создавать каждые сутки свою таблицу и писать туда данные?

Что лучше(быстрее) для последующей обработки данных?

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
Структура базы
    #37923310
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"каждые сутки свою таблицу" - этот вариант сразу можно перечеркнуть.
Про местоположение параметров не понял.
...
Рейтинг: 0 / 0
Структура базы
    #37923327
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Параметры одного типа (числа, строки, ...) или разных?
Какие запросы к ним потом предполагаются?
...
Рейтинг: 0 / 0
Структура базы
    #37923462
ВячеславЛ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
стоят метаконы, которые фиксируют температуру, давление и тд.

Место положение имеется ввиду что будет одно поле в которое будет заноситься физический адрес датчика(метакона).

Все параметры одного типа - real(float)

Запросы для статистики - например (парам= 1; дата с; дата по; )
...
Рейтинг: 0 / 0
Структура базы
    #37923480
ВячеславЛ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
12 000 000 записей в день
...
Рейтинг: 0 / 0
Структура базы
    #37923510
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВячеславЛ12 000 000 записей в день
В этом случае стоит сильно задуматься над тем, чтобы писать в базу данные
[/b]после[/b] обработки, а не до.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Структура базы
    #37923546
ВячеславЛ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

дело в том, что информация может понадобится после 1 или 2)( лет ее создания, а может и не понадобится

грубо говоря процесс такой:
- продукция изготовлена по определенному рецепту и режиму
- через год она была отгружена потребителю
- у потребителя проявился брак в продукции

нужно выявить причину возникновения брака(прочитать всю историю создания продукции)
...
Рейтинг: 0 / 0
Структура базы
    #37923566
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВячеславЛнужно выявить причину возникновения брака(прочитать всю историю создания продукции)

Прочитать двенадцать миллионов значений? Глазками? А не лопнут?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Структура базы
    #37923574
ВячеславЛ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ясно, спасибо за попытку помочь..
пойду искать решение в другом месте :(
...
Рейтинг: 0 / 0
Структура базы
    #37923582
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВячеславЛ
А что Вы имеете в виду, под тем, что параметры будут отличаться своим местоположением?
Ну а так, ну и что что 140 полей и каждую секунду? Главное не вешать кластерный индекс. А ключ делать по той же секунде. Ну и озаботится поведением, если произойдет не корректная вставка одного параметра. То есть, если insert сбойнул, делать update каждого параметра в новой записи. А если нужен быстрый поиск, то можно таблицу секционировать. Плюс добавить ключ на году, месяцу, дню, часу и т.п. Как вариант - параметры хранить в одной колонке, со ссылкой на тип параметра и на таблицу с временем создания параметра.
...
Рейтинг: 0 / 0
Структура базы
    #37923591
ВячеславЛ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ALOTE,
в данный момент таблица такая
key(int autoinc) paramid(int) objectid(int) date(datetime)

paramid менятется от 1 до 140
objectid от 0 до 4
...
Рейтинг: 0 / 0
Структура базы
    #37923594
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВячеславЛясно, спасибо за попытку помочь..
пойду искать решение в другом месте :(
Похоже, вместо слова "сильно" мне следовало в сообщении выделить "задуматься"... Ну да
ладно, скатертью дорожка.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Структура базы
    #37923603
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВячеславЛ,
paramid(int) objectid(int) интом не делайте. Я не соориентировался, что у Вас за СУБД, но думаю, типы данных short или подобные там есть. При таком объеме данных, нужно экономить каждый байт.

Уникальный ключ по paramid, objectid, date как я понимаю должен получиться, так что использовать key(int autoinc) смысла нет. Смертеподобно будет, если key окажется кластерным индексом.
...
Рейтинг: 0 / 0
Структура базы
    #37923613
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПыСЫ, насчет СУБД, надеюсь Вы не FoxPro или SQLite собираетесь использовать? Я боюсь они на такие объемы не потянут. Тут минимум MySQL нужен.
...
Рейтинг: 0 / 0
Структура базы
    #37923617
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Такая проблемка

Нет, Света, это она вам кажется такой. Хинт: для хранения данных не обязательно требуется СУБД.
...
Рейтинг: 0 / 0
Структура базы
    #37923625
ВячеславЛ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ALOTE,

Используем MS sQL 2005

Да и забыл еще, есть поле value(float), в которое записывается значение параметра

Основной вопрос такой:разделять данные по нескольким таблицам или писать все в одну?
За сутки в одной таблице получается около 1 000 000 записей, а )(ранить нужно данные за несколько лет.

В результате нужно будет формировать простой запрос за определенный период для одного параметра.

ЗЫ. ALOTE, Спасибо за помощь
...
Рейтинг: 0 / 0
Структура базы
    #37923630
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВячеславЛВ результате нужно будет формировать простой запрос за определенный период
для одного параметра.

Запрос - в студию!!!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Структура базы
    #37923635
ВячеславЛ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
запрос
Код: sql
1.
2.
3.
select value from table1 
where paramid=1 and and objectid=1 data>=@data_s and data<=@data_po
order by data



В результате которого строиться график и высчитываются параметры для статистики, всякие сигмы и т.д.
...
Рейтинг: 0 / 0
Структура базы
    #37923667
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВячеславЛзапрос
Запросов другого типа не будет?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Структура базы
    #37923677
ВячеславЛ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

нет
...
Рейтинг: 0 / 0
Структура базы
    #37923678
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВячеславЛнет
Тогда я бы делал по таблице на каждое сочетание paramid и objectid. То есть 140*5=700
таблиц. По-моему так серверу полегче будет на блокировках - быстродействие выше.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Структура базы
    #37923699
ВячеславЛ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

Были мысли и такие.
Только стоит ли бояться блокировок, если запросы будут выполняться
- не чаще чем 1 раз за час
- или наоборот запросы выполняются каждую секунду для отображения актуальны)( данны)(?
...
Рейтинг: 0 / 0
Структура базы
    #37923704
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВячеславЛТолько стоит ли бояться блокировок, если запросы будут выполняться
- не чаще чем 1 раз за час
Тебе не за выборку надо беспокоиться, а чтобы добавляющие информацию потоки не передрались
за какой-нибудь ресурс.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Структура базы
    #37923721
ВячеславЛ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

Ясно, писать в разные таблицы лучше с точки зрения блокировок.
...
Рейтинг: 0 / 0
Структура базы
    #37923890
pectopatop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВячеславЛDimitry Sibiryakov,

Ясно, писать в разные таблицы лучше с точки зрения блокировок.
Но хуже с точки зрения объемов данных - ключики в таблицах дублируются.

Имхо, все верно выше сказали - пишите тупо в текстовые файлики, зачем вам СУБД? Аналитику сложную делать ведь не будете?
Файлик, допустим, - каждый день новый.
Одна строка файлика - одно измерение (140 параметров).
Дневной файлик содержит 12млн строк, и имеет объем несколько десятков Мб - это не много (FAR, Total Commander спокойно ищут в нем текст за секунды).
Если вам это много - бейте на новые файлики допустим каждый час.
...
Рейтинг: 0 / 0
Структура базы
    #37923891
pectopatop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВячеславЛ12 000 000 записей в день
В мою базу захватывается каждый день ~100-150млн записей различных таблиц (наибольшая "кучка" ~27-40млн).
Данные отбираются, очищаются, агрегируются и т.д...
В конечную базу вливается ~20-25млн записей/сутки (наибольшая "кучка" ~7млн).
База живет в пром.эксплуатации 2.5 года, до этого в опытной - год
...
Рейтинг: 0 / 0
Структура базы
    #37923917
ВячеславЛ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pectopatop,

Начальство требует все в sql.
По поводу объема данных, думаю оставить всего два поля время и значение параметра, и для каждого параметра создать свою таблицу.
...
Рейтинг: 0 / 0
Структура базы
    #37923925
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВячеславЛНачальство требует все в sql.а начальство вообще знает, что такое sql?
...
Рейтинг: 0 / 0
Структура базы
    #37924116
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pectopatop
Имхо, все верно выше сказали - пишите тупо в текстовые файлики, зачем вам СУБД? Аналитику сложную делать ведь не будете?
Файлик, допустим, - каждый день новый.
Одна строка файлика - одно измерение (140 параметров).
Дневной файлик содержит 12млн строк, и имеет объем несколько десятков Мб - это не много (FAR, Total Commander спокойно ищут в нем текст за секунды).
Если вам это много - бейте на новые файлики допустим каждый час.
А может вообще лучше писцов посадить, что бы в ручную параметры переписывали? Гусиными перьями. Или на глиняных табличках. Что б уж наверняка никаких блокировок и лишних объемов данных? А СУБД это вообще от Лукавого, как и весь технический прогресс.
Dimitry SibiryakovТогда я бы делал по таблице на каждое сочетание paramid и objectid. То есть 140*5=700
таблиц. По-моему так серверу полегче будет на блокировках - быстродействие выше.
Хм. Мне какое то извращение в этой идее мерещится. Учитывая что пишется не 140 полей, а одно поле, то я не вижу причины особо беспокоиться о блокировках. 140 новых записей в секунду в одну таблицу, MS SQL вполне потянет. Уровень изоляции в транзакции только не делать высоким (смыла в данном случае в этом нет ни какого) . А то 700 таблиц, это тихий ужас при выборке данных будет, учитывая объемы. И, честно говоря, не уверен, что это увеличит быстродействие если на одной таблице использовать READ UNCOMMITED, что в данном случае, вполне допустимо.
Ну а поля paramid и objectid вполне можно заменить на одно поле типа smallint содержащие 700 вариантов значений.
...
Рейтинг: 0 / 0
Структура базы
    #37924131
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTEА то 700 таблиц, это тихий ужас при выборке данных будет, учитывая объемы.

А свалив всё в одну кучу получить низкую селективность индексов по id-полям - не будет
тихий ужас?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Структура базы
    #37924134
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,
На кой черт здесь id поля? Сделать составной ключ по дате и id параметров. При выборке сначала выбирать по дате. Плюс никто не отменял секционирование таблиц.
...
Рейтинг: 0 / 0
Структура базы
    #37924373
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTEСделать составной ключ по дате и id параметров.
И во-первых, тем самым увеличить размер индекса в три раза, а во-вторых, получить горячую
точку. Оно того стоит?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Структура базы
    #37924425
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,
Ну увеличение индекса в три раза (а на самом деле в два, потому что поля paramid и objectid можно объединить в одно ), не так уж и страшно, по сравнению с появлением 700 новых индексов. Во вторых зачем нам бояться горячей точки если будет использоваться грязное чтение? Да и Вы думаете 700 новых таблиц горячие точки не дадут?
...
Рейтинг: 0 / 0
Структура базы
    #37924457
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если будут проблемы с блокировками - писать онлайн можно в промежуточную таблицу вообще безо всяких индексов, раз в час/сутки переносить в основную одним потоком.
Но 700 таблиц я бы не делал.
...
Рейтинг: 0 / 0
Структура базы
    #37924520
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTEВы думаете 700 новых таблиц горячие точки не дадут?
Они дадут 700 точек, которые, соответственно, будут в 700 раз холоднее, чем одна.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Структура базы
    #37924546
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,
700 точек, каждая из которых в 700 раз холоднее (на практике не в 700, а в 600 где то за счет дополнительных полей) = одной точке которая в 700 раз горячее каждой. То есть вероятность то блокировки на каждой таблице в 700 раз меньше, но суммарная вероятность возникновения блокировки не меняется, это ж азы тервера.
Ну и на практике, вероятность блокировок реально возрастет.
...
Рейтинг: 0 / 0
Структура базы
    #37924698
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTEТо есть вероятность то блокировки на каждой таблице в 700 раз меньше

С чего бы вдруг? Вероятность падает до абсолютного нуля, поскольку с каждой таблицей
работает исключительно один писатель.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Структура базы
    #37924730
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,
С одной таблицей так же работает исключительно один писатель. Только в 700 раз чаще. Ну а дальше я уже объяснял.
...
Рейтинг: 0 / 0
Структура базы
    #37924738
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTEС одной таблицей так же работает исключительно один писатель. Только в 700 раз
чаще.
Ты всерьёз полагаешь, что автор данные с разных датчиков собирает где-то ещё, а в базу
пишет одним коннектом? Тогда, оно конечно, пох. Врачи бессильны.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Структура базы
    #37924770
ВячеславЛ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

Не :).
В базу пишутся данные каждую секунду, по факту измерения
...
Рейтинг: 0 / 0
Структура базы
    #37924801
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,
А! То есть ты предлагаешь на каждый датчик делать отдельный клиент, который будет открывать коннект к БД? В такой ситуации, оно конечно может и лучше 700 таблиц. Можно вообще на каждый новый коннект новую таблицу создавать. Только, я, как сторонник традиционных видов секса, искренне полагаю, что в таких ситуациях, по умолчанию используется архитектура в которой основной клиент собирает данные со всех датчиков, а потом их отправляет на сервер. Тут вполне можно обойтись одним коннектом. Либо вообще, держать его открытым нон-стоп, либо пересоздавать по завершении транзакции.
...
Рейтинг: 0 / 0
Структура базы
    #37924825
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как то я двояко выразился. Я не намекал на ориентацию оппонента, а на то, что предпочитаю интимные отношения с людьми, а не с архитектурами систем.
...
Рейтинг: 0 / 0
Структура базы
    #37924830
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTEТо есть ты предлагаешь на каждый датчик делать отдельный клиент, который будет открывать
коннект к БД?

Ну да, я предполагаю, что каждый датчик автономен и обладает собственным пунктом сбора
данных. Чтобы система не попала целиком под один медный таз.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Структура базы
    #37924896
pectopatop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обычно с датчиков (COM-порты и подобное) информацию собирает все же некоторое Прикладное ПО, а не СУБД.
Далее у этого Прикладного ПО есть разные механизмы межпроцессного взаимодействия, позволяющие собрать все в одной точке, и записать в базенку.

Если у ТС 140 датчиков пишут каждую секунду - это т.е. каждую секунду 140 писцов - хлоп! и выдают данные! через секунду - опять - хлоп! и 140 писцов выдают данные!
так?
...
Рейтинг: 0 / 0
Структура базы
    #37924935
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovНу да, я предполагаю, что каждый датчик автономен и обладает собственным пунктом сбора
данных. Чтобы система не попала целиком под один медный таз.

Да Вы с ума сошли. 140 датчиков, под каждый из которых придется еще новую прошивку писать. Да и централизованная система попадет под медный таз, только в случае аппаратного сбоя. Проблемы возможного программного сбоя решаются стандартными средствами - транзакции, try{} и т.п. А в Вашем варианте, сбой одного узла будет сразу не очевиден, значит придется писать еще и ряд обработчиков которые будут реагировать на сбой узла. Нужно будет разрабатывать логику реагирования, анализ причин сбоя на каждый отдельный случай и т.д.
В общем старый добрый принцип Оккама - чем система проще, тем она надежней (в данной интерпретации), как никогда лучше подходит к моменту.
...
Рейтинг: 0 / 0
Структура базы
    #37925000
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTEстарый добрый принцип Оккама
Именно по этому принципу программа, опрашивающая один датчик - проще и надёжнее, чем
опрашивающая 140.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Структура базы
    #37925012
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,
Ну так мы имеем 140 датчиков. Поэтому возвращаясь к тому, что я описывал прежде - 140 программ опрашивающих по одному датчику, согласно теории вероятностей на столько же ненадежны, как и одна программа опрашивающая 140 датчиков.
...
Рейтинг: 0 / 0
Структура базы
    #37925191
Фотография Finsman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot ВячеславЛ]
Вопрос: какую базу делать - с одной таблицей и писать туда все мясом или отдельно таблицы на каждый параметр, или создавать каждые сутки свою таблицу и писать туда данные?

Что лудше(быстрее) для последующей обработки данных?

[quot]
Быстрее пишется одна длинная строка , нежели много коротких- проверено екскрементально.
Можно и на по часам разбивать таблицы, потом ССИС джобом заливать в одну большую таблицу.
...
Рейтинг: 0 / 0
Структура базы
    #37925940
ВячеславЛ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за советы.

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


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