Понимание преимуществ PostgreSQL перед ElasticSearch

Мне нужна помощь в понимании решения.

Что входит в проект. Это проект Django. В нем есть таблица с пользователями, зависимая от нее таблица many to many, таблица с геолокацией и большое количество специфических данных, которые хранятся для каждого пользователя, назовем их LargeData. Теперь эти данные сохраняются в ElasticSearch, который привязан к данным из PostgreSQL, за исключением LargeData, они не сохраняются в PostgreSQL, а сохраняются в ES при регистрации пользователя.

Проблема. После получения данных из ЭС, программа дополнительно фильтрует эти данные, получается медленно, поэтому было решено перенести фильтрацию в ЭС или PostgreSQL.

  • Я рассмотрел оба варианта и пришел к выводу, что лучше использовать PostgreSQL для фильтрации, а ES для получения LargeData, так можно использовать удобный ORM в программе и иметь преимущества ES для поиска необходимых данных.
  • Другой программист пришел к выводу, что лучше оставить все данные в ES и добавить туда же фильтрацию данных.

Вопросы. Я думал, что лучше использовать SQL для реализации связей между таблицами, поиска по ним через ORM, решения проблем нормализации, но другой программист говорит, что можно хранить много данных в одном документе (что ES и делает), потому что он лучше с этим справится, потому что PostgreSQL становится медленным при большом количестве данных, становится длинным при запросах с геолокацией. И я подумал, зачем нужен PostgreSQL, если ES так хорош, вы можете сохранять данные в SQL, а затем просто перенести их в ES, и он будет обрабатывать все лучше, быстрее и удобнее. Зачем нужны эти нормализации, индексирование, если в какой-то момент SQL просто станет медленным, что бы вы ни делали.

Не могли бы вы дать мне еще несколько ссылок для чтения на эту тему?

Я пытался прочитать несколько тем по этому поводу, но для меня всегда один и тот же ответ: "ES удобнее и быстрее"

Вернуться на верх