Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
 Какая БД лучше всего подходит для векторов  [new]
N-size
Guest
Нужно искать N-мерный вектор среди коллекции векторов, евклидово расстояние между которыми наименьшее с заданным вектором.
Подскажите, какая СУБД штатно умеет работать с N-мерыми векторами и поддерживает индексирование для этого. Для двухмерного у нас есть postgress и mysql, а для многомерных?
26 июл 16, 09:46    [19455063]     Ответить | Цитировать Сообщить модератору
 Re: Какая БД лучше всего подходит для векторов  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5825
N-size
Нужно искать N-мерный вектор среди коллекции векторов, евклидово расстояние между которыми наименьшее с заданным вектором.
Подскажите, какая СУБД штатно умеет работать с N-мерыми векторами и поддерживает индексирование для этого. Для двухмерного у нас есть postgress и mysql, а для многомерных?


А чем PostgreSQL не подходит :-)
Нужен N-мерный вектор создайте свой тип и прикрутите к нему правила индексирования. ;-)

Ну или воспользоваться JSON-типом.
26 июл 16, 12:19    [19456108]     Ответить | Цитировать Сообщить модератору
 Re: Какая БД лучше всего подходит для векторов  [new]
Dimitry Sibiryakov
Member

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

Лично я бы вектора вообще хранил в текстовом файлике, а задачу решал в ОЗУ. Или посмотрел
бы что там у NVIDIA есть на тему векторов в их NUMA...

Posted via ActualForum NNTP Server 1.5

26 июл 16, 12:23    [19456140]     Ответить | Цитировать Сообщить модератору
 Re: Какая БД лучше всего подходит для векторов  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
mad_nazgul
Ну или воспользоваться JSON-типом.
а можно небольшой ликбез?
иногда встречаю подобные советы
объясните - как тут JSON может помочь? это же просто формат записи, типа xml
заранее лагодарен
26 июл 16, 14:59    [19457370]     Ответить | Цитировать Сообщить модератору
 Re: Какая БД лучше всего подходит для векторов  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5825
SergSuper
mad_nazgul
Ну или воспользоваться JSON-типом.
а можно небольшой ликбез?
иногда встречаю подобные советы
объясните - как тут JSON может помочь? это же просто формат записи, типа xml
заранее лагодарен


Очень просто.
Описываешь вектор в виде JSON-а.
Формат простой, разобраться легко.
А в PostgreSQL есть возможность индексировать JSON и делать по полям JSON поиск.
27 июл 16, 06:08    [19459713]     Ответить | Цитировать Сообщить модератору
 Re: Какая БД лучше всего подходит для векторов  [new]
Dimitry Sibiryakov
Member

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

mad_nazgul
в PostgreSQL есть возможность индексировать JSON и делать по полям JSON поиск.

Поиск по "эвклидову расстоянию"? Ню-ню...

Posted via ActualForum NNTP Server 1.5

27 июл 16, 12:02    [19461201]     Ответить | Цитировать Сообщить модератору
 Re: Какая БД лучше всего подходит для векторов  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5825
Dimitry Sibiryakov
mad_nazgul
в PostgreSQL есть возможность индексировать JSON и делать по полям JSON поиск.

Поиск по "эвклидову расстоянию"? Ню-ню...


Поиск по полям JSON.

А расстояние так и так придется вычислять.
Можно конечно сделать таблицу с парами векторов + расстояние м/у ними.
А потом по этой таблице искать ;-)
27 июл 16, 13:06    [19461749]     Ответить | Цитировать Сообщить модератору
 Re: Какая БД лучше всего подходит для векторов  [new]
Dimitry Sibiryakov
Member

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

mad_nazgul
Поиск по полям JSON.

Для поиска по полям на равенство JSON не нужен.

Posted via ActualForum NNTP Server 1.5

27 июл 16, 13:16    [19461845]     Ответить | Цитировать Сообщить модератору
 Re: Какая БД лучше всего подходит для векторов  [new]
miksoft
Member

Откуда:
Сообщений: 38920
N-size
Для двухмерного у нас есть postgress и mysql, а для многомерных?
Я бы смотрел на сами данные.
Как вариант - если селективность по двум измерениям будет достаточно высокой, то эти два измерения вынести в специальные типы данных, а все остальные поштучно - в обычные.
27 июл 16, 13:21    [19461888]     Ответить | Цитировать Сообщить модератору
 Re: Какая БД лучше всего подходит для векторов  [new]
scf
Member

Откуда:
Сообщений: 1486
Можно использовать приближенные выборки. К примеру, выбирать вектора из гиперкуба заданного размера (т.е. это получается по диапазону для каждой координаты), а потом уже на клиенте их сортировать по метрике.
27 июл 16, 13:46    [19462079]     Ответить | Цитировать Сообщить модератору
 Re: Какая БД лучше всего подходит для векторов  [new]
Сергей Арсеньев
Member

Откуда:
Сообщений: 4118
Если N до трех, то то подойдут СУБД со штатными GIS расширениями.
Если больше, то любая, которая умеет хранить вектора и запускать триггеры на вставку и изменение. Правда придется почитать про R-Tree index. И реализовать его самому. :)
28 июл 16, 09:25    [19465608]     Ответить | Цитировать Сообщить модератору
 Re: Какая БД лучше всего подходит для векторов  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 9894
Не уверен, что поиск ближайшего идет по индексу. Все же основная задача в ГИС - поиск объектов попадающих в заданное окно вывода. Но посыл автору верен, почитать про индексы для spatial, если подходят для его задачи - сделать некий многомерный аналог
28 июл 16, 09:40    [19465675]     Ответить | Цитировать Сообщить модератору
 Re: Какая БД лучше всего подходит для векторов  [new]
Сергей Арсеньев
Member

Откуда:
Сообщений: 4118
Leonid Kudryavtsev
Все же основная задача в ГИС - поиск объектов попадающих в заданное окно вывода.

А как же nearest neighbor? Типа где ближайший кинотеатр?
28 июл 16, 10:44    [19466007]     Ответить | Цитировать Сообщить модератору
 Re: Какая БД лучше всего подходит для векторов  [new]
mikron
Member

Откуда:
Сообщений: 888
N-size,

А функционал Базы данных точно нужен?
Как часты изменения набора данных?
Нужна транзакционная изоляция?
Сколько данных в наборе для поиска?
29 июл 16, 11:50    [19471713]     Ответить | Цитировать Сообщить модератору
 Re: Какая БД лучше всего подходит для векторов  [new]
Сергей Арсеньев
Member

Откуда:
Сообщений: 4118
mikron
А функционал Базы данных точно нужен?

Ага. Еще бы спросить, а точно ли ему нужны вектора, или просто точки в многомерном пространстве хватит. :)
29 июл 16, 12:18    [19471912]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить