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

Структура данных хорошо ложится в NoSQL. Нужен и поиск.
Встал вопрос, можно ли в качестве основной бд использовать Elasticsearch ? По сути это же и хранилище и поиск.
Подскажите, пожалуйста, какие могут быть проблемы?
  • Вопрос задан
  • 826 просмотров
Решения вопроса 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...
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
PeoplePass Москва
от 150 000 до 250 000 руб.
TalentTech Москва
от 200 000 до 300 000 руб.
ManyChat Москва
от 180 000 до 250 000 руб.