powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура базы
24 сообщений из 49, страница 2 из 2
Структура базы
    #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
24 сообщений из 49, страница 2 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура базы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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