В этой статье сравним MongoDB и Cassandra — две самые популярные NoSQL базы данных.

На выбор подходящей СУБД для проекта может уйти довольно много времени. Требования к базе данных могут включать упрощенную модель данных, гарантию транзакций, производительность чтения/записи, горизонтальное масштабирование и отказоустойчивость.

Для начала нужно определиться с типом СУБД: SQL или NoSQL. Если вы выберите NoSQL, то дальше появляется вопрос: MongoDB или Cassandra. Да, на рынке существует множество NoSQL-баз данных, но среди них лидируют MongoDB и Apache Cassandra. Оба продукта похожи, но все-таки разные. Давайте сравним эти две СУБД, чтобы сделать правильный выбор.

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

Краткий обзор Cassandra и MongoDB

Что такое MongoDB

MongoDB — это кросс-платформенная документо-ориентированная база данных, обеспечивающая высокую производительность, высокую доступность и простое масштабирование. MongoDB использует концепции документа и коллекции. Написана на C++, C и JavaScript. Работает в операционных системах: Windows Vista и выше, Linux, OS X 10.7 и выше, Solaris и FreeBSD.

MongoDB — это отличное решение для работы с BigData со следующими преимуществами:

  • Отсутствие схемы.

  • Документы одной коллекции могут различаться по количеству полей, содержанию и размеру. Другими словами, разные сущности не должны быть идентичными по структуре.

  • Простота масштабирования.

  • Хранение данных, используемых в текущий момент, во внутренней памяти, что обеспечивает более быстрый доступ.

  • Хранение данных в виде JSON-документов.

  • Поддержка динамических запросов (запросы на основе документов).

  • Отсутствие сложных запросов с JOIN.

  • Отсутствие необходимости сопоставления объектов приложения с объектами базы данных.

Что такое MongoDB
Что такое MongoDB

Что такое Cassandra

Apache Cassandra — это бесплатная нереляционная отказоустойчивая СУБД, позволяющая создавать масштабируемые и надежные хранилища огромных наборов данных. Cassandra написана на языке Java корпорацией Facebook в 2008 году и передана в Apache Software Foundation в 2009 году. Система представляет собой гибридное решение NoSQL, сочетающее в себе модель хранения данных, основанную на колоночных семействах (ColumnFamily), с концепцией ключ-значение (key-value).

Наиболее значимые преимущества Cassandra:

  • Возможность получить время отклика порядка миллисекунд (менее 10 мс).

  • Достижение высокой масштабируемости с точки зрения записи. В Cassandra можно писать данные с сумасшедшей скоростью. И в некоторых ситуациях это важно, например, когда мы перемещаем большие объемы данных между записями.

  • Отказоустойчивость. Падение одного из узлов не приводит к отказу всей системы.

  • Простота. По сравнению с привычными реляционными базами данных, Cassandra проще для изучения и работы.

Что такое Cassandra?
Что такое Cassandra?

Давайте сравним MongoDB и Cassandra по нескольким параметрам, приведенным в таблице ниже.

Параметр

MongoDB

Cassandra

Веб-сайт

www.mongodb.com

cassandra.apache.org

Дата релиза

2009

2008

Разработчик

MongoDB, Inc

The Apache Software Foundation

Лицензия

Открытый исходный код. Server Side Public License (SSPL) и драйверы под Apache License.

Открытый исходный код. Apache License 2.0.

Стоимость

Есть как бесплатная / с открытым исходным кодом, так и коммерческая версия.

Есть как бесплатная / с открытым исходным кодом, так и коммерческая версия.

Окружение

Разрабатывается MongoDB Inc. Кроссплатформенная.

Развивается фондом фонда Apache Software Foundation и применяется в распределенных окружениях.

Поддерживаемые операционные системы

Linux, OS X, Solaris, Windows.

BSD, Linux, OS X, Windows.

Поддерживаемые языки программирования

Actionscript, C, C#, C++, Clojure, ColdFusion, D, Dart, Delphi, Erlang, Go, Groovy, Haskell, Java, JavaScript, Lisp, Lua, MatLab, Perl, PHP, PowerShell, Prolog, Python, R, Ruby, Scala, Smalltalk.

C#, C++, Clojure, Erlang, Go, Haskell, Java, JavaScript, Perl, PHP, Python, Ruby, Scala.

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

Довольно проста в использовании.

Довольно проста в использовании.

Производительность

Быстрое выполнение запросов благодаря простой схеме.

Высокая масштабируемость и линейная производительность.

Масштабируемость

Масштабируемость при записи ограничена.

Высокая масштабируемость.

Скорость

С точки зрения операций чтения MongoDB не быстрее Cassandra.

Быстрее для простых запросов.

Схема

Не требует схемы.

Необходимость предварительного определения столбцов.

Поддерживаемые языки запросов

В качестве языка запросов используется JavaScript и JSON-документ.

Язык запросов CQL.

Высокая доступность

Один мастер

Мультимастер

Нативная агрегация

Встроенный фреймворк агрегации.

Нет встроенной агрегации. Для этого используются инструменты вроде Hadoop, Spark.

Вторичные индексы

Вторичные индексы — это одна из основная конструкций в MongoDB.

Доступна только поверхностная поддержка вторичных индексов.

Выразительная объектная модель

Поддержка богатой и выразительной объектной модели.

Довольно традиционная структура таблиц со строками и столбцами.

Техническая поддержка

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

Техническая поддержка Cassandra осуществляется сторонними компаниями, такими как Datastax, URImagination, Impetus и другими.

Активность сообщества

Сообщество MongoDB проводит различные вебинары и мероприятия, есть юзер группы и курсы в MongoDB University.

Apache Software Foundation предлагает сайт сообщества со списком рассылки, IRC, ссылками на книги и статьи. Эту информацию можно найти по адресу http://cassandra.apache.org/community/.

Документация

docs.mongodb.com/manual

cassandra.apache.org/doc/latest

Какие компании используют MongoDB и Cassandra

Оба решения достаточно гибки, чтобы соответствовать требованиям бизнеса.

Cassandra:

  • AppScale. AppScale — это вычислительная платформа с открытым исходным кодом, предназначенная для развертывания приложений Google App Engine в общедоступных, частных облаках и локальных кластерах.

  • Constant Contact. Constant Contact — это платформа для электронного маркетинга.

  • Digg. Digg — это новостной веб-сайт без централизованной модерации. Пользователи размещают на сайте истории и новости, и сами решают, попадет ли информация на главную страницу.

  • Facebook. Эта социальная сеть, входящая в пятерку самых посещаемых сайтов в мире.

  • IBM. IBM — один из крупнейших производителей и поставщиков аппаратного и программного обеспечения. Компании уже более ста лет, и на протяжении всего этого времени она находится среди лидеров технологического прогресса.

  • Instagram. Instagram — одна из самых популярных социальных сетей, позволяющая публиковать и делиться своими фотографиями и видео.

  • Spotify. Spotify — шведский музыкальный сервис, доступный почти в 120 странах.

  • Netflix. Netflix — один из самых популярных сервисов потокового вещания видео в мире.

  • Reddit. Reddit — крупнейшая социальная новостная платформа, где пользователи размещают ссылки на любую понравившуюся им информацию в Интернете.

MongoDB:

  • Google. Google — хорошо известная многонациональная компания, специализирующаяся на интернет-сервисах.

  • UPS. UPS — американская международная компания по доставке посылок и управлению цепочками поставок.

  • Cisco. Бренд известной IT-корпорации Cisco Systems из США. Сетевые маршрутизаторы, беспроводные устройства и системы видеонаблюдения, используемые по всему миру.

  • eBay. eBay — крупнейший аукцион.

  • BOSCH. Немецкий бренд, выпускающий различную бытовую технику для дома и кухни.

  • Forbes. Forbes — популярный журнал, издаваемый во многих развитых странах. Его авторитетность – результат многолетней работы на рынке деловых СМИ.

  • GAP. Всемирно известный американский бренд, производящий повседневную одежду, обувь, нижнее белье и аксессуары для мужчин, женщин и детей.

  • PayPal. PayPal — поставщик финансовых услуг, предлагающий бесплатные денежные переводы и платежи за онлайн-покупки.

MongoDB и Cassandra
MongoDB и Cassandra

Вы впечатлены этими громкими именами? Все они используют MongoDB и Cassandra.

Что выбрать для вашего проекта

Ваш выбор Cassandra, если вы занимаетесь аналитикой в ​​реальном времени, электронной коммерцией, обнаружением фрода, музыкальными каталогами, онлайн-курсами и потоковой передачей данных. MongoDB лучше подойдет для систем управления контентом (CMS, content management systems) и мобильных приложений. Если у вас нет четкой схемы данных, то лучше выбрать MongoDB. Репликация в ней есть из коробки, но, возможно, потребуется ее поднастроить. Для MongoDB также вам придется выучить новый язык запросов.

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

Хотя MongoDB по праву выигрывает в простоте развертывания готового решения, Cassandra — в управлении масштабированием.

Надеюсь, теперь вы стали немного лучше разбираться в MongoDB и Cassandra. Оцените требования вашего проекта и выберите подходящую базу данных.

MongoDB vs Cassandra FAQ

  1. Когда использовать Cassandra?
    Вам нужна возможность масштабирования и надежность. Система проста в развертывании и настройке репликации. Cassandra отлично подходит для веб- и мобильных приложений, а также проектов со сложной аналитикой и анализом данных в реальном времени для географически распределенных BigData-систем.

  2. Является ли Cassandra NoSQL-базой данных?
    Apache Cassandra — это NoSQL-база данных, обеспечивающая непрерывную доступность, высокую производительность и линейную масштабируемость.

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

В заключение хочу пригласить всех желающих на бесплатный демоурок по теме "OrientDB: запрашиваем данные из графов". Подробнее об уроке можно узнать по ссылке ниже.

Комментарии (1)


  1. leahch
    30.09.2022 16:46
    +7

    О чем текст? Ни о чем!

    • 99% статьи есть в любом источнике.

    • выводы и рекомендации - никакие

    • технической информации - ноль

    Зачем такое писать? Читать здесь точно нечего.