Каковы варианты использования Elasticsearch по сравнению со стандартными запросами sql? [закрыто]

125

Я только начинаю работать с Elasticsearch, и одним из основных случаев использования, которые я видел, является его масштабируемость с поиском по большим наборам данных, но помимо этого, когда вы захотите использовать его вместо простого создания sql-запросов с традиционной СУБД?

Джеймс Дринкард
источник
3
Редактирование Вопросы для их улучшения (например , разъяснение, добавив дополнительную информацию и т.д.) приветствуется . Однако редактирование вопроса для изменения его на другой вопрос, которое приводит к аннулированию одного или нескольких ответов, противоречит политике переполнения стека. Ваше правка здесь сделала это. Политика заключается в том, что другие пользователи с правами редактирования должны заранее отменить такие изменения, что я сделал здесь. Если ваш новый вопрос по теме, вам предлагается задать новый вопрос , возможно, со ссылкой на этот для дополнительного контекста.
Макиен
Понял. Что ж, намерение было правильным, но не казнь.
Джеймс Дринкард,

Ответы:

78

Существует два основных варианта использования Elasticsearch:

  1. Текстовый поиск

Вам нужен Elasticsearch, когда вы выполняете много текстового поиска, когда традиционные базы данных РСУБД не работают очень хорошо (плохая конфигурация, действует как черный ящик, низкая производительность). Elasticsearch легко настраивается и расширяется с помощью плагинов. Вы можете быстро построить надежный поиск без особых знаний.

  1. Регистрация и анализ

Другой крайний случай заключается в том, что многие люди используют Elasticsearch для хранения журналов из различных источников (для их централизации), чтобы они могли анализировать их и разобраться в этом. В этом случае Кибана становится кстати. Он позволяет подключаться к кластеру Elasticsearch и сразу же создавать визуализации. Например, Loggly построен с использованием Elasticsearch и Kibana.

Имейте в виду, что вы не захотите использовать Elasticsearch в качестве основного хранилища данных. Причины здесь: насколько надежен ElasticSearch в качестве основного хранилища данных против таких факторов, как потеря записи, доступность данных.

Обновить

Я чувствовал, что вторая часть больше не остроумна, это то, что Elastic как компания показала в прошлом году. С текущим движением DevOps, конвейерами CI / CD, увеличением количества метрик из различных источников, ELK фактически стал выбором для мониторинга инфраструктуры, это уже не просто распределенная система текстового поиска RESTful. В нем потрясающий набор товаров:

  • Logstash (тонны вводимых данных)
  • Удары
    • Filebeat
    • Metricbeat
    • Packetbeat
    • Winlogbeat
  • Kibana
    • график
    • Timelion
  • X-Pack (премиум)
    • Оповещения
    • Составление отчетов
    • Безопасность
    • Машинное обучение
    • Межцентровые показатели

Экосистема, созданная сообществом, растет вокруг стека ELK, который расширяет текущие функции, некоторые из них заслуживают упоминания:

  • ElastAlert
  • Поисковая охрана
Эвалдас Буйнаускас
источник
Почему ограничивает эластичный поиск, который не используется в качестве механизма запросов для стандартных систем, таких как pos или erp, поскольку я не понимаю, что компании тратят много энергии только на преобразование данных из sql в эластичный поиск для аналитики.
pannu
В старых версиях это не рекомендовалось, сейчас не знаю.
Эвалдас Буйнаускас
Вы сказали, что из-за плохой конфигурации СУБД работает не очень хорошо. Означает ли это, что при хорошей настройке вы можете выполнять текстовый поиск (нечеткий поиск) не хуже, чем с EleasticSearch?
Legends
2
@Legends Я действительно имел в виду плохие параметры конфигурации. Мой собственный опыт ограничен полнотекстовым поиском MSSQL, а количество настроек в MSSQL не может сравниться с Elasticsearch. Текстовый поиск в СУБД - это особенность, а в Elasticsearch - суть.
Эвалдас Буйнаускас
Я много искал в Интернете, но не нашел ничего конкретного. Сколько данных (только приблизительно) должно иметь приложение, чтобы мы могли подумать о переходе на ElasticSerach ?, потому что обслуживание распределенных систем является сложной задачей. Например, поиск в текстах комментариев хорошо проиндексирован в mongodb. (Я не говорю о расширенных функциях ES, чистом текстовом поиске)
Иван Санчес
27

Чтобы добавить к другому ответу, ведение журнала по-прежнему является основным вариантом использования, как и поиск, но теперь метрики и аналитика становятся более важными.

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

С появлением Web 2.0 статические веб-страницы стали динамическими, и социальные сети повсюду вокруг нас. Все пишут в Твиттере, публикуют сообщения, ведут блог, ведут видеоблог, делятся фотографиями, болтают и комментируют. Появляется Интернет вещей (IoT) - быстрорастущая сеть подключенных устройств, которые собирают и обмениваются данными, например сенсоры и интеллектуальные устройства. Здесь есть несколько отличных примеров.

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

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

Один из архитекторов Elasticsearch, с которым я разговаривал, сказал, что 80% данных, с которыми Elasticsearch работает в компаниях, неструктурированы, а 20% - структурированы. Это неструктурированные данные, на которые компании обращают внимание, чтобы обнаружить редкие или необычные шаблоны данных. Они также используют Elasticsearch для отслеживания шаблонов данных. Например, крупный розничный торговец отслеживает в реальном времени с помощью Elasticsearch, чтобы обеспечить достаточное количество денег в магазинах, чтобы люди могли обналичивать чеки в дни зарплаты.

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

Вот несколько дополнительных ресурсов, которые более подробно освещают эту тему:

Джеймс Дринкард
источник