Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Файловая система или СУБД / 17 сообщений из 17, страница 1 из 1
23.05.2014, 07:15
    #38649732
ldar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файловая система или СУБД
Доброе время суток, имеется большой поток данных около 1000-2000 строк в 500мс вида id_tag(integer)|value(real)|DateTime(timestamp) реализовываю это на СУБД Postgresql, данные это производственные величины с различных датчиков, частота выборки из БД этих данных не велика, некоторые, даже может большинство, могут вообще не выбираться (все зависит от случая). В прошлой моей теме, предложили заменить СУБД на хранение в файловой системе разделенную по смысловым директориям. Согласен, будет прирост производительности и экономия дискового пространства. Но практики на построение этой системе, ноль.
Хотелось поинтересоваться у знатоков которые строили подобные системы. Какие имеются подводные камни? Имеется ли велосипед?
В каком типе файла лучше хранить?
Погуглив, нарыл формат сериализации данных Protocol Buffers (быстрый, компактный и десериализуется сразу в классы), что скажите по этому поводу?
...
Рейтинг: 0 / 0
23.05.2014, 08:40
    #38649753
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файловая система или СУБД
ldarПогуглив, нарыл формат сериализации данных Protocol Buffers (быстрый, компактный и десериализуется сразу в классы), что скажите по этому поводу?

Напрягает вот эта фраза (из вашей ссылки) :
Protocol Buffers не предназначен для чтения пользователем. Для десериализации данных необходим отдельный .proto-файл, в котором определяется формат сообщения.
Смотря что это всё значит... если хранить удобно, а просмотр геморройный, то зачем тогда хранить...
...
Рейтинг: 0 / 0
23.05.2014, 08:59
    #38649764
ldar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файловая система или СУБД
vmagldarПогуглив, нарыл формат сериализации данных Protocol Buffers (быстрый, компактный и десериализуется сразу в классы), что скажите по этому поводу?

Напрягает вот эта фраза (из вашей ссылки) :
Protocol Buffers не предназначен для чтения пользователем. Для десериализации данных необходим отдельный .proto-файл, в котором определяется формат сообщения.
Смотря что это всё значит... если хранить удобно, а просмотр геморройный, то зачем тогда хранить...
Да тоже заинтересовался этим и погуглил тест
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Test1
Serializer	                | size	  | serialize	 | deserialize
------------------------------------------------------------
protobuf-net		        | 3	  | 268	         |  1,881

BinaryFormatter		        | 153	  | 6,694	 | 8,420

SoapFormatter		        | 687	  |  28,609	 | 55,125

XmlSerializer		        | 153	  | 14,594	 | 19,819

DataContractSerializer   	| 205	  | 3,263	 | 10,516

DataContractJsonSerializer      | 26	  | 2,854	 | 15,621


Результаты впечатляют.
Попробовал у себе десериализовать, без проблем.
...
Рейтинг: 0 / 0
23.05.2014, 09:46
    #38649797
Злой Бобр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файловая система или СУБД
ldar,

Работайте себе с PG и непарьтесь. А производительность и диски - это вопрос денег. Если это реальная боевая задача то проблем недолжно быть вообще. Т.е. "экономить" нет смысла.
...
Рейтинг: 0 / 0
23.05.2014, 11:10
    #38649913
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файловая система или СУБД
ldarСогласен, будет прирост производительности
Прирост производительности на каких операциях?
...
Рейтинг: 0 / 0
23.05.2014, 11:22
    #38649935
ldar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файловая система или СУБД
Кот МатроскинldarСогласен, будет прирост производительности
Прирост производительности на каких операциях?
insert, select, delete
...
Рейтинг: 0 / 0
23.05.2014, 11:33
    #38649959
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файловая система или СУБД
ldar,
А как же where?
...
Рейтинг: 0 / 0
23.05.2014, 11:34
    #38649964
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файловая система или СУБД
ldarКот Матроскинпропущено...

Прирост производительности на каких операциях?
insert, select, delete

