Хранение файлов в NoSQL СУБД CouchDB

0. hrip 214 08.06.12 23:34 Сейчас в теме
В данной публикации приводится пример использования документо-ориентированной NoSQL СУБД CouchDB для хранения файлов и доступа к ним из базы 1С:Предприятия 8.2

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
86. hrip 214 09.08.12 10:34 Сейчас в теме
(85) AlexO, А в чём неудобность то? Ну разве только как вы писали, что хочется версионирования из 1С. Это да можно будет попробовать сделать.
96. hrip 214 14.08.12 09:09 Сейчас в теме
"...а мы упрямы..."
несогласие с вашим мнением это есть упрямство?

Попробую подробно ответить на ваши вопросы.
Текущий размер используемой базы 8Гб, документов в СУБД 1700, Средний размер хранимого файла 1-10Мб. Сколько всего файлов в базе я не считал.
О том что проект невысоконагруженный я уже писал, т.е. частота обращений очень низкая и такими параметрами как частота обращений можно пренебречь (обычная база 1с - 100 пользователей, работа с файлами - это не основная работа).
Чем отличаются сканы от конструкторской и технологической документации? Ничем кроме расширений файлов! т.е. в УПП к элементам справочников "Номенклатура", "Спецификации номенклатуры", "Технологические карты производства" прикреплены описание тех. процессов , инструкции, паспорта, чертежи и т.д.

"скоро NoSQL захватит мир))"
это вообще чье то личное мнение в комментариях, которое никак не отражено ни в моей статье, ни в статье на которую я ссылаюсь.

В CouchDB действительно обновляется весь документ и это сказывается на размере базы и времени его обновления. Но в данном случае речь не идет о высокопроизводительном web сервере где совершаются тысячи или десятки тысяч транзакций в секунду.

Почему не хранить файлы просто на диске в файловой системе я писал уже.
Если хранить файлы в непосредственно в базе ("Хранилище дополнительной информации"), то начнет увеличиваться размер базы и бекапов. Об этом я тоже писал.
Про какую то альтернативную авторизацию я и не писал. я писал о том что СУБД поддерживает авторизацию по логину и паролю и для данной задачи этого вполне достаточно. И если кому то нужно устанавливать права на файлы, то я писал что в СУБД вместе с файлами можно сохранять любую доп. информацию, с которой потом как то будет можно работать (у меня это не реализовано в демо базе).
О том что СУБД быстрее файловой системы я вообще не писал! Где вы это взяли?

"для данной задачи надо обойтись без СУБД"
это ваше мнение. Я вас не заставляю использовать мое решение!

"Не должно множить сущее без необходимости" (с) Оккам.

Ну насчет надежности хранения файлов в СУБД вы наверное спорить не будете. Версионирование тоже штука полезная.
В данной СУБД не требуется проектировать структуру базы (таблицы, хранимые процедуры, триггеры) и для данной задачи очень подходит.
Для того чтобы внедрить и использовать мое решении требуется максимум минут 30: это установить саму СУБД, написать пару простеньких функций, объединить конфигурацию демо базы со своей и вывести на формы нужных объектов кнопки для открытия списка файлов.
Причем тут без разницы какую вы СУБД используете (MS SQL, PostgreSQL, Oracle), или вообще у вас файловая база - работать будет везде. Затрачиваться на покупку ПО тоже не надо.
Это в дополнение к тому что я уже писал о плюсах использования данной СУБД.
98. gaglo 16.08.12 16:32 Сейчас в теме
(96) ...вы обиделись? Напрасно!
На нашей фирме есть похожая задача. Фирма торгует электротехнической продукцией. Поставщики предоставляют нам сертификаты на свою продукцию, мы по требованию покупателей снабжаем их копиями сертификатов. Для этого сканы сертификатов привязаны к номенклатуре. Каждый сертификат накрывает много номенклатурных позиций, всего сканов около 400. Новый сертификат - явление редкое, скажем, раз в полгода. Обращения на чтение - несколько раз в неделю. Сканы хранятся просто в файловой системе, а в 1С - полные имена файлов.
Внедрение решения заняло когда-то минут 20, насчет надежности - ни один сертификат не пропадал и не повреждался неведомым врагом, бэкап делается пофайлово, затрат на покупку чего-нибудь вроде ПО не несли, всё и так работает. Версионированием в данном случае и не пахнет, так оно и не требовалось.
Заметив статью, сначала подумал, что в своё время мы что-то прощёлкали... Прочитав, и поучаствовав в обсуждении - больше так не думаю.
Слово "упрямы" я отношу не к несогласию с моим мнением, но к неумению - или нежеланию - отстаивать своё.
Вот возьмем чисто (96).
документов в СУБД 1700.... Сколько всего файлов в базе я не считал.

