ElasticSearch против MongoDB против Cassandra для журналов рассылки - PullRequest
0 голосов
/ 26 июня 2019

У меня есть система почтовой рассылки, в которой мы отправляем 1-2 лакха почты каждый день, а затем сохраняем все действия по щелчкам / открытию этой почты.

В настоящее время это нормально работает в MySQL.

Но теперь, с увеличением трафика, мы столкнулись с некоторой проблемой производительности Mysql.

Так что мы думаем о переходе на Elastic / Cassandra / Mongo.

Мои возможные запросы включают в себя: а) получение пользователякоторые открыли / нажали на конкретную почту или нет.б) Расчет скорости открытия / клика для почты

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

Здесь можноБудет много типов запросов на чтение, поэтому будет сложно принять решение о разделении ключа / кластеризации, поэтому слишком много аггрегаций mzny будет выполняться на Кассандре.

Что нам следует использовать в этом случае и почему?

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

1 Ответ

0 голосов
/ 26 июня 2019

ELK stack (Elastic Search, LogStash, Kibana) - лучшее решение для этого. Насколько я использовал стек ELK, он быстр для обработки логов.

Кассандра определенно не правильный вариант.

Вы можете использовать MongoDB, так как большинство запросов являются запросами GET.

Но у меня есть несколько моментов, почему упругий поиск получает преимущество над Mongo для обработки журналов.

  1. Полнотекстовый поиск : в Elastic Search реализовано множество функций, таких как настраиваемое разбиение текста на слова, настраиваемое основание, поиск по фасетам и т. Д.

  2. Нечеткий поиск : Нечеткий поиск хорош для орфографических ошибок. Вы можете найти то, что ищете, даже если у вас есть орфографическая ошибка.

  3. Скорость : Эластичный поиск способен выполнять сложные запросы очень быстро.

Поскольку само название предполагает, что Elastic search сделан для цели поиска. И поиск в монго не такой быстрый, как в Elastic Search.

Но поддержание эластичного поиска также имеет свои проблемы.

см: https://apiumhub.com/tech-blog-barcelona/elastic-search-advantages-books/ https://interviewbubble.com/elasticsearch-pros-and-cons-advantages-and-disadvantages-of-elasticsearch/

Спасибо, думаю, это поможет.

...