?

Log in

No account? Create an account

Previous Entry | Next Entry

Все мы пользуемся разными приложениям на телефоне и разными сайтами - для покупок, для резервирования билетов, для поиска разной информации, для подсказок на контрольных работах, и т.п.Но все, что мы видим - это красивые картинки, или, иначе говоря, "пользовательский интерфейс". А та работа по поиску данных, которая происходит за пределами экрана, простому пользователю не видна. А только представьте себе, сколько поисков надо произвести тому же Амазону,чтобы после того,как вы ввели свой логин- пароль,сразу быть готовым показать все ваши заказы за последние десять лет, все адреса в адресной книжке. Сколько запросов для того, чтобы завершить за вас поисковую строку! Пропасть! И если бы Амазон вынимал все фрукты в поисках яблок, вы бы уже давно отказались иметь с ним дело!

В предыдущем посте совершенно случайно в комментариях была идеально смоделирована реальная ситуцация. Если не подумать о том, как искать то, что нужно клиенту, то так и будешь сначала искать яблоки, потом яблочное пюре, потом яблочный сок, потом - шампунь с запахом яблок. И клиент загрустит и уйдет. Так что в этом деле время - деньги :)

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

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

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

Вот всем этим я и занимаюсь!

Comments

( 23 comments — Leave a comment )
annushka_krasa
Oct. 9th, 2018 03:24 am (UTC)
Всегда казалось, что люди, могущие вот это вот все делать (с поиском, предложением рекламы и пр) - немного волшебники :)
hettie_lz
Oct. 9th, 2018 03:25 am (UTC)
Правильно казалось :)
prosto_krys
Oct. 9th, 2018 05:11 am (UTC)

Понятно про анализ покупательских запросов (очень было бы интересно услышать примеры специалистов из этих сфер, потому что непонятно, почему одни сайты предлагают мне банальные совпадения, "невкусные", а фейсбук - такие, что я тыкаю каждую ссылку, именно там устроила кулинарную книгу и огромное количество идей для мероприятий черпаю там). Вы хотите сказать, что на Амазоне тоже используются такие, как у вас, базы данных?

gabryel
Oct. 9th, 2018 09:06 am (UTC)
Когда нам рассказывали про построение рекомендательных систем, я поняла, что это вообще магия. Я поняла, что один из подходов при выдаче рекомендаций - они смотрят, что нравится "таким же как Вы", соответственно, и Вам рекомендуют то, что им уже понравилось. Поэтому, с одной стороны, если вы где-то проводите много времени, стаите там лайки, добавляете что-то в избранное, то система Вас все лучше и лучше узнает, и ее рекомендации становятся все лучше. С другой - самая проблема - как находить "таких же, как Вы", и тут каждый делает, кто во что горазд.
hettie_lz
Oct. 9th, 2018 01:05 pm (UTC)
да :)
hettie_lz
Oct. 9th, 2018 01:04 pm (UTC)
Другие. Абсолютно точно другие. Но там работают профессионалы. Кроме того, вот этот анализ "кому что показывать" - это не базы данных, а "надстройка" над базой данных. У аналитиков есть специальные программы, которые называются модели, и они читаю огромное количество данных из базы, и на основе этих данных строят модели. Так что тут моя задача - чтобы они не отнимали ресурсы ото все :)
prosto_krys
Oct. 9th, 2018 05:14 am (UTC)

Да, а вот почему так сложно по логину-паролю выдать заказы? Вот я представляю эксель тот же (простите - сложнее не могу пока). У меня в первой ячейке логин, пароль, потом все другие данные. И в каких-то ячейках заказы. И при запросе параллельно логину/паролю берутся заказы. В чем проблема?

anni_lj
Oct. 9th, 2018 08:42 am (UTC)
Схематично вы все правильно описали, примерно так и делается.
Но одна из проблем в объемах данных, когда у сайта большое количество пользователей.
Представьте, например, что на одном листе Excеl у вас 10 млн. логинов с паролями, на втором листе - 20-30 млн. заказов, а на третьем - 200-300 млн. деталей этих заказов.
И одновременно к вам на сайт пытаются зайти 100 тыс. пользователей из разных уголков мира.
И вот тут вы начинаете поиск на каждой из страниц, для каждого пользователя ищете логин/пароль, проверяете их, запрашиваете по логину его заказы, детали этих заказов и еще попутно рассчитываете, какую рекламу и сопутствующую информацию пользователю подсунуть.
И все это нужно сделать очень быстро, чтобы пользователь не заскучал и не ушел к конкуренту.
prosto_krys
Oct. 9th, 2018 08:50 am (UTC)
Окей, а что тут может сделать программист? Как он может помочь программе шерстить быстрее среди миллионов? Так или иначе надо найти соответствие в логине и пароле. Из 10 профилей выбрать быстро, а из миллиона - долго. И что надо сделать?..
anni_lj
Oct. 9th, 2018 09:06 am (UTC)
Во-первых, сначала нужно выбрать правильные инструменты - базу данных, сервера, сетевое оборудование, подключение к интернету, которые позволят в принципе взаимодействовать с таким количеством пользователей.

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

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

