Вопрос

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

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

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

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

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

Решение

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

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

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

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

В случае базы данных RDBMS сделать выбор довольно просто, потому что почти все базы данных, такие как MySQL, Oracle, MS SQL, PostgreSQL в этой категории, предлагают почти одинаковые решения, ориентированные на свойство ACID.Когда дело доходит до NoSQL, принятие решения становится трудным, потому что каждая база данных NoSQL предлагает разные решения, и вы должны понять, какое из них лучше всего подходит для вашего приложения / системных требований.Например, MongoDB подходит для случаев использования, когда вашей системе требуется хранилище документов без схемы.HBase может подойти для поисковых систем, анализа данных журналов, любого места, где требуется сканирование огромных двумерных таблиц без соединений.Redis создан для обеспечения поиска в памяти различных структур данных, таких как дерево, очередь, список ссылок и т.д., И может хорошо подойти для создания доски лидеров в реальном времени, системы типа 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 было бы для вас сложным и утомительным.

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

  1. Если вы собираетесь использовать больше кластеров, машины используют NoSQL
  2. Если ваша модель данных сложная - требуйте эффективных структур, используйте NoSQL (без ограничений по типу столбцов)
  3. Если вы умещаетесь на нескольких машинах без масштабирования, и вам не нужна сверхпроизводительность для множественных запросов (как, например, в социальной сети, где множество пользователей отправляют http-запросы), и вы не думаете, что вам нужно использовать RDBMS для продажи (в Postgres есть несколько хороших функций и структур, которые вы можете использовать, например, тип столбца array).

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

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

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

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

Огромный, как при туберкулезе?

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