Разница между Cassandra и MongoDB (с таблицей)

Оглавление:

Anonim

С развитием технологий человечество было благословлено мобильными телефонами, беспроводными сетями и, прежде всего, Интернетом. Интернет изобилует объемами данных, которые находятся на расстоянии одного клика от нас. Такие огромные объемы данных хранятся в электронном виде в базе данных, которая, в свою очередь, контролируется системой управления базами данных (СУБД). Cassandra и MongoDB - две такие базы данных.

Кассандра против MongoDB

Разница между Cassandra и MongoDB заключается в том, что в то время как первая работает с гибридной моделью данных, состоящей из табличной структуры и значения ключа, и использует модель архитектуры «одноранговой сети», модель данных последней является объектной и документально-ориентированной, и он использует модель «ведущий-ведомый».

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

MongoDB также является базой данных NoSQL с открытым исходным кодом и основана на модели «главный-подчиненный». Следовательно, когда главный узел не может функционировать, подчиненный узел может взять на себя роль главного узла, но этот переход занимает несколько минут, и в течение этого периода база данных не в состоянии отвечать на запросы. Это влияет на доступность данных. MongoDB также ограничена с точки зрения масштабируемости, поскольку только главный узел может записывать и принимать входные данные, а подчиненные узлы пригодятся только для чтения.

Таблица сравнения Cassandra и MongoDB

Параметр сравнения

Кассандра

MongoDB

Модель данных Это гибрид между парой "ключ-значение" и структурой таблицы, в которой используются строки и столбцы. Имеет объектную и документно-ориентированную модель данных.
Поддержка языков программирования Поддерживает C ++, Python, Java, JavaScript,.Net, Ruby, PHP, Scala, Perl, C #, Clojure, Go, Erlang, Haskell Поддерживает C, C ++, C #, Clojure, ColdFusion, Dart, Delphi, Ruby, Python, Scala, JavaScript, Java, Erlang, Go, Groovy, Haskell, PHP, Perl, Lisp, Lua, MatLab, PowerShell, Prolong, Smalltalk
Структура агрегирования Не имеет структуры агрегации, но требует помощи внешних инструментов, таких как Hadoop, Apache Spark и т. Д. Имеет встроенную структуру агрегирования.
Схема Он имеет гибкую схему, поэтому каждая строка в одном семействе столбцов не обязательно должна иметь одинаковое количество столбцов. В более новой версии MongoDB можно решить, нужна ли им схема, что делает базу данных более гибкой.
Поддержка языка запросов Cassandra Query Language (CQL) - это собственный язык запросов Cassandra. У него пока нет языка запросов, но он использует JSON-структуру

Что такое Кассандра?

Cassandra была разработана Facebook для поиска по входящим сообщениям и выпущена в 2008 году. Она стала проектом Apache в 2009 году и стала известна как Apache Cassandra.

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

Каждый узел в кластере узлов в Cassandra выполняет одни и те же функции и принимает все типы запросов. Cassandra не использует модель «ведущий-ведомый», но использует идею «узла-координатора». Это означает, что когда клиент выдает запрос, узел, который получает запрос, является координатором для конкретного запроса и координирует обмен ответом от узла, который фактически содержит информацию на запрос клиента, чтобы отправить результат клиенту..

Несколько известных пользователей Cassandra - это Netflix, Twitter, Viocom Hosting, Walmart Labs, Spotify, Reddit, Instagram и Facebook.

Что такое MongoDB?

MongoDB - это база данных NoSQL, которая была разработана компанией 10gen, ныне известной как MongoDB, Inc., в 2007 году для решения проблем, связанных с масштабируемостью.

Поскольку это база данных, ориентированная на документы, основная структура, используемая для хранения данных, находится в форме документов. В этом контексте документ - это базовая структура, которая используется для хранения одной единицы данных. Из-за отсутствия схемы документы хранятся с разной структурой и содержимым в одной коллекции.

Документы в MongoDB используют JSON в качестве языка запросов, поэтому его модель также может поддерживать объектно-ориентированное программирование.

MongoDB основана на модели «главный-подчиненный», в результате которой, если главный узел прекращает работу, база данных прекращает работу на несколько минут. Чтобы исправить это, MongoDB имеет набор реплик, который состоит из главного или основного узла и всех вторичных узлов. Это делает главный узел получателем всех запросов, отправленных клиентом, а также сохраняет все изменения в своем рабочем журнале. Подчиненные узлы используют журнал операций основного узла и реплицируют изменения в свои копии данных для поддержания согласованности.

Если основной узел умирает, MongoDB использует протокол связи, называемый «сердцебиение» и «выборы». С интервалом в две секунды члены набора реплик отправляют друг другу контрольные сообщения, если один из участников не отвечает в течение десяти секунд, он считается мертвым, и вторичные узлы информируются об этом. После этого набор реплик проводит выборы и голосует за выбор вторичного узла, который станет новым первичным узлом. Вторичный узел с наибольшим количеством голосов побеждает на выборах. В случае ничьей существует третий вид узлов, известный как Арбитр, который решает, какой вторичный узел станет первичным.

Abode, Google, Forbes, Facebook, eBay, BOSH, Cisco - одни из самых известных пользователей MongoDB.

Основные различия между Cassandra и MongoDB

  1. В то время как Cassandra использует табличную структуру для хранения данных, MongoDB использует объективную и ориентированную на данные модель.
  2. Cassandra использует кластер узлов для обеспечения высокой доступности данных. Принимая во внимание, что MongoDb использует один главный узел, тем самым ограничивая доступность его данных.
  3. Cassandra обеспечивает гибкую масштабируемость, поскольку все узлы в кольце равны. Напротив, MongoDB не предлагает гибкой масштабируемости, поскольку имеет один главный узел для хранения всех данных.
  4. В Cassandra нет встроенной структуры агрегации, поэтому она полагается на внешние инструменты. Принимая во внимание, что MongoDB имеет внутреннюю структуру агрегации, которая больше всего подходит для трафика данных малого и среднего размера.
  5. В то время как Cassandra предлагает такие компоненты, как таблицы памяти, журналы фиксации, кластер, центры обработки данных и узел, MongoDB поддерживает специальные запросы, хранилище файлов, коллекции, репликацию и транзакции.

Вывод

Cassandra и MongoDB являются системами управления базами данных NoSQL, но имеют несколько существенных отличий. Кассандра оказывается более важной при работе с транзакционными данными, но MongoDB более полезна для выполнения аналитики в реальном времени.

использованная литература

  1. https://dl.acm.org/doi/abs/10.1145/1773912.1773922
  2. https://bora.uib.no/bora-xmlui/bitstream/handle/1956/17228/kb-thesis.pdf?sequence=1&isAllowed=y

Разница между Cassandra и MongoDB (с таблицей)