Нет ничего лучше, чем решение Silver Bullet, все построено для решения конкретной проблемы и имеет свои плюсы и минусы. Вам решать, какое постановление проблемы у вас есть и какое решение лучше всего подходит для вашей проблемы. Используете ли вы Cassandra (NoSQL) или MySQL (RDBMS), все это зависит от требований вашей системы. Ниже приведены данные, которые помогут вам принять более правильное решение при выборе базы данных.
Зачем использовать NoSQL
В случае базы данных RDBMS сделать выбор довольно легко, потому что почти все базы данных, такие как MySQL, Oracle, MS SQL, PostgreSQL в этой категории, предлагают решения почти одинакового типа, ориентированные на свойство ACID. Когда дело доходит до NoSQL, решение становится трудным, потому что каждая база данных NoSQL предлагает свое решение, и вы должны понять, какая из них лучше всего подходит для вашего приложения / системы. Например, MongoDB подходит для случаев, когда ваша система требует хранилища документов без схемы. HBase может подойти для поисковых систем, анализирующих данные журналов, в любом месте, где требуется сканирование огромных двумерных таблиц без объединения. Redis создан для обеспечения поиска в памяти различных структур данных, таких как дерево, очередь, список ссылок и т. Д., И может хорошо подходить для создания таблицы лидеров в режиме реального времени, системы pub-sub. Аналогичным образом, есть другие базы данных в этой категории (в том числе Cassandra), которые подходят для различных задач. Теперь давайте перейдем к исходному вопросу и ответим на него один за другим.
Когда использовать Кассандру
Являясь частью семейства NoSQL, Cassandra предлагает решение для проблемы, когда ваше требование состоит в том, чтобы иметь очень тяжелую систему записи, и вы хотите иметь достаточно отзывчивую систему отчетов поверх этих хранимых данных. Рассмотрим вариант использования веб-аналитики, в котором данные журнала хранятся для каждого запроса, и вы хотите построить вокруг него аналитическую платформу для подсчета посещений по часам, по браузерам, по IP и т. Д. В режиме реального времени. Вы можете обратиться к сообщению в блоге (http://blogs.shephertz.com/2015/04/22/why-cassandra-excellent-choice-for-realtime-analytics-workload/), чтобы узнать больше о случаях использования Cassandra.
Когда использовать RDMS вместо Cassandra / NoSQL
Cassandra основана на базе данных NoSQL и не предоставляет ACID и свойство реляционных данных. Если у вас есть строгие требования к свойствам ACID (например, Финансовые данные), Cassandra не подойдет в этом случае. Очевидно, что вы можете сделать из этого работу, однако в конечном итоге вы напишете много кода приложения для обработки свойства ACID и вовремя потеряете для выхода на рынок. Также управление такой системой с помощью Cassandra будет для вас сложным и утомительным.