Из 1 млн. профилей на одной странице выбирать долго, но можно, например, все профили разделить по городам по разным листам таблицы Excel, и если вы сначала определите, что пользователь к вам на сайт зашел из Чикаго, то вы быстро выбираете лист Чикаго из 100 страниц разных городов, и на странице Чикаго находите один профиль пользователя из 10 тыс., а не из миллиона.
prosto_krys
Oct. 9th, 2018 09:10 am (UTC)
О, вот про города понятно. То есть пользователь просто тупо зашел. Ничего больше не сказал, только логин/пароль. И хочет заказы. И программа сама по IP определяет его город и сужает область поиска. А еще что можно сделать? Как еще можно упростить поиск?
anni_lj
Oct. 9th, 2018 09:20 am (UTC)
Еще можно хорошо знать структуру своих данных.
Например, вы знаете, что из 1 млн. пользователей у вас активных всего 1 тыс., но они делают 90% всех покупок.
То есть ваша основная задача, чтобы именно у активных пользователей сайт "летал".
Тогда вы можете отметить эти профили отдельными "галочками", и вынести их все на первый лист Excel, каждый раз начинать поиск именно с этого листа.
В этом случае активные пользователи будут найдены очень быстро, а остальным придется немного подождать.

Еще есть всякие возможности на уровне самой базы данных - по полям, по которым выполняется поиск, вы можете построить индексы, ускоряющие поиск (это тоже придумывает программист). Можно старые заказы, к которым редко обращаются, хранить отдельно (в архиве), а более свежие - на более быстрых и дорогих носителях, но доступ к ним будет существенно быстрее.
prosto_krys
Oct. 9th, 2018 09:22 am (UTC)
Ух ты, как интересно! Именно такое я и хотела узнать. Максимум конкретных примеров, как и что работает
anni_lj
Oct. 9th, 2018 09:26 am (UTC)
Вот теперь этот пример можно умножить на 100 разных видов страниц сайта, и целая команда программистов может трудиться не покладая рук с утра до вечера :)
hettie_lz
Oct. 9th, 2018 01:07 pm (UTC)
ну, это да, амазоновский подход, но он довольно узко-специфичный, и один из тех, с которым я не вполне согласна. Ну, вы понимаете, и я, и мой муж можем быть в абсолютно разных точках планеты :)). Дело не только во мне, конечно же:). Но да, подходов может быть много разных, и это главное.
anni_lj
Oct. 9th, 2018 05:30 pm (UTC)
Это был просто пример, понятный в листах Excel, в реальной жизни я бы тоже так делать не стала )))
hettie_lz
Oct. 10th, 2018 10:40 am (UTC)
:)))
hettie_lz
Oct. 9th, 2018 01:19 pm (UTC)
мда. вот именно поэтому у нас разработчики сами запросы не пишу :). А мы пишем для них функции.
hettie_lz
Oct. 9th, 2018 01:01 pm (UTC)
Это не проблема, а задача :). Заказы хранятся не в том же месте, что пароли. У заказа есть данные, относящиеся к заказу в целом - когда сделан, на какой адрес отправлен, какой картой оплачен, и данные, относящиеся к каждому заказанному объекту, и их тоже немало. Кроме того, один заказа может быть доставлен в разных посылках. Это навскидку. Но можно начать с самого простого. Эксел - маленький, вы "все видите". А если миллионы пользователей и миллиарды заказов, то как можно быстро найти ваши десять заказов в миллиардах?
prosto_krys
Oct. 9th, 2018 01:05 pm (UTC)
Эксель выполняет поиск среди миллионов ячеек и закладок (у нас огроменные файлы, на много МБ) за секунды. Наверняка более мощные программы еще быстрее. Но, видимо, я неправильно себе понимала скорость работы программ. Я считала, что они уже по умолчанию заточены находить среди миллионов за долю секунды. Что бы там ни было. А оказывается, они ищут все же медленнее, и им надо помогать, направляя их. Вот это было для меня откровение.
hettie_lz
Oct. 9th, 2018 01:21 pm (UTC)
У вас файл, когда вы ищете, уже открыт, то есть, он уже в оперативной памяти компьютера. Уже забрали с полочек и разложили на полу :))
simfeya
Oct. 9th, 2018 05:31 pm (UTC)
Для меня это что-то на уровне волшебства: каждый раз, когда я задумываюсь о том, что вот эти вот системы люди придумывают и потом ещё и придумывают, как сделать, чтобы работало лучше - мне это представляется совершенной фантастикой!
hettie_lz
Oct. 10th, 2018 10:39 am (UTC)
да-да-да! Ну и вот как такую работу не любить!
( 23 comments — Leave a comment )

Latest Month

October 2018
S M T W T F S
 123456
78910111213
14151617181920
21222324252627
28293031   

Tags

Powered by LiveJournal.com
Designed by Tiffany Chow