mobilesfinks
@mobilesfinks
сисадмин *nix

Чем MongoDB лучше ElasticSearch?

Поставили задачу развернуть монгу в кластерном режиме. Почитал документацию на оффсайте монги. Поднял 2 ВМ с монгой. Нашёл статью про это всё дело на хабре и ещё эту.
Я не совсем понимаю зачем такие дикие танцы с бубном. У нас получается Конфиги на одном сервере, проксирование запросов на другом сервере, сами данные на третьем сервере.
Я конечно дико извиняюсь, но это полный отстой. После эластика это кажется каким то велосипедом.
Не вдаваясь в холливары объясните пожалуйста в двух словах чем MongoDB круче ElasticSearch.

Пояснение для тех кто не в курсе:
В эластике роль ноды настраивается в файле конфига. ВСЁ. В конфиге выставил, что нужно - 5 строк. Запустил ноду, запустил вторую. Открыл web морду плагина на любой из этих нод. И наблюдаешь как они собрались в кластер и раскидали шарды. (Я настраивал кластер с 4-мя нодами)

В монге нужно подкрутить mongos, нужно настроить сервер конфигураций, нужно запустить шард сервера.... Потом меня убила строчка в документации "Add each shard to the cluster using the sh.addShard() method,"
Чё ПРАВДА - руками добавлять? А где наблюдать работу кластера? В общем я пока не в восторге от монги.

Так что если кто то может высказать своё личное мнение исходящее из опыта управления и использования монги и эластика - с удовольствием выслушаю.
  • Вопрос задан
  • 9245 просмотров
Решения вопроса 1
@jaymecd
JaymecD
Согласен с un1t и с lega, но есть пара замечаний:
- elasticsearch: fulltext и комплексный поиск по проекциям (модель для чтения). как основное хранилище не очень советую, т.к. убить ноды это 2 случайных клика в веб морде.
- mongodb: основное хранилище (модель для записи), гибкая структура данных, скорость записи.

Посмотрите на mms.mongodb.com - система деплоя, мониторинга и бэкапа mongodb.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
un1t
@un1t
Полнотекстовый поиск сравнивать тут конечно смысла нет.
А вот если мы рассматриваем Монгу и ЭластикСерч как БД, то вставка записей в монгу происходит гораздо быстрее.
И монговский шел гораздо удобнее чем курлом JSON-ы отправлять. Есть еще такая прикольная штука как bulk operations.
Эластик в качестве БД люди используют, но синтаксис для таких целей кажется монструозным.
Еще монга schemaless, в эластике надо указывать mappings.
Ответ написан
@lega
Шардинг - это "инструмент" не для новичков, наверно поэтому в монге дан низкоуровневый подход к построению архитектуры с расчетом на падение нод и т.п., что будет с еластиком если одина из 4-х нод умрет?
В любом случае можно сделать скрипт (или взять готовый где-то) где по "одному клику" будет шардинг собираться и расширяться.
Ответ написан
Ваш ответ на вопрос

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

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