Cassandra или MySQL/PostgreSQL?

У меня есть огромная база данных (kinda wordnet) и хочу знать, проще ли использовать Cassandra вместо MySQL | PostrgreSQL

Всю свою жизнь я использовал MySQL и PostrgreSQL, и я мог легко думать о реляционной алгебре, но несколько недель назад я узнал о кассандре и о том, что она используется в Facebook и Twitter.

Это более удобно?

Какие СУБД обычно используются в настоящее время для хранения социальных сетевых данных, отношений между объектами, wordnet?

Ответ 1

Существует множество различных вариантов баз данных "NoSQL". Если ваше приложение действительно похоже на Wordnet, возможно, вам стоит посмотреть на базу данных графа, такую ​​как Neo4j.

Ответ 2

Нет ничего похожего на Silver bullet, все построено для решения конкретной проблемы и имеет свои плюсы и минусы. Это зависит от вас, какие у вас проблемы и что лучше всего подходит для решения этой проблемы. Используете ли вы Cassandra (NoSQL) или MySQL (RDBMS), все это зависит от ваших системных требований. Ниже приведены данные, которые помогут вам принять лучшее решение при принятии решения о базе данных.

Зачем использовать NoSQL

В случае базы данных RDBMS выбор довольно прост, потому что почти все базы данных, такие как MySQL, Oracle, MS SQL, PostgreSQL в этой категории, предлагают почти такие же решения, ориентированные на свойство ACID. Когда дело доходит до NoSQL, решение становится сложно, потому что каждая база данных NoSQL предлагает другое решение, и вам нужно понять, какой из них лучше всего подходит для вашего приложения/системного требования. Например, MongoDB подходит для использования в тех случаях, когда ваша система требует хранения документов без схемы. HBase может быть подходящим для поисковых систем, анализируя данные журнала. Любое место, где требуется сканирование огромных двумерных таблиц без соединения. Redis создан для обеспечения In-Memory поиска разновидностей структур данных, таких как дерево, очередь, список ссылок и т.д., И может быть хорошо подходит для создания в режиме реального времени таблицы лидеров, системы pub-sub типа. Аналогичным образом в этой категории есть другие базы данных (включая Cassandra), которые подходят для разных задач. Теперь давайте перейдем к исходному вопросу и ответим на них один за другим.

Когда использовать 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 было бы сложным и утомительным для вас.

Ответ 3

Я бы предложил проанализировать ваш запрос.

  • Если вы собираетесь использовать больше кластеров, машины берут NoSQL
  • Если ваша модель данных сложна - требуется, чтобы эффективные структуры занимали NoSQL (без ограничений с типом столбцов)
  • Если вы вписываетесь в несколько машин без весов, и вам не нужна суперпроизводительность для многопроцессорности (например, в социальной сети, где много пользователей отправляет HTTP-запрос), и вы не думаете, что вы предполагаете продажность принимать РСУБД (у Postgres есть некоторые хорошие функции и структуры, которые вы можете использовать, например тип столбца массива).

Кассандра должна работать лучше с большими масштабами данных, многоцелевыми. neo4j - было бы лучше для специальных структур, графиков.

Ответ 4

Кассандра и другие магазины NoSQL используются для социальных сайтов из-за необходимости массовых операций на основе записи. Не то, что MySQL и Postgres не могут этого достичь, но NoSQL требует гораздо меньше времени и денег, вообще говоря.

Похоже, вы можете взглянуть на Neo4J, хотя, с точки зрения потребностей вашей объектной модели.

Ответ 5

Все разные продукты, и все они имеют свои pro и conn. Какую проблему вы должны решить?

Огромный, как в TB?