Вход
Регистрация

Elasticsearch – поиск для самых больших

Elasticsearch – поиск для самых больших

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

Требования к современным системам быстрого внутреннего поиска постоянно меняются и растут. Меняется и сама структура данных. Если раньше это были единообразные записи в таблицах БД, то теперь чаще речь идет об «озерах данных», содержащих неструктурированную информацию, объектных хранилищах S3 и т.д. 

Не так уж много существует поисковых решений, способных хорошо показать себя в подобной среде, особенно если дело касается поиска среди многих и многих петабайт. Одной из самых популярных в области Big Data поисковых систем такого рода является, безусловно, Elasticsearch.

Первая версия поискового движка увидела свет в 2010 году. В 2012 году создатель Elasticsearch Шай Бейнон (Shay Banon) зарегистрировал одноименную компанию, задачей которой стала коммерциализация изначально открытого решения. Позднее она была переименована в Elastic.

В настоящее время возможностями Elasticsearch пользуются множество всемирно известных компаний, среди которых GitHub, Netflix, Uber, Slack, Microsoft и пр. Так, к примеру, для организации поиска по своим бездонным хранилищам Netflix постоянно использует 700-800 узлов Elasticsearch, объединенных в 100 кластеров. Uber обрабатывает по тысяче поисковых запросов в секунду и более, а GitHub индексирует более 8 млн репозиториев, обслуживая более 4 млн пользователей.

Принципы работы Elasticsearch

В основе Elasticsearch лежит написанный на Java поисковый движок, использующий свободную библиотеку скоростного полнотекстового поиска Lucene и поддерживающий JSON REST API. К ключевым достоинствам Elasticsearch, помимо высочайшей производительности и возможности практически безграничного горизонтального масштабирования, можно отнести автоматическую индексацию новых объектов, которые становятся доступными сразу после загрузки в БД в соответствии с концепцией NoSQL. 

Кроме того, поисковая система оснащена широким набором настраиваемых фильтров, позволяющим реализовать мультиарендность и использовать нечеткий поиск. Также Elasticsearch снабжен анализаторами, в автоматическом режиме выполняющими токенизацию текста (разбиение на элементарные элементы – слова, знаки препинания и пр.), лемматизацию, стемминг и другие преобразования.

Elasticsearch можно назвать документно-ориентированной базой данных с поддержкой многопоточности. Поиск в реальном времени может осуществляться по документам любого типа при помощи API-интерфейсов библиотеки Lucene и запросов GET.

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

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

Также по теме

Elastic Stack

Важно отметить, что в своем типичном воплощении Elasticsearch не используется в отрыве от других продуктов Elastic – Logstash, Kibana и FileBeat. Вместе они образуют комплексное решение, получившее общее название Elastic Stack.

Logstash – инструмент сбора, обработки и отправки в хранилище всевозможных событий из разных источников – журналы, пакеты, события, транзакции, временные метки и т.д. Logstash написан на JRuby и работает на JVM, что позволяет запускать его на разных платформах. 

В качестве источников данных для этого инструмента могут служить социальные сети, новостные агрегаторы, внутренние данные систем электронной коммерции, CRM, финансовые показатели, телеметрия мобильных устройств, сенсорные сети IoT, HTTP-запросы и ответы на них, журналы Apache или Windows, а также многое другое.

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

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

FileBeat – легковесный серверный агент, с помощью которого можно организовать отправку логов серверов в Logstash. Этот элемент стека не является обязательным, однако зачастую оказывается весьма полезен в инфраструктурах определенных типов.

Особенности лицензирования

Все элементы Elastic Stack доступны для изучения и использования в виде исходных кодов в репозитории GitHub. До недавнего времени они распространялись по лицензии Apache 2.0, однако в январе 2021 года Elastic объявила о переходе на лицензию SSPL (Server Side Public License), накладывающую некоторые ограничения на коммерческое использование. 

Теперь эксплуатанты Elastic Stack могут продолжать пользоваться им безвозмездно только в том случае, если все остальные компоненты, вовлеченные в работу сервиса, также будут публиковаться в виде открытого исходного кода. 

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

В то же время, основное коммерческое предложение Elastic состоит вовсе не в этом. Различные варианты лицензий, такие как Gold, Platinum и Enterprise, включают в себя многочисленные дополнительные инструменты, направленные на расширение функциональности Elastic Stack.

·      Gold включает в себя механизмы авторизации через Active Directory/LDAP, дополнительные инструменты внутреннего аудита, расширенные возможности службы оповещений и, разумеется, техническую поддержку в рабочие часы.

·      Platinum в дополнение к вышеперечисленному предлагает встроенные инструменты машинного обучения, поддержку ODBC/JDBC, настройки гранулярного доступа вплоть до отдельных документов, кросс-кластерную репликацию и ряд других возможностей, включая круглосуточную техподдержку. На сегодняшний день это самый востребованный тип лицензий на Elastic Stack.

·      Enterprise, помимо возможностей Platinum, включает в себя решение Elastic Cloud Enterprise, оркестратор Elastic Cloud on Kubernetes, инструмент киберзащиты конечных устройств Endgame, а также поддержку неограниченного количества проектов на базе Elastic.

ПОЛУЧИТЕ КОНСУЛЬТАЦИЮ ЭКСПЕРТА!

Никита Комиссаров, руководитель направления Средства разработки


Самое читаемое

1857 | Новости SyssoftСистемный Софт и INOUT Проект заключили партнерское соглашение в области корпоративных систем управления проектами 1165 | Записи вебинаровДоска VK WorkSpace: Единое пространство визуализации идей, задач, решений 611 | Новости вендоровOrion Soft выпустил zVirt 4.5 с поддержкой вложенных папок виртуальных машин и ускоренной миграцией из любых систем виртуализации 439 | ВебинарыAmplicode: инструменты для Spring-разработчиков и эффективность для бизнеса. 11.12.25 11:00 МСК 400 | Новости вендоровContent AI выпустила обновление IDP-платформы ContentCapture 14.11 238 | Новости вендоровЗавершение продаж ViPNet Coordinator HW 4 190 | Офис и коммуникацииКак выбрать PDF-редактор для компании: от критериев до внедрения 165 | Акции и скидкиСкидка 10% на новые лицензии и обновления Effector Saver 122 | Акции и скидкиСпециальные условия на приобретение Pragmatic Tools Migrator до конца 2025 года 119 | Акции и скидкиnanoCAD Механика PRO 2.0 со скидкой до 50% только до конца 2025 года 115 | Акции и скидки Loudplay Pro по цене Loudplay Basic - до конца года! 59 | Акции и скидкиПереход на РЕД СОФТ: максимум выгоды до 26 декабря
2516 | Новости Syssoft«Системный софт» помогает Бюро кредитных историй «Скоринг Бюро» повысить защиту информации за счет внедрения решения Kaspersky Unified Monitoring and Analysis Platform 1972 | Новости вендоровWondershare PDFelement 12 — обновлённый ИИ-помощник и инструменты для работы с документами 1857 | Новости SyssoftСистемный Софт и INOUT Проект заключили партнерское соглашение в области корпоративных систем управления проектами 1165 | Записи вебинаровДоска VK WorkSpace: Единое пространство визуализации идей, задач, решений 1098 | Записи вебинаровИмпортозамещение в действии: как построить управление ИТ-инфраструктурой на базе RuDesktop 792 | Новости вендоровВыпущено новое поколение САПР T-FLEX CAD 18 от компании «Топ Системы» 766 | Новости вендоровВыпущен коммерческий релиз nanoCAD Землеустройство 25 760 | SoftPowerKaspersky Threat Intelligence: глобальные данные для локальной защиты 691 | Новости вендоровКомпания «Нанософт» выпустила новые модули NSR Specification для автоматизации проектирования с помощью технологии ИИ 686 | Новости вендоровWondershare EdrawMax 14.7 — новые ГОСТ-символы и расширенные возможности ИИ-ассистента 683 | Новости вендоровToMoviee AI — креативная студия на базе искусственного интеллекта от Wondershare 641 | Записи вебинаровVMmanager: Быстрый старт и эффективное управление вашей ИТ-инфраструктурой 636 | Записи вебинаровИнформационное моделирование в nanoCAD GeoniCS: модуль «Сечения» 630 | Записи вебинаровCommuniGate Pro: российская замена Microsoft Exchange Server 611 | Новости вендоровOrion Soft выпустил zVirt 4.5 с поддержкой вложенных папок виртуальных машин и ускоренной миграцией из любых систем виртуализации 605 | Новости вендоровИзменения в портфеле «Лаборатории Касперского»