Стоит ли использовать Elasticsearch в качестве основной бд?

Структура данных хорошо ложится в NoSQL. Нужен и поиск.
Встал вопрос, можно ли в качестве основной бд использовать Elasticsearch ? По сути это же и хранилище и поиск.
Подскажите, пожалуйста, какие могут быть проблемы?
  • Вопрос задан
  • 1425 просмотров
Решения вопроса 3
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Elasticsearch не является базой данных, а просто поисковым индексом. Использовать его как БД нельзя ни в коем случае.
- никакой консистентности
- никакого ACID
- управление доступом только в коммерческой версии за много денег
- чтобы изменить тип данных в документе надо изменить маппинг только через полное пересоздание индекса
- лимит по выдаче данных. Проблемы начинаются уже после первой тысячи в поиске ибо рассчитан он изначально на выдачу 1-3 результатов
- эластик ест столько памяти сколько есть на виртуалке. Дашь ей 2 Tb RAM и будь уверен - он займет все
Ответ написан
Я бы не использовал. По причини боли при мажорных обновлениях. А они бывают не редко.
1. Нужно переиндексировать все индексы в актуальную версию перед обновлением на следующую. (reindex api спасает, но все равно не приятно делать на горячей бд)
2. В мажорных обновлениях часто меняют типизацию. В NoSQL с нестрогой типизацией это всегда неожиданно.
3. Бекапы старых версий не развернуть на новых. Бекап с возрастом в пару лет становится тыквой прям по определению.
4. Проблемы производительности если хранить много лишних данных в индексах. (Кушает память на весь документ, а не только на нужные поля - часто срабатывает gc, который кушает проц. Уменьшается эффективность кеша)
5. И главное. Он асинхронный. т.е запись в выдаче появляется не сразу. Это иногда приводит к сложностям в коде
Ответ написан
Комментировать
@immelnikoff
Изучаю БД
Назначение ElasticSearch – быстрый поиск. Как в ElasticSearch вы будете поддерживать согласованность данных?
При этом, если в будущем планируется расширение на кластер, то надо помнить, что в ElasticSearch отсутствуют кластерные транзакции.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@vitaly_il1
DevOps Consulting
Как всегда ответ - "зависит". Зависит от ваших данных, от апликации. От того, насколько преимущества полнотекствого поиска перекрывают недостатки Elastic.
Посмотрите дискуссию здесь например https://discuss.elastic.co/t/elasticsearch-as-a-pr...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы