Возможности аналитики в Elasticsearch

Добрый вечер!

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

  • Искать в массиве пользователей со схожими интересами (например найти всех пользователей в радиусе 3 км, которые продают коньки и тем,кто искали коньки выдать сообщение)
  • Искать цепочки пользователей со схожими интересами (например пользователь 1 продаёт покрышки, пользователь 5 просматривал покрышки пользователя1, ...пользователь N просматривал свечи пользователя N-1, тогда пользователю N показать товары пользователя 1)
    и прочие надобности, которые могут возникнуть в этой предметной области - часы/дни/ месяца, когда более всего купили шкафов и тд и тд...

Если Elastic это может, то подскажите пожалуйста примерно как это достигается, использованием какого функционала, и раздел документации который надо прочитать, чтобы проникнуться этим вопросом (а то в открытом доступе информации не очень много на эту тему)

Спасибо!

Здравствуйте!

  • Искать в массиве пользователей со схожими интересами (например найти всех пользователей в радиусе 3 км, которые продают коньки и тем,кто искали коньки выдать сообщение)

Гео поиск есть.

Искать цепочки пользователей со схожими интересами (например пользователь 1 продаёт покрышки, пользователь 5 просматривал покрышки пользователя1, ...пользователь N просматривал свечи пользователя N-1, тогда пользователю N показать товары пользователя 1)

Про поиск по цепочкам пользователей ничего не могу сказать. Не представляю как такое реализовать.

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

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

Спасибо большое за ответ!

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

Но я думаю, даже если не получится реализовать те требования к аналитике, которые от меня хотят, ES можно будет использовать для полнотекстового поиска, в Clickhouse есть fulltext search? За короткое время, что я изучаю ES, у меня сложилось впечатление, что полнотекстовый поиск - одна из сильнейших особенностей Elastic

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

Если в качестве аналитики вам просто нужны графики, такие как гистограммы или круговые это с легкостью, скорость построения их тоже очень быстрая. Однако потребляет много кучи java, так что нюансов много и эластик достаточно капризный на слабом железе. Начните свой путь с Кибаны, там есть построитель диаграмм. Все что можно построить там, получиться перенести в ваш проект.

На счет ClickHouse и полнотекстового поиска не могу сказать, мы не работали с ним, а просто рассматривали для аналитики. Думаю, что Elasticserach будет более заточен под поиск, чем ClickHouse т.к. он позиционируется именно как поисковик.

IvanTushin, спасибо за ответ. Уточните пожалуйста, что Вы имеете ввиду, говоря,что большой объем данных не заведется на HDD дисках, Вы на чём храните свои данные? Я планирую выбить средства на SAS NL, для небольших компаний самое то.

Про построитель диаграмм в Kibana я в курсе, был приятно удивлён, как там реализовано это дело. Но, как я понял (могу ошибаться естественно) в кибане можно в основном отображать различные агрегации, а мне нужно то, что я описал в первом посте.

Слышал просто, как на одном из забугорных митапов гражданин рассказывал, как загоняет в elastic данные по ДНК геному различных людей и на выходе получает результаты о родстве, предках и тд, меня это весьма впечатлило.

Сам я не сис админ, а просто совмещаю обязанности, поэтому в железе не могу назвать себя экспертом. У нас используются два SCSI\DiskTOSHIBA______MG06ACA800E в RAID0 на слабой ноде под архивные данные. Так вот, поиск по 2Тб индексу занимает минуты. Время поиска очень сильно разняться от типа поиска, сложности и того как именно проиндексированы данные, а это очень не простой вопрос. Мы каждый год переделываем структуру индекса; все приходит с опытом и пониманием как это работает.

Если вы будете использовать SSD те же индексы на 2Тб выполняются за миллисекунды.

Слышал просто, как на одном из забугорных митапов гражданин рассказывал, как загоняет в elastic данные по ДНК геному различных людей и на выходе получает результаты о родстве, предках и тд, меня это весьма впечатлило.

Да, есть такая штука как MLT да и вообще в эластике можно в условии ИЛИ задать минимальный процент совпадений из условия. Но сразу скажу, на изучение всего этого богатого функционала потребуется время.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.