С развитием технологий человечество было благословлено мобильными телефонами, беспроводными сетями и, прежде всего, Интернетом. Интернет изобилует объемами данных, которые находятся на расстоянии одного клика от нас. Такие огромные объемы данных хранятся в электронном виде в базе данных, которая, в свою очередь, контролируется системой управления базами данных (СУБД). 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
- В то время как Cassandra использует табличную структуру для хранения данных, MongoDB использует объективную и ориентированную на данные модель.
- Cassandra использует кластер узлов для обеспечения высокой доступности данных. Принимая во внимание, что MongoDb использует один главный узел, тем самым ограничивая доступность его данных.
- Cassandra обеспечивает гибкую масштабируемость, поскольку все узлы в кольце равны. Напротив, MongoDB не предлагает гибкой масштабируемости, поскольку имеет один главный узел для хранения всех данных.
- В Cassandra нет встроенной структуры агрегации, поэтому она полагается на внешние инструменты. Принимая во внимание, что MongoDB имеет внутреннюю структуру агрегации, которая больше всего подходит для трафика данных малого и среднего размера.
- В то время как Cassandra предлагает такие компоненты, как таблицы памяти, журналы фиксации, кластер, центры обработки данных и узел, MongoDB поддерживает специальные запросы, хранилище файлов, коллекции, репликацию и транзакции.
Вывод
Cassandra и MongoDB являются системами управления базами данных NoSQL, но имеют несколько существенных отличий. Кассандра оказывается более важной при работе с транзакционными данными, но MongoDB более полезна для выполнения аналитики в реальном времени.
использованная литература
- https://dl.acm.org/doi/abs/10.1145/1773912.1773922
- https://bora.uib.no/bora-xmlui/bitstream/handle/1956/17228/kb-thesis.pdf?sequence=1&isAllowed=y