Простите, не понял. Как в этом случае документы соотносятся с файлами? Видимо, это не одно и то же, ибо одних 1700 - а других не счесть.
частота обращений очень низкая

Не выдавать военной тайны! Раз в месяц или раз в столетие... (Видно, что подробный ответ может быть неконкретным...)
Про какую то альтернативную авторизацию я и не писал. я писал о том что СУБД поддерживает авторизацию по логину и паролю

1С тоже поддерживает авторизацию "по логину и паролю". Я считаю её основной. Потому что 1С в данном случае - основная система. Если во внешней СУБД есть другой логин и другой пароль - это будет вторая авторизация. Альтернативная!
О том что СУБД быстрее файловой системы я вообще не писал! Где вы это взяли?

Смотрим в (21) "плюсы данного решения: ... 4. Скорость поиска данных в базе и их отдача у NoSQL СУБД очень высокая". Каюсь, домыслил. Потому что не представляю "плюсы решения вообще", а только плюсы "данного решения по сравнению с другими". А с какими другими? Наверное... Вы и сами знаете - я про костыль №1. Но иначе, извините, не понимаю.
Я вас не заставляю использовать мое решение!

Ну да. Но мог бы убедить. Но не смог. Или не захотел. Я вообще-то про себя думаю, что убедить меня можно. Но убедительными доводами. Хотя бы внешне убедительными.... Не сложилось.
В любом случае благодарю за потраченное на меня время.
100. hrip 214 17.08.12 13:31 Сейчас в теме
(98) gaglo, Так я и не пытался убедить вас использовать именно это решение. Я вам о нем рассказал и привел доводы в его пользу. Вас они не устроили - не используйте. Вам например больше нравится файлы хранить на диске в ФС, а я считаю это решение в принципе неправильным. А то что у вас до сих пор все файлы целые - так это же замечательно.

Как в этом случае документы соотносятся с файлами? Видимо, это не одно и то же, ибо одних 1700 - а других не счесть.

Данная СУБД - документо-ориентированная (здесь нет таблиц) и то что в реляционной СУБД назвали бы строкой таблицы здесь называется документ. Документ может содержать какое-то(к слову какое-то не придираемся - не высчитывал максимальное количество полей и вложений одного документа) количество полей и вложений (файлов).

Не выдавать военной тайны! Раз в месяц или раз в столетие... (Видно, что подробный ответ может быть неконкретным...)

в предыдущем комментарии писал что таким параметром как частота обращений можно пренебречь. Если интересует конкретно, то к файлу могут и раз 20 (может и больше) в день обратиться, а могут и раз в месяц.

Скорость поиска данных в базе и их отдача у NoSQL СУБД очень высокая

Это взято из общей информации по NoSQL - конкретно не замерял и соответственно цифру не назову.

Я считаю что для хранения файлов удобно использовать мое решение, кто-то считает что надо использовать те СУБД на которых уже крутятся базы 1С, вы считает что надо хранить в ФС. Так что каждый выберет то что считает правильным. По крайней мере вы уже знаете что есть еще один способ хранить файлы.
99. klel 16.08.12 22:15 Сейчас в теме
Большое спасибо за описание как можно все это сделать =) теперь можно воспользоваться разработкой и что то свое придумать :)
103. zharovaa 18.03.13 15:53 Сейчас в теме
У меня какая-то проблема с кодировкой, не могу понять в чем дело ((
Прикрепленные файлы:
104. hrip 214 21.03.13 15:50 Сейчас в теме
(103) zharovaa, А какая/какие я у вас ОС где вертится 1С и СУБД?
Сейчас специально скачал демо базу и последний дистрибутив СУБД с сайта, установил на Win XP - проблем с кодировкой нет.
Оставьте свое сообщение
Вакансии
Программист 1С
Оренбург
зарплата от 120 000 руб.
Полный день

Ведущий Инженер - программист 1С
Новокузнецк
зарплата от 100 000 руб.
Полный день

Программист 1C
Москва
Полный день

Главный специалист (Программист 1с)
Подольск
зарплата от 100 000 руб. до 110 000 руб.
Полный день

Программист
Москва
зарплата от 200 000 руб. до 230 000 руб.
Полный день