Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: Как получить байты из блоба?  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 32896
Dimitry Sibiryakov
Хэш тут как раз ни к чему, поскольку он для почти одинаковых картинок выдаст
совершенно разные значения. Тут "антихэш" какой-то нужен.
первые версии поисковых алгоритмов (для картинок) гугля и яндыкса ориентировались на спектральное распределение картинки.
иногда было смешно.
6 окт 21, 17:07    [22380172]     Ответить | Цитировать Сообщить модератору
 Re: Как получить байты из блоба?  [new]
shalamyansky
Member

Откуда:
Сообщений: 290
Dimitry Sibiryakov,

В рассматриваемом мной контексте нет задачи искать "похожесть" картинок, синий цветок на желтом поле или портрет Путина. Для этой цели есть специальные инструменты с ИИ и другими высокими материями. Я говорю лишь о точном совпадении, что практически тоже бывает полезно.
6 окт 21, 17:11    [22380173]     Ответить | Цитировать Сообщить модератору
 Re: Как получить байты из блоба?  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 63467
shalamyansky> найти по известной картинке (и более ничего)
shalamyansky> соответствующую запись.

И для чего же нужен был такой поиск?
Интересен конкретный прикладной пример.

shalamyansky> Кстати, вот весьма полезная задача - найти дубли картинок.
shalamyansky> Шарашить квадратичным поиском сравнения блобов
shalamyansky> тяжеловато будет, особенно на емких базах.

Шарашить все и не нужно, достаточно
только те, у которых размер совпадает.

Posted via ActualForum NNTP Server 1.5

6 окт 21, 17:36    [22380186]     Ответить | Цитировать Сообщить модератору
 Re: Как получить байты из блоба?  [new]
shalamyansky
Member

Откуда:
Сообщений: 290
Гаджимурадов Рустам

И для чего же нужен был такой поиск?
Интересен конкретный прикладной пример.

Ну, например, команда дизайнеров и этих, контент-менеджеров, делает сайт, портал даже. Много страниц, много разных картинок, много всего. Каждый в своем углу ковыряется. Все хозяйство лежит в БД. И вот одному э... контент-менеджеру приходит гениальная мысль посадить в свой уголок рыжего котика. Он роется в файлах общей помойки, или даже в интернете, и, ура, находит котика! Засовывает в базу, ставит ссылку, как полагается в их системе. И невдомек ему, что еще вчера коллега засунул в базу точно такого же котика. И теперь в базе 2 котика. А когда начальство - Что еще за хрень?! - прикажет убрать безобразие, удалится только один, а второй будет жить до поры до времени, пока тоже не попадется на глаза.

И то, что э... контент-менеджер один, проблемы не решает. Правая рука часто не знает, что делает левая, особенно когда прошли месяцы и годы.

А так при загрузке небольшая проверка - опаньки, а такой-то файл уже есть! И используется он там-то и там-то. Удобно же.
6 окт 21, 19:39    [22380240]     Ответить | Цитировать Сообщить модератору
 Re: Как получить байты из блоба?  [new]
shalamyansky
Member

Откуда:
Сообщений: 290
Гаджимурадов Рустам

Шарашить все и не нужно, достаточно
только те, у которых размер совпадает.

Тогда таки размер надо держать в отдельном поле. По сути размер - это тот же хеш, только с большой вероятностью конфликтов. Так уж лучше в качестве хеша хороший хеш использовать.
6 окт 21, 19:42    [22380244]     Ответить | Цитировать Сообщить модератору
 Re: Как получить байты из блоба?  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 63467
shalamyansky> И используется он там-то и там-то. Удобно же.


Ну т.е. это Вы прям щас придумали. ОК.


shalamyansky> Так уж лучше в качестве хеша хороший хеш использовать.

Лучше не плодить фигню без необходимости, ИМХО.

Posted via ActualForum NNTP Server 1.5

6 окт 21, 20:42    [22380270]     Ответить | Цитировать Сообщить модератору
 Re: Как получить байты из блоба?  [new]
shalamyansky
Member

Откуда:
Сообщений: 290
Гаджимурадов Рустам

Ну т.е. это Вы прям щас придумали. ОК.

Это да. Красивый же пример, а? А если совсем практически, то там более прозаично. Моя утилитка регулярно забирает с определенного ресурса файлы, в данном случае картинки, и закладывает в БД. Картинки имеют уникальные идентификаторы, и при этом их файлы могут меняться со временем, но могут и не меняться. Так вот, чтобы избежать лишних апдейтов и многомегабайтных пересылок, утилита сперва запрашивает у базы атрибуты образа, в том числе хеш, сравнивает их на стороне клиента с новыми атрибутами, в том числе хешем, и делает обновление только в случае расхождений, при этом обновляет только нужное.

До поиска еще дело не дошло, но что-то мне подсказывает, что не за горами и поиск.

Гаджимурадов Рустам

Лучше не плодить фигню без необходимости, ИМХО.

Согласен. Проблема лишь в определении фигни.

Сообщение было отредактировано: 6 окт 21, 20:52
6 окт 21, 21:01    [22380284]     Ответить | Цитировать Сообщить модератору
 Re: Как получить байты из блоба?  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 63467
shalamyansky> забирает с определенного ресурса картинки

Ну таки есть разница между загрузкой картинки в прикладную
БД и автоматизацией общения с некими онлайн-каталогами...
В любом случае, даже если что-то такое понадобилось бы -
всегда можно хеш добавить позже.

У меня вообще подозрение, что у ТСа не отдельная таблица
MediaStorage, а прямо по месту событий картинки и хранятся. :)

Posted via ActualForum NNTP Server 1.5

6 окт 21, 21:12    [22380286]     Ответить | Цитировать Сообщить модератору
 Re: Как получить байты из блоба?  [new]
Док
Member

Откуда: Казань
Сообщений: 7217
Гаджимурадов Рустам
У меня вообще подозрение, что у ТСа не отдельная таблица
MediaStorage, а прямо по месту событий картинки и хранятся. :)

Че-та ты разошелся, Рустам. Эдак, ты меня еще и в измене Родине обвинишь :)

Да, поле с картинкой всего одно на всю таблю. Пока не решил, что дешевле - хранить ее рядышком или в отдельной табличке вместе другими картинками (да, знаю, что блобы лучше хранить в отдельной табле, ибо проще сделать откат при неудаче - статьи Димы читал). Но к теме топика это мало относится.

Наверное, топик можно на этом и прикрыть. Ответы на свой вопрос благодаря участникам я уже получил. Большое спасибо за помощь и советы
7 окт 21, 14:19    [22380680]     Ответить | Цитировать Сообщить модератору
 Re: Как получить байты из блоба?  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 63467
Док> Че-та ты разошелся, Рустам. Эдак, ты
Док> меня еще и в измене Родине обвинишь :)


Простите, Доктор! Но я же таки угадал:

Док> Да, поле с картинкой всего одно на всю таблю.
Док> Пока не решил, что дешевле - хранить ее
Док> рядышком или в отдельной табличке



Posted via ActualForum NNTP Server 1.5

7 окт 21, 14:25    [22380688]     Ответить | Цитировать Сообщить модератору
 Re: Как получить байты из блоба?  [new]
ggreggory
Member

Откуда:
Сообщений: 201
Док
Пока не решил, что дешевле


Медиа-ресурсы (картинки, аудио, видео) часто лучше в расшаренной папке хранить, иначе b/r не сможете за разумное время делать. Если не устраивает расшаренная папка - можно и UDF написать, который будет с сервера тянуть нужные ресурсы.
7 окт 21, 14:34    [22380693]     Ответить | Цитировать Сообщить модератору
 Re: Как получить байты из блоба?  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 32896

07.10.2021 14:34, ggreggory пишет:
> Медиа-ресурсы (картинки, аудио, видео) часто лучше в расшаренной папке хранить, иначе b/r не сможете за разумное время делать.

пора уже таки переходить с gbak-а на nbackup

Posted via ActualForum NNTP Server 1.5

7 окт 21, 14:42    [22380702]     Ответить | Цитировать Сообщить модератору
 Re: Как получить байты из блоба?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54805

ggreggory
иначе b/r не сможете за разумное время делать

Разумные люди его и не делают. Никогда.

Posted via ActualForum NNTP Server 1.5

7 окт 21, 14:53    [22380714]     Ответить | Цитировать Сообщить модератору
 Re: Как получить байты из блоба?  [new]
ggreggory
Member

Откуда:
Сообщений: 201
Мимопроходящий

пора уже таки переходить с gbak-а на nbackup


Да, есть такое дело. Пока ни разу не пользовался. Рассматриваю gbak ведь не только как инструмент архивации, но и инструмент профилактики возможных проблем. Да и с маленьким файлом базы у вас никогда не будет никакого головняка если она начнёт сыпаться. В самых жутких ситуациях вы просто откатитесь до последней копии за несколько минут.

Dimitry Sibiryakov

Разумные люди его и не делают. Никогда.


Интересненько. А зачем тогда включили в план 5-ой версии оптимизацию GBAK-a (CORE-2992). Неразумные побеждают? :)
7 окт 21, 15:09    [22380728]     Ответить | Цитировать Сообщить модератору
 Re: Как получить байты из блоба?  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 32896
Dimitry Sibiryakov
Разумные люди его и не делают. Никогда.
вот не надо огульных слов.
ты на данных не сидишь.
а тот кто сидит, одной репликацией не ограничивается.
7 окт 21, 15:10    [22380729]     Ответить | Цитировать Сообщить модератору
 Re: Как получить байты из блоба?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54805

ggreggory
Неразумные побеждают? :)

Нет, разумные подстилают соломку на случай когда придётся-таки восстанавливать
базу после потопа.

Posted via ActualForum NNTP Server 1.5

7 окт 21, 15:21    [22380739]     Ответить | Цитировать Сообщить модератору
 Re: Как получить байты из блоба?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54805

Мимопроходящий
а тот кто сидит, одной репликацией не ограничивается.

Что, тоже, как грегг, передёргиваете базу раз в день?..

Posted via ActualForum NNTP Server 1.5

7 окт 21, 15:32    [22380746]     Ответить | Цитировать Сообщить модератору
 Re: Как получить байты из блоба?  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 11092
ggreggory,

Даже если рестор через gbak делать с многопоточной активацией индексов, он всё равно будет медленней nbackup на более менее средних БД.
7 окт 21, 15:37    [22380749]     Ответить | Цитировать Сообщить модератору
 Re: Как получить байты из блоба?  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 11092
Dimitry Sibiryakov,

Дима, наличие репликации не заменяет необходимости делать резервную копию. Вот делать ежедневный рестор, да глупость.
7 окт 21, 15:38    [22380751]     Ответить | Цитировать Сообщить модератору
 Re: Как получить байты из блоба?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54805

Симонов Денис
Вот делать ежедневный рестор, да глупость.

Так о нём-то речь и шла.

Posted via ActualForum NNTP Server 1.5

7 окт 21, 15:46    [22380759]     Ответить | Цитировать Сообщить модератору
 Re: Как получить байты из блоба?  [new]
ggreggory
Member

Откуда:
Сообщений: 201
Dimitry Sibiryakov

Симонов Денис
Вот делать ежедневный рестор, да глупость.

Так о нём-то речь и шла.


Симонов Денис
Dimitry Sibiryakov,

Дима, наличие репликации не заменяет необходимости делать резервную копию. Вот делать ежедневный рестор, да глупость.


Ребят, я про ежедневный рестор ничего не писал. Всё нужно в меру. Тем более, что для рестора нужно останавливать работу, а это не всегда возможно. А вот если свет отрубился или просто так сервер упал или полезли внутренние ошибки - самое время сделать b/r. С маленькой базой это легко!
7 окт 21, 16:01    [22380769]     Ответить | Цитировать Сообщить модератору
 Re: Как получить байты из блоба?  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 11092
ggreggory,

если отрубился свет в 99% случаев ничего делать не надо. Но для успокоения нервов можно запустить онлайн валидацию.
Если ошибок не найдено, успокоится и забить.

Для починки БД есть gfix, во многих случаях его достаточно. И уж если совсем всё плохо восстанавливаться из последней резервной копии.
7 окт 21, 16:29    [22380785]     Ответить | Цитировать Сообщить модератору
 Re: Как получить байты из блоба?  [new]
ggreggory
Member

Откуда:
Сообщений: 201
Симонов Денис
можно запустить онлайн валидацию


Пока ещё не пользовался этой штукой, спасибо за наводку...
7 окт 21, 16:50    [22380802]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Firebird, InterBase Ответить