|
|
|
Отдельная БД для BLOB
|
|||
|---|---|---|---|
|
#18+
FB 2.5. Сделал загрузку сканированных документов (pdf) в БД. Как следствие, встал вопрос о размере БД (пухнуть она будет достаточно сильно). Коллега подкинул идею хранить сканы в отдельной БД. С технической точки зрения, проблемы нет - EDS и уникальный номер скана документа в той БД. Плюс очевиден - основная база остается такой же маленькой. Вопрос: кто-нибудь делал что-то подобное или есть еще варианты реализации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 08:03:02 |
|
||
|
Отдельная БД для BLOB
|
|||
|---|---|---|---|
|
#18+
CyberMax, Делали , именно такое (сканы документов), и именно так в отдельной базе. лет 7 уже живет, полет нормальный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 08:27:16 |
|
||
|
Отдельная БД для BLOB
|
|||
|---|---|---|---|
|
#18+
в догонку, уточнение, не совсем сканы, фотографии документов в djvu формате ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 08:30:48 |
|
||
|
Отдельная БД для BLOB
|
|||
|---|---|---|---|
|
#18+
CyberMax> Вопрос: кто-нибудь делал что-то подобное Делали ещё до 2.5 и EDS. Работает, в принципе. CyberMax> есть еще варианты реализации? Хранение в файлах и доступ через UDF. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 08:45:56 |
|
||
|
Отдельная БД для BLOB
|
|||
|---|---|---|---|
|
#18+
CyberMaxВопрос: кто-нибудь делал что-то подобное или есть еще варианты реализации? Я это реализовал следующим образом: есть "хранилище" - это большой файл в котором хранится файлы определенного типа (фото, сканы). В это "хранилище" файлы только добавляются, в базе хранится только смещение и размер файла. Есть модуль для nginx'а который по определенному урлу может отдать файл (у меня клиенты это браузеры) Есть отдельная служба, которая умеет принимать и отдавать файлы по их ид. Как итог: минимум накладных расходов (особенно для мелких файлов), быстрая отдача клиентам через nginx (это 98% всех запросов) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 10:02:36 |
|
||
|
Отдельная БД для BLOB
|
|||
|---|---|---|---|
|
#18+
CyberMax, а у меня все в одном файле базы. Тоже не жалуюсь. Гарантия целостности и управление документам простейшими методами DML. Конечно, файл получается здоровенным, но "структура" отдельно от файлов и не нужна. Файлы у меня небольшие - десятки мегабайт, обычно до мегабайта. Firebird 2.0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 13:55:30 |
|
||
|
Отдельная БД для BLOB
|
|||
|---|---|---|---|
|
#18+
чччД> Гарантия целостности и управление документам простейшими методами DML Это и для отдельной БД неизменно. > Конечно, файл получается здоровенным, но "структура" отдельно от файлов и не нужна. Не совсем так. Обычно "файлы нужны редко и гораздо реже остальных данных". По сути, если бы gbak/nbackup умели фильтровать таблицы (или тем более отдельные столбцы) - проблемаы не было. Сторонние патчи и известные хаки не в счёт. Так что либо отдельное хранилище (БД, файлы), либо репликатор. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 14:00:24 |
|
||
|
Отдельная БД для BLOB
|
|||
|---|---|---|---|
|
#18+
slay2012Как итог: минимум накладных расходов (особенно для мелких файлов)Для этого есть специальные файловые системы, которые в случае малого размера файла хранят его содержимое в метаданных (в записи каталога), без выделения кластеров в области данных. В вашем же случае случись чего с ФС, замучаетесь собирать свою коллекцию по диску. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 14:10:49 |
|
||
|
Отдельная БД для BLOB
|
|||
|---|---|---|---|
|
#18+
arni> В вашем же случае случись чего с ФС Да нет, дело не в ФС, для этого есть бэкапы, образы и пр. В его случае двойной оверхед - во-первых, у него своя прослойка (сервис), который нужно писать, сопровождать и пр, что усложняет весь процесс разработки, во-вторых, эта прослойка (возможно, не в его конкретном случае) - просто лишняя в цепочке клиентское ПО - сервер СУБД. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 14:43:13 |
|
||
|
Отдельная БД для BLOB
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам... Это и для отдельной БД неизменно. ... Ну да, "Если все делать правильно - проблем не будет" - (с). Гаджимурадов РустамНе совсем так. Обычно "файлы нужны редко и гораздо реже остальных данных". ... Как "обычно" - обычно не интересно, а интересено то, что требуется в каждом конкретно случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 20:30:56 |
|
||
|
Отдельная БД для BLOB
|
|||
|---|---|---|---|
|
#18+
чччД> Ну да, "Если все делать правильно - проблем не будет" - (с). А там трудно неправильно сделать. Кстати, недавно с Серым обсуждали. > Как "обычно" - обычно не интересно, а интересено то, что требуется в каждом конкретно случае. Пофлудить сходи куда-нибудь в другое место, будь любезен. Во-первых, конкретного случая нет, тем более, что Макс интересуется как раз чужим опытом и набитыми шишками, во-вторых, "обычно" - это большинство (скажем, > 90%) действий (и запросов) пользователей. Если это не система документооборота, конечно. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 20:53:16 |
|
||
|
Отдельная БД для BLOB
|
|||
|---|---|---|---|
|
#18+
Спасибо всем за ответы. Сделаю отдельную БД. Гаджимурадов РустамЕсли это не система документооборота, конечно. Рустам, а можно вот тут поподробнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2013, 07:31:18 |
|
||
|
Отдельная БД для BLOB
|
|||
|---|---|---|---|
|
#18+
Мне доводилось (и приходится и поныне) иметь дело с хранением и обработкой неструктурированной информации (фото, сканы документов и.т.д.). Реляционные базы для этого подходят ПЛОХО. 1.Если объемы неструктурированных данных относительно невелики, порядка Гб, и не планируется их существенное увеличение, то данные вполне можно запихнуть в реляционную БД, если время поджимает. Но лучше не надо. Один раз я так делал, мне не понравилось. 2.1 Можно поднять для контента отдельную базу. Минусы тут в том, что если контента - приличное количество, то отдельная (реляционная) база будет также тормозить, плюс время на обмен данными между базами...Этот способ подходит, только если обращения к контенту относительно редки, а время доступа некритично. 2.2. Можно посмотреть в сторону специализированных БД. Одно время знакомые гуру ругались очень умными словами типа Jasmine да Versant, но особой популярности оные решения, насколько я понимаю, так и не получили. 2.3. Как вариант, часто разумнее, дешевле и эффективнее организовать файловый сервер (с шустрыми дисками) для хранения контента, а в реляционной базе хранить только индекс и описание объекта. Минус - то, что ручками придется допиливать. Плюс - дешево, сердито и весьма шустро, если руки из нужного места растут. Лично я в свое время выбрал этот вариант. P.S. Если критично время доступа, обращаться с контенту (из приложения) разумнее сразу через индекс в файловом хранилище, минуя реляционную БД. В этом случае надо озаботиться работой с метаданными. То есть в файловом хранилище должны лежать не только объекты, но и их описание. Здесь ОЧЕНЬ важно грамотно организовать поиск (следующий этап) 4. Если объемы могут выйти за 10 ТБ, к материалам могут обращаться сотни или тысячи человек, если важно обеспечить действительно быстрый доступ к контенту и не хочется изобретать лисапед, разумнее всего раскошелиться на объектную базу (программно-аппаратный комплекс) типа той же Hitachi http://www.karma-group.ru/Sites/karma/Uploads/HCP_rus.10c007ea19b6a259d199140a3966e9f849.pdf Сейчас архитекторы пытаются меня агитировать за гравицапу по имени IBM ECM, но я к решениям IBM отношусь...прохладно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2013, 09:16:21 |
|
||
|
Отдельная БД для BLOB
|
|||
|---|---|---|---|
|
#18+
NePZ, //Лениво зевая Забыл CDN упомянуть для полноты крутости^w картины. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2013, 10:26:01 |
|
||
|
Отдельная БД для BLOB
|
|||
|---|---|---|---|
|
#18+
CyberMax> Рустам, а можно вот тут поподробнее? В СДО соотношение частоты обращения к обычным данным и к BLOBАм резко отличается от обычных систем. Минус - очень часто, вынос в отдельную БД может ничего не дать или сделать хуже, плюс - обращение почти всегда идёт к ограниченному количеству BLOB-ов, ибо нужны не все документы, а "текущие" и только их последние версии. Но если у тебя СДО, ты это всё итак должен знать. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2013, 12:46:23 |
|
||
|
Отдельная БД для BLOB
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам...плюс - обращение почти всегда идёт к ограниченному количеству BLOB-ов, ибо нужны не все документы, а "текущие" и только их последние версии. ... Да-да, ибо когда в базе есть блобы, то просто невозможно удержаться от того, чтобы к ним непрерывно обращаться. Только размещение в отдельной файле хоть как-то сдерживает разгул блобообмена. Гаджимурадов РустамчччД> Ну да, "Если все делать правильно - проблем не будет" - (с). А там трудно неправильно сделать. Кстати, недавно с Серым обсуждали. > Как "обычно" - обычно не интересно, а интересено то, что требуется в каждом конкретно случае. Пофлудить сходи куда-нибудь в другое место, будь любезен. ... Не имею понятия, кто такой Серый. Твои рекомендации куда более близки к флуду. И Тебе не раз об этом говорили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2013, 16:28:27 |
|
||
|
Отдельная БД для BLOB
|
|||
|---|---|---|---|
|
#18+
Ты сегодня встал не с той ноги? :) чччД> Да-да, ибо когда в базе есть блобы, то просто невозможно чччД> удержаться от того, чтобы к ним непрерывно обращаться В СДО это будет именно так, буквально дословно. > Не имею понятия, кто такой Серый. Ну, в этом разделе только один известный Серый. :) Он вроде рассказывал, что у них это используется и без особых проблем (на возможный мусор в виде неиспользуемых файлов на диске он то ли забил, то ли регулярно запускает какую-то утилиту очистики). Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2013, 17:37:05 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38383413&tid=1564360]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
201ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 486ms |

| 0 / 0 |
