|
|
|
Сохранение файлов в БД с выборкой по дате.
|
|||
|---|---|---|---|
|
#18+
Всем привет! История такова работаю в банке где между двумя подсистемами происходит файловый обмен как в одну так и в другую сторону. Стоит задача создание архива всех передаваемых сообщений + осуществить возможность выбоки по дате и по типу сообщений. Вопрос к знатокам как вы считаете имеет ли смысл использовать - точнее проектировать схему для Oracle DB в которой можно было бы реализовать все выше-перечисленные действия? Принцип работы: 1. Скрипт сканирует папку по определенным критериям которая используется для обмена сообщений и сохраняет их в базе. 2. Пользователь которому вдруг потребовалось найти тот или иной файлик использует самописное приложение написанное например на c#, java которое с помощью jbdc/odbc драйвера соединятся с базой, далее пользователь выбирает тип и делает выборку по дате. после сохраняет в файловой системе своей ос. Плюсы: - Удобный пользовательский интерфейс клиентского приложения. - Авторизация пользователей. - Резервирование всей информации каждый раз когда бекапиться оракловая база. ?? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 02:14 |
|
||
|
Сохранение файлов в БД с выборкой по дате.
|
|||
|---|---|---|---|
|
#18+
Dr.Hofmann, И да и нет.... непонятна задача. Создать и спроектировать схему - не сложно, а вот выделить под нее место (а файлы же могут быть и большие) - сложнее. Это же, видимо, продуктивный сервер? А нет ли истории загруженных файлов в этих системах? если есть - то получается избыточная информация. Да, и нужно ли постоянно делать бекап всей этой мути вместе с базой? это же и время бекапа увеличит и место на архивных носителях..... А чем не устраивает как сейчас работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 11:11 |
|
||
|
Сохранение файлов в БД с выборкой по дате.
|
|||
|---|---|---|---|
|
#18+
lLocust, автор (а файлы же могут быть и большие) - сложнее 10мб в день авторЭто же, видимо, продуктивный сервер? он самый с основной базой авторА нет ли истории загруженных файлов в этих системах? ну как бы история такова что даты выгрузки загрузки - будут идентичными в базе авторА чем не устраивает как сейчас работает? просто стоит задача создание нормального архива и быстрого поиска нужных файлов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 15:24 |
|
||
|
Сохранение файлов в БД с выборкой по дате.
|
|||
|---|---|---|---|
|
#18+
Dr.HofmannПлюсы: - Удобный пользовательский интерфейс клиентского приложения. - Авторизация пользователей. - Резервирование всей информации каждый раз когда бекапиться оракловая база. Первые 2 плюса никакого отношения к хранению в БД не имеют. Третий - если Вы собираетесь держать (и бекапить вместе) с основной базой, то это имхо минус, если хранить в отдельной базе - то все равно нужно делать телодвижения по настройке отдельного бекапа. Хранение файлопомойки внутри Oracle - стрельба из пушки по воробьям. Если есть под рукой пушка и хочется придумать повод из нее пострелять - ну да, почему бы и не воробьи :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 15:41 |
|
||
|
Сохранение файлов в БД с выборкой по дате.
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, авторПервые 2 плюса никакого отношения к хранению в БД не имеют. Третий - если Вы собираетесь держать (и бекапить вместе) с основной базой, то это имхо минус, если хранить в отдельной базе - то все равно нужно делать телодвижения по настройке отдельного бекапа. Хранение файлопомойки внутри Oracle - стрельба из пушки по воробьям. Если есть под рукой пушка и хочется придумать повод из нее пострелять - ну да, почему бы и не воробьи :) просто хотел найти более правильное решение, поэтому предложил один из вариантов - и понял что он не совсем правильный. Если у кого-то есть более интересные мысли - мне интересно было бы их услышать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2014, 22:52 |
|
||
|
Сохранение файлов в БД с выборкой по дате.
|
|||
|---|---|---|---|
|
#18+
Dr.Hofmann, Один из вариантов: Файлы хранятся на сервере куда СУБД имеет доступ. В БД сохраняется имя файла, дата, путь до него и еще какая-нибудь нужная информация. Когда пользователю нужен сам файл, то СУБД берет его с диска и передает пользователю (через то же самое клиентское приложение). Архив файлов организуется средствами операционной системы. И я бы отделил эту базу от продуктива АБС..... Тем более что Oracle XE вам на долго хватит для этих нужд... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2014, 11:33 |
|
||
|
Сохранение файлов в БД с выборкой по дате.
|
|||
|---|---|---|---|
|
#18+
lLocust В БД сохраняется имя файла, дата, путь до него и еще какая-нибудь нужная информация. А зачем БД-то вообще для этого? Прочитать каталог и отобрать нужные по маске данные - не то чтобы долгая операция на современном железе, даже без оракловых индексов. Сколько там этих файлов будет - 100 тыс, 200? Ерунда. Основную проблему в схеме я вижу в нетранзакционности операции синхронизации файловой системы и БД -что может приводить к появлению мусора в базе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2014, 11:53 |
|
||
|
Сохранение файлов в БД с выборкой по дате.
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинlLocust В БД сохраняется имя файла, дата, путь до него и еще какая-нибудь нужная информация. А зачем БД-то вообще для этого? Прочитать каталог и отобрать нужные по маске данные - не то чтобы долгая операция на современном железе, даже без оракловых индексов. Сколько там этих файлов будет - 100 тыс, 200? Ерунда. Основную проблему в схеме я вижу в нетранзакционности операции синхронизации файловой системы и БД -что может приводить к появлению мусора в базе. а если люся все свои файлы называет 1.тхт, что будем делать?на фоне того что юморист петя свои файлы спецом называет 1(2).тхт :) нормальная фишечка файлы на винчестере, чтоб не сильно вешалась файловая система, в подпапках- первые 3 символа имени файла имена - хеши. таблица idfile,filehash,orig_name,md5,date,..... помещение в архив 1)insert into files .... 2)cp orig_name .../archive/sub_folder/filehash 3)!!! touch -m Для этого файла с датой, такойже как и в базе периодически проверку делать снимок из базы ввида snapshot.db и пропустить через sort файл-имя md5 снимок из файловой системы в такомже виде - snapshot.fs(find | md5sum |sort ) при построении списков использовать одинаковое ограничение по времени...скажем файлы старее суток, будем щитать что любая операция над файлами за сутки всётаки завершаеться....это чтобы не захватывать файлы которые в процесе попадания в архив, и запись есть в базе а на шдд ещо нету, или наоборот ну а потом пару плясок с бубном(шел утилиты) сравнивая два списка и взяв те строки что есть в базе но нету на шдд - это пропавшие, или битые файлы - их востановить из бекапа а вот мусор позложнее..надо сначала из этих списков срезать мд5суму, оставив только имя(sed) и найти те имена что встречаються на шдд но нету в базе - это мусор - удалять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2014, 13:46 |
|
||
|
Сохранение файлов в БД с выборкой по дате.
|
|||
|---|---|---|---|
|
#18+
ну а выбрать уже можно будет по всему что в базу напихаете, хоть по значению последнего байта в файле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2014, 13:46 |
|
||
|
Сохранение файлов в БД с выборкой по дате.
|
|||
|---|---|---|---|
|
#18+
alex564657498765453Кот Матроскинпропущено... А зачем БД-то вообще для этого? Прочитать каталог и отобрать нужные по маске данные - не то чтобы долгая операция на современном железе, даже без оракловых индексов. Сколько там этих файлов будет - 100 тыс, 200? Ерунда. Основную проблему в схеме я вижу в нетранзакционности операции синхронизации файловой системы и БД -что может приводить к появлению мусора в базе. а если люся все свои файлы называет 1.тхт, что будем делать?на фоне того что юморист петя свои файлы спецом называет 1(2).тхт :) Будем читать, постановку, вестимо. Dr.Hofmann История такова работаю в банке где между двумя подсистемами происходит файловый обмен как в одну так и в другую сторону. При чем тут Люся и Петя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2014, 14:43 |
|
||
|
Сохранение файлов в БД с выборкой по дате.
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинlLocust В БД сохраняется имя файла, дата, путь до него и еще какая-нибудь нужная информация. А зачем БД-то вообще для этого? Прочитать каталог и отобрать нужные по маске данные - не то чтобы долгая операция на современном железе, даже без оракловых индексов. Сколько там этих файлов будет - 100 тыс, 200? Ерунда. Основную проблему в схеме я вижу в нетранзакционности операции синхронизации файловой системы и БД -что может приводить к появлению мусора в базе. БД по сути не нужна. Основные операции - чтение директорий, перемещение в архив старых файлов - делается с помощью демона. Использование БД я предлагал - как некий инструмент для визуализации информации для пользователя, без возможности получения физического доступа к папке на сервере. Так же при частых обращениях пользователей на просмотр всех файлов за промежуток времени придется использовать хэширование (что не сканировать постоянно директории сервера), а в этом случае использование базы не лишнее.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2014, 15:26 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38617499&tid=1540914]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
174ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 271ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...