powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как работает база данных для yandex market
19 сообщений из 19, страница 1 из 1
Как работает база данных для yandex market
    #38518932
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там база товаров, у каждого товара есть атрибуты, общее число различных атрибутов вероятно десятки тысяч.
Запрос может включать фильтр - комбинацию нескольких атрибутов, включая атрибуты с диапазоном значений.
Но, все это не ново и делается с SQL базами.

Интересен другой момент - если внимательно посмотреть - для каждого аттрибута там показывается - сколько значений в него попадает при текущем фильтре (текущий фильтр - имеется ввиду текущая комбинация из других аттрибутов). Особенно это заметно для аттрибутов с диапазоном (см скриншот).

Как они это делают? Если взять и попробовать посчитать это в лоб - это не получится - будет слишком много запросов к базе - считать число товаров для каждого аттрибута + дополнительно считать границы значений для аттрибутов-диапазонов.

Мне кажется там используется что-то вроде базы в памяти, когда основная часть данных эффективно отсекается по индексам по паре тройке аттрибутов - а оставшийся небольшой кусок уже неэффективно просчитывается тупым перебором.

Вобщем, хочу знать как такую штуку можно слелать, если кто знает информацию по теме скиньте плиз.



П.С. Еще вроде-как некоторые поисковики умеют похожую штуку делать, вроде-как ElasticSearch делает что-то похобное - показывает число выбранных элементов по аттрибутам фильтра, но я его плохо знаю и не уверен что это именно так, кто с ним работал просветите плиз.
...
Рейтинг: 0 / 0
Как работает база данных для yandex market
    #38518944
Фотография arni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
private,

не понятно что конкретно вы вопрошаете:
- как яндекс считает?
- как ему удается считать так быстро?

Полагаю ответами будут:
- грамотная организация БД, далее SQL,
- в распоряжении Яндекса вычислительная мощь "до жопы", к тому же она размазана по нескольким ДЦ. Не вижу магии в том, чтобы посчитать конкретного клиента без тормозов. Полагаю, их параллельно тысячи сидят на подборе, а не миллионы.
...
Рейтинг: 0 / 0
Как работает база данных для yandex market
    #38518945
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посчитать число результатов возвращаемых для каждого аттрибута на SQL базе мне кажется не получится - потому-что надо тогда выполнить столько запросов сколько аттрибутов на странице.

На странице выбора фотоаппаратов их штук 40 наверно, делать по нескольку десятков запросов к базе ради одной страницы - мне кажется это слишком даже если есть лишние мощности.
...
Рейтинг: 0 / 0
Как работает база данных для yandex market
    #38518947
Фотография arni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
private,

учитывая, что после поиска и связаной с этим рекламы для Яндекса его Маркет наверное следующий по доходам сервис, то я думаю на серверах там не экономят. Ресурс организован отлично, работает быстро - тут не поспоришь. И при наличии достаточных можностей я не вижу проблем размазать базу так, чтобы параллельно выполнять запросы по всем катагорям разом.
...
Рейтинг: 0 / 0
Как работает база данных для yandex market
    #38518953
Goffman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
privateНа странице выбора фотоаппаратов их штук 40 наверно, делать по нескольку десятков запросов к базе ради одной страницы - мне кажется это слишком даже если есть лишние мощности.
скорее всего делают одним запросом
...
Рейтинг: 0 / 0
Как работает база данных для yandex market
    #38518955
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
privateПосчитать число результатов возвращаемых для каждого аттрибута на SQL базе мне кажется не получится - потому-что надо тогда выполнить столько запросов сколько аттрибутов на странице.

???!!! чиво ??!

ты как себе представляешь, ваще, структуру БД в части этих "аттрибутов" ?
это делается одним запросом, без вариантов !
...
Рейтинг: 0 / 0
Как работает база данных для yandex market
    #38518981
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
private,

Откройте для себя понятие составного индекса и вас попустит. И да, вам в домашних условиях такой фокус провернуть неполучится - железо не то.
...
Рейтинг: 0 / 0
Как работает база данных для yandex market
    #38519019
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
privateОсобенно это заметно для аттрибутов с диапазоном (см скриншот).
Хранить минимальное и максимальное значение для атрибута не так уж и сложно. Вытащить два
целых числа из базы тоже не занимает времени. Как уже сказали, вычислительные мощности там
совсем не помоечного железа.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как работает база данных для yandex market
    #38519101
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторХранить минимальное и максимальное значение для атрибута не так уж и сложно.Там только минимальное и максимальное хранится, с ними то вобщем понятно что вытащить можно.

Там также показывается минимальное и максимальное значение с учетом текущего выбранного фильтра по другим аттрибутам . Соответственно чтобы эти числа посчитать нужно выполнить запрос

select количество товаров(*)
where текущий фильтр из других аттрибутов + фильтр по интересующему нас атрибуту

