powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / СУБД почти реального времени
25 сообщений из 44, страница 1 из 2
СУБД почти реального времени
    #33294162
Guest22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть достаточно типовая задача хранения телеметрических данных в СУБД. Несколько десятков датчиков (программные модули), опрашиваются ежесекундно, каждый генерит от 20 до 200 строк попарных данных типа уровень такой-то -> значение такое-то. Т.е. одна большая таблица с колонками Время, Датчик, Уровень, Значение. Простой расчет показывает, что за секунду в такую таблицу добавляется несколько тысяч записей.

Нужно подобрать виндовую СУБД, которая сможет это все принять и отдавать несложную агрегацию за текущие сутки максимум с двух-трех секундной задержкой (с момента получения данных). Пока я склоняюсь к FireBird. Есть другие предложения? Монстров вроде оракла ставить не хотелось бы, да и тормозить оно будет на такой задаче, как мне мыслится...
...
Рейтинг: 0 / 0
СУБД почти реального времени
    #33294186
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, Guest22!
Ты пишешь:

Guest22 G> Есть достаточно типовая задача хранения телеметрических данных в СУБД. Несколько десятков датчиков (программные
модули),
G> опрашиваются ежесекундно, каждый генерит от 20 до 200 строк попарных данных типа уровень такой-то -> значение такое-то. Т.е.
G> одна большая таблица с колонками Время, Датчик, Уровень, Значение. Простой расчет показывает, что за секунду в такую таблицу
G> добавляется несколько тысяч записей. Если в одной транзакции, то это одно,
а если каждая запись в отдельной транзакции, то это другое...

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
СУБД почти реального времени
    #33294188
Yo!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
раз склоняетесь к FB значит про$%^ть показания не так страшно, значит можно показания просто валить в текстовые файлы и раз в минуту их загружать в субд. в какую субд зависит что вы с этими показаниями дальше делаете.
...
Рейтинг: 0 / 0
СУБД почти реального времени
    #33294211
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас биллинг реализован на связке TMeter + ASA, где TMeter фигачит в себе логи на винт и параллейным потоком грузит их в ASA. Если даже сервак остановить или он просядет, то как только он появится, поток продолжит работу и данные все равно в СУБД окажутся. Кажется мне как раз Вам так сделать и нужно, как у TMeter реализовано - в секунду конечно у нас тысячи пакетов не набираются (в день где то по 60-100 тысяч записей по всем таблицам TMeter), но принцип такой же - нереально это дело напрямую спустить к любой РСУБД.
...
Рейтинг: 0 / 0
СУБД почти реального времени
    #33294245
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как по мне, так тут по любому через файл надо делать и потом уже в БД заливать...
...
Рейтинг: 0 / 0
СУБД почти реального времени
    #33294265
Yo!!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ASCRUS нереально это дело напрямую спустить к любой РСУБД.

да почему ?
http://tpc.org/tpcc/results/tpcc_result_detail.asp?id=105022401
1 проц - 28K транзакций в секунду, причем транзакции посложней + индексы строят. наверника какой-нибудь mysql/mSql гораздо больше чем 20K tps вытянет, главный вопрос что еще с этим будут делать. если еще и аналитику по базе в пару сотен М записей пускать, то тогда да, сурово.
...
Рейтинг: 0 / 0
СУБД почти реального времени
    #33294271
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
вместо фала более правильно будет сервис очередей использовать.
Так как тогда связку "взять данные -> вставить в базу" можно будет в рамках транзакции делать - гарантировано
А файловые операции по XA протоколу в транзакцию не включишь.
То есть распредененные системы лучше строить на асинхронном обмене сообщениями, используя сервис очередей и XA транзакции для заливки в базу. Многопоточным приложением, которое будет брать из очередей и заливать в базу, можно окучить офигительный трафик.
Ну остальное уже детали реализации.
Плюс асинхронность на распределенных системах - самый идеологически правильный вид работы, где синхронность всего лишь частный случай асинхронности.
...
Рейтинг: 0 / 0
СУБД почти реального времени
    #33294314
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторесли еще и аналитику по базе в пару сотен М записей пускать, то тогда да, сурово.
Вот и я про тоже говорю. Плюс еще мало ли что с сервером может случиться, по любому придется механизм отложенной записи в СУБД делать.

