|
|
|
Структура базы
|
|||
|---|---|---|---|
|
#18+
ВячеславЛ12 000 000 записей в день В мою базу захватывается каждый день ~100-150млн записей различных таблиц (наибольшая "кучка" ~27-40млн). Данные отбираются, очищаются, агрегируются и т.д... В конечную базу вливается ~20-25млн записей/сутки (наибольшая "кучка" ~7млн). База живет в пром.эксплуатации 2.5 года, до этого в опытной - год ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 07:48 |
|
||
|
Структура базы
|
|||
|---|---|---|---|
|
#18+
pectopatop, Начальство требует все в sql. По поводу объема данных, думаю оставить всего два поля время и значение параметра, и для каждого параметра создать свою таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 08:24 |
|
||
|
Структура базы
|
|||
|---|---|---|---|
|
#18+
ВячеславЛНачальство требует все в sql.а начальство вообще знает, что такое sql? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 08:45 |
|
||
|
Структура базы
|
|||
|---|---|---|---|
|
#18+
pectopatop Имхо, все верно выше сказали - пишите тупо в текстовые файлики, зачем вам СУБД? Аналитику сложную делать ведь не будете? Файлик, допустим, - каждый день новый. Одна строка файлика - одно измерение (140 параметров). Дневной файлик содержит 12млн строк, и имеет объем несколько десятков Мб - это не много (FAR, Total Commander спокойно ищут в нем текст за секунды). Если вам это много - бейте на новые файлики допустим каждый час. А может вообще лучше писцов посадить, что бы в ручную параметры переписывали? Гусиными перьями. Или на глиняных табличках. Что б уж наверняка никаких блокировок и лишних объемов данных? А СУБД это вообще от Лукавого, как и весь технический прогресс. Dimitry SibiryakovТогда я бы делал по таблице на каждое сочетание paramid и objectid. То есть 140*5=700 таблиц. По-моему так серверу полегче будет на блокировках - быстродействие выше. Хм. Мне какое то извращение в этой идее мерещится. Учитывая что пишется не 140 полей, а одно поле, то я не вижу причины особо беспокоиться о блокировках. 140 новых записей в секунду в одну таблицу, MS SQL вполне потянет. Уровень изоляции в транзакции только не делать высоким (смыла в данном случае в этом нет ни какого) . А то 700 таблиц, это тихий ужас при выборке данных будет, учитывая объемы. И, честно говоря, не уверен, что это увеличит быстродействие если на одной таблице использовать READ UNCOMMITED, что в данном случае, вполне допустимо. Ну а поля paramid и objectid вполне можно заменить на одно поле типа smallint содержащие 700 вариантов значений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 11:05 |
|
||
|
Структура базы
|
|||
|---|---|---|---|
|
#18+
ALOTEА то 700 таблиц, это тихий ужас при выборке данных будет, учитывая объемы. А свалив всё в одну кучу получить низкую селективность индексов по id-полям - не будет тихий ужас?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 11:10 |
|
||
|
Структура базы
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, На кой черт здесь id поля? Сделать составной ключ по дате и id параметров. При выборке сначала выбирать по дате. Плюс никто не отменял секционирование таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 11:15 |
|
||
|
Структура базы
|
|||
|---|---|---|---|
|
#18+
ALOTEСделать составной ключ по дате и id параметров. И во-первых, тем самым увеличить размер индекса в три раза, а во-вторых, получить горячую точку. Оно того стоит? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 13:02 |
|
||
|
Структура базы
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Ну увеличение индекса в три раза (а на самом деле в два, потому что поля paramid и objectid можно объединить в одно ), не так уж и страшно, по сравнению с появлением 700 новых индексов. Во вторых зачем нам бояться горячей точки если будет использоваться грязное чтение? Да и Вы думаете 700 новых таблиц горячие точки не дадут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 13:25 |
|
||
|
Структура базы
|
|||
|---|---|---|---|
|
#18+
Если будут проблемы с блокировками - писать онлайн можно в промежуточную таблицу вообще безо всяких индексов, раз в час/сутки переносить в основную одним потоком. Но 700 таблиц я бы не делал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 13:37 |
|
||
|
Структура базы
|
|||
|---|---|---|---|
|
#18+
ALOTEВы думаете 700 новых таблиц горячие точки не дадут? Они дадут 700 точек, которые, соответственно, будут в 700 раз холоднее, чем одна. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 14:04 |
|
||
|
Структура базы
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, 700 точек, каждая из которых в 700 раз холоднее (на практике не в 700, а в 600 где то за счет дополнительных полей) = одной точке которая в 700 раз горячее каждой. То есть вероятность то блокировки на каждой таблице в 700 раз меньше, но суммарная вероятность возникновения блокировки не меняется, это ж азы тервера. Ну и на практике, вероятность блокировок реально возрастет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 14:14 |
|
||
|
Структура базы
|
|||
|---|---|---|---|
|
#18+
ALOTEТо есть вероятность то блокировки на каждой таблице в 700 раз меньше С чего бы вдруг? Вероятность падает до абсолютного нуля, поскольку с каждой таблицей работает исключительно один писатель. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 15:04 |
|
||
|
Структура базы
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, С одной таблицей так же работает исключительно один писатель. Только в 700 раз чаще. Ну а дальше я уже объяснял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 15:13 |
|
||
|
Структура базы
|
|||
|---|---|---|---|
|
#18+
ALOTEС одной таблицей так же работает исключительно один писатель. Только в 700 раз чаще. Ты всерьёз полагаешь, что автор данные с разных датчиков собирает где-то ещё, а в базу пишет одним коннектом? Тогда, оно конечно, пох. Врачи бессильны. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 15:18 |
|
||
|
Структура базы
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Не :). В базу пишутся данные каждую секунду, по факту измерения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 15:26 |
|
||
|
Структура базы
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, А! То есть ты предлагаешь на каждый датчик делать отдельный клиент, который будет открывать коннект к БД? В такой ситуации, оно конечно может и лучше 700 таблиц. Можно вообще на каждый новый коннект новую таблицу создавать. Только, я, как сторонник традиционных видов секса, искренне полагаю, что в таких ситуациях, по умолчанию используется архитектура в которой основной клиент собирает данные со всех датчиков, а потом их отправляет на сервер. Тут вполне можно обойтись одним коннектом. Либо вообще, держать его открытым нон-стоп, либо пересоздавать по завершении транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 15:33 |
|
||
|
Структура базы
|
|||
|---|---|---|---|
|
#18+
Как то я двояко выразился. Я не намекал на ориентацию оппонента, а на то, что предпочитаю интимные отношения с людьми, а не с архитектурами систем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 15:44 |
|
||
|
Структура базы
|
|||
|---|---|---|---|
|
#18+
ALOTEТо есть ты предлагаешь на каждый датчик делать отдельный клиент, который будет открывать коннект к БД? Ну да, я предполагаю, что каждый датчик автономен и обладает собственным пунктом сбора данных. Чтобы система не попала целиком под один медный таз. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 15:45 |
|
||
|
Структура базы
|
|||
|---|---|---|---|
|
#18+
Обычно с датчиков (COM-порты и подобное) информацию собирает все же некоторое Прикладное ПО, а не СУБД. Далее у этого Прикладного ПО есть разные механизмы межпроцессного взаимодействия, позволяющие собрать все в одной точке, и записать в базенку. Если у ТС 140 датчиков пишут каждую секунду - это т.е. каждую секунду 140 писцов - хлоп! и выдают данные! через секунду - опять - хлоп! и 140 писцов выдают данные! так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 16:04 |
|
||
|
Структура базы
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovНу да, я предполагаю, что каждый датчик автономен и обладает собственным пунктом сбора данных. Чтобы система не попала целиком под один медный таз. Да Вы с ума сошли. 140 датчиков, под каждый из которых придется еще новую прошивку писать. Да и централизованная система попадет под медный таз, только в случае аппаратного сбоя. Проблемы возможного программного сбоя решаются стандартными средствами - транзакции, try{} и т.п. А в Вашем варианте, сбой одного узла будет сразу не очевиден, значит придется писать еще и ряд обработчиков которые будут реагировать на сбой узла. Нужно будет разрабатывать логику реагирования, анализ причин сбоя на каждый отдельный случай и т.д. В общем старый добрый принцип Оккама - чем система проще, тем она надежней (в данной интерпретации), как никогда лучше подходит к моменту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 16:20 |
|
||
|
Структура базы
|
|||
|---|---|---|---|
|
#18+
ALOTEстарый добрый принцип Оккама Именно по этому принципу программа, опрашивающая один датчик - проще и надёжнее, чем опрашивающая 140. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 16:43 |
|
||
|
Структура базы
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Ну так мы имеем 140 датчиков. Поэтому возвращаясь к тому, что я описывал прежде - 140 программ опрашивающих по одному датчику, согласно теории вероятностей на столько же ненадежны, как и одна программа опрашивающая 140 датчиков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 16:46 |
|
||
|
Структура базы
|
|||
|---|---|---|---|
|
#18+
[quot ВячеславЛ] Вопрос: какую базу делать - с одной таблицей и писать туда все мясом или отдельно таблицы на каждый параметр, или создавать каждые сутки свою таблицу и писать туда данные? Что лудше(быстрее) для последующей обработки данных? [quot] Быстрее пишется одна длинная строка , нежели много коротких- проверено екскрементально. Можно и на по часам разбивать таблицы, потом ССИС джобом заливать в одну большую таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2012, 18:42 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37924134&tid=1541575]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
156ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 495ms |

| 0 / 0 |