И просчитать такие запросы по всем аттрибутам.
...
Рейтинг: 0 / 0
Как работает база данных для yandex market
    #38519102
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опечатался, авторТам только минимальное и максимальное хранится, с ними то вобщем понятно что вытащить можно. Читать как

Там НЕ только минимальное и максимальное хранится, с ними то вобщем понятно что вытащить можно.
...
Рейтинг: 0 / 0
Как работает база данных для yandex market
    #38519112
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АПДЕЙТ, проигнорируйте пожжалуйста 2 предыдущих сообщения, я непонятно там написал, вот что хотел сказать:

Там не только минимальное и максимальное хранится, с ними то вобщем понятно что вытащить можно.

Там также показывается минимальное и максимальное значение с учетом текущего выбранного фильтра по другим аттрибутам. Соответственно чтобы эти числа посчитать нужно выполнить запросы

Для аттрибутов булеан

Код: sql
1.
2.
select количество товаров
where текущий фильтр из других аттрибутов + фильтр по интересующему нас атрибуту


Для аттрибутов перечислений (см скриншот ниже, там показывается какие значения из перечисления пустые а какие нет)

Код: sql
1.
2.
3.
для каждого значения из перечисления
  select количество товаров
  where текущий фильтр из других аттрибутов + фильтр по значению


Для аттрибутов диапазонов

Код: sql
1.
2.
3.
4.
5.
select нижнюю границу диапазона
where текущий фильтр из других аттрибутов

select верхнюю границу диапазона
where текущий фильтр из других аттрибутов


И просчитать такие запросы по всем аттрибутам.

Скриншот где видно что по каждому значению из перечисления посчитано количество товара для каждого значения
...
Рейтинг: 0 / 0
Как работает база данных для yandex market
    #38519121
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
private,

Все три типа атрибутов физически реализовываются через диапазон, т.к. первые два являются его частными случаями.

По сути, задачу можно решить многомерным кубом. Очень многомерным, в некоторых случаях. Но зная яндекс, я не думаю, что они использовали для этого реляционную БД, не говоря уже о каком-либо стандартном OLAP.
...
Рейтинг: 0 / 0
Как работает база данных для yandex market
    #38519137
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, я тоже подозреваю что там какой-то многомерный индекс, интересно узнать как такие штуки работают.
...
Рейтинг: 0 / 0
Как работает база данных для yandex market
    #38519231
Ennor TiegaelПо сути, задачу можно решить многомерным кубом. Очень многомерным, в некоторых случаях. Но зная яндекс, я не думаю, что они использовали для этого реляционную БД, не говоря уже о каком-либо стандартном OLAP.
В рекламе они MS Sql Server пользуют (смотрите их вакансии). Уверен, что на Маркете тоже, задача вполне по силам сиквелу.

private, если субд у вас Sql server, читайте про оконные функции )
...
Рейтинг: 0 / 0
Как работает база данных для yandex market
    #38519370
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений Кульпин,

Я как-то собеседовался в яндекс, несколько лет назад, правда. Так вот, о какой бы то ни было разработке на MSSQL речь не шла вообще - исключительно администрирование покупных инсталляций (1С или Навижн, не помню точно, но что-то в этом духе).

Что-то, конечно, могло измениться за 5 лет, но скорее всего до сих пор все через grep делают :)
...
Рейтинг: 0 / 0
Как работает база данных для yandex market
    #38519384
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть специальные многомерные индексы R-tree http://en.wikipedia.org/wiki/R-tree
Может у них что-то похожее
...
Рейтинг: 0 / 0
Как работает база данных для yandex market
    #38519561
Ennor TiegaelЕвгений Кульпин,

Я как-то собеседовался в яндекс, несколько лет назад, правда. Так вот, о какой бы то ни было разработке на MSSQL речь не шла вообще - исключительно администрирование покупных инсталляций (1С или Навижн, не помню точно, но что-то в этом духе).

Что-то, конечно, могло измениться за 5 лет, но скорее всего до сих пор все через grep делают :)
Повторяю, просмотрите их вакансии http://company.yandex.ru/job/vacancies/?city=msk ), сейчас есть позиции на MySql, периодически встречаются и другие СУБД.
В октябре 2013 знакомый туда пошел работать именно на MS Sql Server.
У них огромный зоопарк решений.
...
Рейтинг: 0 / 0
Как работает база данных для yandex market
    #38519590
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
private
П.С. Еще вроде-как некоторые поисковики умеют похожую штуку делать, вроде-как ElasticSearch делает что-то похобное - показывает число выбранных элементов по аттрибутам фильтра, но я его плохо знаю и не уверен что это именно так, кто с ним работал просветите плиз.

Это называется faceted search.
...
Рейтинг: 0 / 0
Как работает база данных для yandex market
    #38519630
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, это так и называется в ElasticSearch, на днях постараюсь с ним подробней разобраться, может он из коробки это делает.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как работает база данных для yandex market
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]