авторвместо фала более правильно будет сервис очередей использовать.
Так как тогда связку "взять данные -> вставить в базу" можно будет в рамках транзакции делать - гарантировано
А файловые операции по XA протоколу в транзакцию не включишь.
То есть распредененные системы лучше строить на асинхронном обмене сообщениями, используя сервис очередей и XA транзакции для заливки в базу. Многопоточным приложением, которое будет брать из очередей и заливать в базу, можно окучить офигительный трафик.
Ну остальное уже детали реализации.
Плюс асинхронность на распределенных системах - самый идеологически правильный вид работы, где синхронность всего лишь частный случай асинхронности.
TMeter так и работает - асинхронно, очередями пуляя в БД данные. Однако при протоколировании данных с датчиков особо транзакционность не нужна - датчик дал показания, программа записала показания, откатит то датчик все равно возможности нет. А вот сохранять куда то очереди на диск нужно - в текстовые файлы или другим форматом без разницы. Иначе вполне возможно потерять часть данных, когда СУБД не успела вставить, а программа приема показаний датчиков взяла, да навернулась. Кстати вполне возможно использовать связку MySQL 4 -> Мощная РСУБД, где в MySQL все шустро пишется по таблицам, а потом асинхронный поток все это переносит уже в мощную РСУБД для аналитики.
...
Рейтинг: 0 / 0
СУБД почти реального времени
    #33294341
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
ну про датчики и отсутсвие транзакций у них - фих с ними.
Вот далее чего с данными происходит интересно.
Если в файло - то не транзакционно, риски при эксплуатации даже на не очень больших потоках, а ужо на больших....
Куда данные девать до записи в базу? Как TMeter (никогда не ивдал его) пишет асинхронно в базу? пока не записал, где хранит? Короче, как транзакции построены, поток данных.
Ну и mysql не самый идеальный выбор как сервис очередей, как ни крути.
...
Рейтинг: 0 / 0
СУБД почти реального времени
    #33294359
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я же обьяснил - в логи он свои на винт пишет, а уж по ним параллейный процесс все это переносит в СУБД. Даже если СУБД отвалится или еще чего случится, не страшно - как коннект поток сможет восстановить, он дальше продолжить писать с того места, где остановился на момент потери коннекта с СУБД.
...
Рейтинг: 0 / 0
СУБД почти реального времени
    #33294360
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS нереально это дело напрямую спустить к любой РСУБД.
- о птичках ... Я запускаю под MS Access 10-20-30-(сколько памяти хватит) окон IE в виде ActiveX, раздаю им урлы, а по мере загрузки контента - по событиям объектов MSHTML.HTMLDocument - вызываю функцю, которая парсит HTML и складывает его в таблицы MS Access. И так по кругу ...

Это называется "напрямую спустить", или как?


_________________________________
SQL @ SemantiCat
...
Рейтинг: 0 / 0
СУБД почти реального времени
    #33294378
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
ASCRUS - так вот вот это "в логи он свои на вин пишет" и не внушает оптимизма.
Ну и способ работы с фацлом, и заливка потом в базу онлайново из файла...
Не весело как-то в плане надежности.
...
Рейтинг: 0 / 0
СУБД почти реального времени
    #33294392
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggvASCRUS - так вот вот это "в логи он свои на вин пишет" и не внушает оптимизма.
Ну и способ работы с фацлом, и заливка потом в базу онлайново из файла...
Не весело как-то в плане надежности.
Тогда я не понимаю - что - веселее в память что ли писать или сразу пакеты по сети пускать до СУБД ?
...
Рейтинг: 0 / 0
СУБД почти реального времени
    #33294803
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иван FXS- о птичках ... Я запускаю под MS Access 10-20-30-(сколько памяти хватит) окон IE в виде ActiveX, раздаю им урлы, а по мере загрузки контента - по событиям объектов MSHTML.HTMLDocument - вызываю функцю, которая парсит HTML и складывает его в таблицы MS Access. И так по кругу ...


Иван, Вы как всегда всех веселите :o) Ну какое отношение эта ваша карусель имеет к поставленной задаче ???
...
Рейтинг: 0 / 0
СУБД почти реального времени
    #33294807
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, тогоже эффекта и большей производительности можно было добиться существенно меньшей кровью, просто написав свой многопоточный HTTP клиент с доспом в нормальную РСУБД.
...
Рейтинг: 0 / 0
СУБД почти реального времени
    #33294826
glebofff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggvASCRUS - так вот вот это "в логи он свои на вин пишет" и не внушает оптимизма.
Ну и способ работы с фацлом, и заливка потом в базу онлайново из файла...
Не весело как-то в плане надежности.

Я, заради такого случая написал демон, который аггрегирует данные в памяти (хэш по ip-шникам), потом с заданным интервалом сливает в БД. И никакого файла.
...
Рейтинг: 0 / 0
СУБД почти реального времени
    #33294841
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что это НАДЕЖНЕЕ ? При исчезновении питалова скажем
...
Рейтинг: 0 / 0
СУБД почти реального времени
    #33295138
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
ASCRUS - веселее пользоваться сервисом очередей, как я уже сказал, MOM так называемый - Message Oriented Middleware, где последовательность шагов "взять данные - произвести действия в базе - общий commit" выполняется под управлением транзакций.
Ну если так не понятно, то расшифрую - если commit успешен, но данные убираются из очереди о добавляются в базе.
Если commit не успешен или любойй другой сбой - в базе rollback и данные остаются в базе.
Ну плюс возможность иметь базу удаленно, перекладывая заботу о доставке данных на сервис очередей - не надо городить никакой базы локально. Ну и многое другое, что дает сервис очередей.
Единственный минус - не встречал сервис очередей задаром.
...
Рейтинг: 0 / 0
СУБД почти реального времени
    #33295159
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
ну я и понаписал.
попробую еще раз и без ошибок
если commit успешен - данные удаляются из очереди и комитятся в базе
если commit не успешен или любой другой сбой - данные остаются в очереди и никаких изменений в базе не производится.
От начала транзакции и до ее завершения данные не доступны другим процессам/нитям, работающим с той же очередью
...
Рейтинг: 0 / 0
СУБД почти реального времени
    #33295168
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggv wrote:
> ASCRUS - так вот вот это "в логи он свои на вин пишет" и не внушает
> оптимизма.
> Ну и способ работы с фацлом, и заливка потом в базу онлайново из файла...
> Не весело как-то в плане надежности.
ну, все ведь на винт пишут, СУБД тоже...
Отключить нах кэш на запись, отключить кэш на хандл, после каждой записи
делать FlushFileBuffers... организовать регулярную смену файла... пока в
следующий пишем, предыдущий льется в базу... достаточно просто и надежно.

--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
СУБД почти реального времени
    #33295242
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
locky, вы невнимательно читаете.
Пока не сделали XA расширения к какой-нибудь файловой системе, это на уровне дилетанства, а не промышленного внедрения.
Вы не можете включить дисковые операции и базовые операции в одну транзакцию.
...
Рейтинг: 0 / 0
СУБД почти реального времени
    #33295264
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggv wrote:
> locky, вы невнимательно читаете.
> Пока не сделали XA расширения к какой-нибудь файловой системе, это на
> уровне дилетанства, а не промышленного внедрения.
> Вы не можете включить дисковые операции и базовые операции в одну
> транзакцию.
ну, мне то это и не надо... на самом деле...
я ведь могу устроить транзакцию при заливке файла лога в базу.
то бишь, как только очередной лог отваливает, я заливаю его в
промежуточную таблицу на сервере и потом фиксирую. если не получилось
залить файл или не получилось зафикировать - я попторю попытку. если
получилось - я больше не буду пытаться заливать этот файл.


--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
СУБД почти реального времени
    #33295276
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggv wrote:
> locky, вы невнимательно читаете.
хотя может я не до конца понял постановку, в части "отдавать несложную
агрегацию за текущие сутки максимум с двух-трех секундной задержкой (с
момента получения данных)". Это понимать как то, что в отчете показания
датчика должны появлятся буквально тут-же после снятия?

--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
СУБД почти реального времени
    #33295282
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggvASCRUS - веселее пользоваться сервисом очередей, как я уже сказал, MOM так называемый - Message Oriented Middleware, где последовательность шагов "взять данные - произвести действия в базе - общий commit" выполняется под управлением транзакций.
Ну если так не понятно, то расшифрую - если commit успешен, но данные убираются из очереди о добавляются в базе.
Если commit не успешен или любойй другой сбой - в базе rollback и данные остаются в базе.
Ну плюс возможность иметь базу удаленно, перекладывая заботу о доставке данных на сервис очередей - не надо городить никакой базы локально. Ну и многое другое, что дает сервис очередей.
Единственный минус - не встречал сервис очередей задаром.В данном случае это элементарно и гораздо надёжнее решается через локальные файлы.
MOM тоже может навернуться, а свои файлы ближе к телу в случае чего. Да и избыточно оно для данной задачи, imho

В случае с FB - можно складывать данные с датчиков в embedded и потом уже - в общую БД. Тут и 2PC пригодится.

Но через файловый буфер - проще и, вообще говоря, надёжнее. Когда-то сам так и делал (когда FB ещё не было ;)
...
Рейтинг: 0 / 0
СУБД почти реального времени
    #33295342
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
hvlad
MOM тоже может навернуться, а свои файлы ближе к телу в случае чего. Да и избыточно оно для данной задачи, imho

Но через файловый буфер - проще и, вообще говоря, надёжнее. Когда-то сам так и делал (когда FB ещё не было ;)
Навернуться может все, но MOM специально предназначен для таких задач.
Про избыточность - этого нельзя сказать, исходя из "постановки задачи"
И еще раз - пока нет XA примочки к фаловой системе, типа адаптора или расширения, то файловый буфер по определению не может быть надежным в последовательности "взять из файла - действия в базе - действия в файле типа удаления"
Впрочем, RDBMS как раз этим и отличаются от файловых баз. Ну и XA для этого же приворочили.
Дураки, наверное, делали.
...
Рейтинг: 0 / 0
25 сообщений из 44, страница 1 из 2
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / СУБД почти реального времени
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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