Стратегическая проблема: смешивание реляционной и неочищенной БД?

StackOverflow https://stackoverflow.com/questions/3208821

Вопрос

Там было много разговоров о контра-революционных базах данных NoSQL, такими как Cassandra , CouchDB , Гипертабель , mongodb , Проект Voldemort , Bigtable и многое другое. Насколько я обеспокоен, самые сильные плюсы намного масштабируемость, производительность и простота.

Я серьезно учитываю, чтобы предложить, чтобы использовать некоторую не реляционную БД для нашего следующего проекта. Однако некоторые команды составляют некоторые фанатики RDBMS, поэтому убедительный жесткий переключатель может быть невозможен в некоторых случаях только из-за эмоциональных причин. Кроме того, когда дело доходит до сложных моделей данных, я лично все еще верю в силу RDBMS с их низкоуровневым механизмами принудительного принуждения.

Теперь приходит мой вопрос: мне было интересно, если кто-то мог бы серьезно рассмотреть вопрос, используя оба, RDBMMS и неаллирусной БД в новом проекте: комплекс, но не производительность, критическая модель данных все равно Быть реализованным с использованием реляционной модели и дБ, в то же время, в то же время, пока все, критические характеристики, но простые модели будут реализованы с невязкой БД. Кроме того, такая мягкая смена парадигмы было бы намного проще продавать на некоторых очень эмоциональных членах команды, чем жесткий.

У кого-нибудь рекомендовали такой подход? Или вы бы предпочли порекомендовать черное или белое, то есть реляционный или неавторский подход? Все комментарии очень приветствуются!


P.S.: Любая идея, если такая смесь хорошо работает с пружиной и Hibernate / JPA?

Это было полезно?

Решение

ROB CONRY umery недавно написал о его Опыт создания своего популярного веб-приложения Tekpub с помощью MongoDB и MySQL, подчеркивая сильные стороны обоих:

Подробное прочитанное вещество (информация о учетной записи, постановки и информация об эпизоде) идеально подходит для «прямо сейчас», как MongoDB. «Что произошло вчера» вещи идеально подходит для реляционной системы.

на высоком уровне, граб разрывает данные их приложения на два спецификации: данные выполнения и исторические данные. Например, текущее состояние корзины пользователя, например, отлично подходит для хранения в MongoDB. Это блюб объекта, который постоянно мутирует. Чтобы сохранить историческую запись того, что вошло и из корзины; когда это произошло; Состояние касса отлично подходит для реляционных, табличных данных в MySQL.

Он суммирует с этим:

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

Обновление мая 2016 года (6 лет спустя)

Это становится только более верным за последние 6 лет. Сейчас распространено, чтобы увидеть базы данных NoSQL-базы данных для питания транзакционных магазинов и традиционных баз данных реляционных баз данных.

Другие советы

Я использую оба.RDBMS хорош для сложного анализа, отчетов и данных, доступных по-разному по нескольким пользователям.NoSQL отлично, когда я смотрю на данные с перспективы одиночных пользователей.Вопрос, который я спрашиваю себя: «Кто обращается к этим данным?».Если ответ 1 пользователь, я использую NoSQL для его хранения.

Конечно, есть в других случаях, когда это уместно, но это только один пример.

Как вы упомянули, noSQL проще для хранения, и он может привести к вам подходящим комплексным кодом для поддержания данных ... Например, хранение списка подключений.

Нереляционные базы данных ключей-значений лучше всего используются для хранения и кэширования BLOB.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top