На Select и Delete по условию будет прирост производительности? Вы измеряли? Я вот сильно сомневаюсь, что запрос "отобрать/удалить данные по заданным 4-ем тегам за период с 03/03/2014 03:00:00 по 03/03/2014 06:45:00" для этого Protocol Buffers выиграет по производительности у СУБД.
...
Рейтинг: 0 / 0
23.05.2014, 11:41
    #38649980
ldar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файловая система или СУБД
Если создавать файлы по времени, к примеру по часам, то при SELECT загрузить тот файл, и по нему с условием WHERE искать.
Удалять данные мне нужно будет только по истечении определенного времени т.е. прошел 1 год и 1 час просто удалить файл за час.
...
Рейтинг: 0 / 0
23.05.2014, 11:59
    #38650027
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файловая система или СУБД
ldarЕсли создавать файлы по времени, к примеру по часам, то при SELECT загрузить тот файл, и по нему с условием WHERE искать.

По Вашим граничным условиям, "файл за час" - это 3 600 000 - 7 200 000 значений, искать по этому обьему будет тоже не очень быстро (даже если считать поиск файла собственно в файловой системе равны 0, что определенно не так).
"удаление данных через год" в СУБД, умеющей секционирование хотя бы через view, тоже не будет тормозить.

В общем, я Бы на Вашем месте построил бы тестовый стендик хотя бы гигабайт на 20, и померил бы скорость типовых операций.
...
Рейтинг: 0 / 0
23.05.2014, 12:03
    #38650039
ldar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файловая система или СУБД
Кот Матроскин,
Сейчас этим знамиаюсь. Спасибо.
...
Рейтинг: 0 / 0
23.05.2014, 12:07
    #38650047
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файловая система или СУБД
ldar,
А данные могут перекрывать весь диапазон своих типов или нет? То есть id_tag может быть любым в диапазоне от int.MinValue до int.MaxValue или только например 1,2,3,4,5?
...
Рейтинг: 0 / 0
23.05.2014, 12:11
    #38650060
ldar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файловая система или СУБД
ЕвгенийВldar,
А данные могут перекрывать весь диапазон своих типов или нет? То есть id_tag может быть любым в диапазоне от int.MinValue до int.MaxValue или только например 1,2,3,4,5?
id_tag нет, грубо говоря он будет от 1 до 1000-2000
value может быть любым.
...
Рейтинг: 0 / 0
23.05.2014, 12:29
    #38650089
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файловая система или СУБД
ldar,
А может вообще не заморачиваться с Protocol Buffers? А использовать старый добрый BinaryWriter , данные то имеют постоянную длину.
Так же из данных можно исключить tag_id, создав 2000 папок и в каждую писать данные с соответствующим tag_id.
Может и другие столбцы удастся ужать.
...
Рейтинг: 0 / 0
23.05.2014, 13:00
    #38650166
ldar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файловая система или СУБД
ЕвгенийВldar,
А может вообще не заморачиваться с Protocol Buffers? А использовать старый добрый BinaryWriter , данные то имеют постоянную длину.
Так же из данных можно исключить tag_id, создав 2000 папок и в каждую писать данные с соответствующим tag_id.
Может и другие столбцы удастся ужать.
Кстати да, хорошая идея. Так же можно и время ужать, если внутри папки с id_tag обзывать папку часами, то поле со временем использовать уже 4 байтовое заместо 8 байт
...
Рейтинг: 0 / 0
23.05.2014, 13:46
    #38650246
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файловая система или СУБД
ldar,
Посмотри еще в MSDN по ключевым словам BinaryWriter.Write7BitEncodedInt и BinaryReader.Read7BitEncodedInt и их реализацию в рефлекторе.
...
Рейтинг: 0 / 0
23.05.2014, 17:39
    #38650594
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Файловая система или СУБД
Я бы начал танцевать от печки, то бишь от требований.
Для типовой задачи Датчики (насколько ваша задача близка к типовой это вопрос к вам) у файловой системы два плюса.
1 Загрузка данных (субд очень плохо переваривает большой поток одиночных инсертов)
2 Хранение сырых данных (кроме того что они хранятся, они участвуют в резервном копировании, клонировании боевой базы на тест и т.п.) в то время как в типовой задаче, запросы к сырым данных очень редки.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Файловая система или СУБД / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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