Должен ли я использовать Elastic Search в качестве хранилища данных вместо MySQL?

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

Я посмотрел видео Laracon, так как мое приложение построено на Laravel 4.2, и я буду использовать эту оболочку для запроса: https://github.com/elasticsearch/elasticsearch

Тем не менее, я все еще собираюсь использовать базу данных MySQL для размещения данных, и ES ищет ее? Или лучше иметь ES дома и запрашивать данные.

Если я иду по первому пути, нужно ли выполнять CRUD-операции с обеих сторон, чтобы их обновлять?

Может ли ES справиться с такой нагрузкой, как MySQL? Имеются в виду сотни миллионов строк?

Я просто очень осторожен в начале всего этого. Я мог бы использовать небольшое направление, это было бы очень ценно. Я никогда не работал с поиском, кроме MySQL.

3

Решение

Я бы порекомендовал сохранить MySQL в качестве системы записи и выполнять все операции CRUD из вашего приложения с MySQL. Затем запустите машину ElasticSearch и периодически перемещайте данные из MySQL в ElasticSearch (только те данные, по которым вам нужно искать).

Затем, если ElasticSearch отключится, вы потеряете только функцию поиска — ваше основное хранилище данных все еще в порядке.

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

Чтобы получить данные в Elastic, вы можете сделать несколько вещей:

  1. Сделайте первоначальный импорт (очень медленный, очень большой), а затем просто скопируйте diff с процессом. Вы можете рассмотреть что-то вроде Mule ESB для перемещения данных (http://www.mulesoft.org/).

  2. Когда вы записываете данные из своего приложения, вы можете один раз записать в MySQL, а также записать те же данные в Elastic. Это обеспечивает получение данных в реальном времени в Elastic, но, конечно, если вторая запись в Elastic не удастся, вы пропустите данные.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]