Тема 3. Подготовка презентации и мастер-класса по сравнению характеристик MongoDB и Cassandra

MongoDB — документоориентированная система управления базами данных, не требующая описания схемы таблиц. Считается одним из классических примеров NoSQL-систем, использует JSON-подобные документы и схему базы данных.

Apache Cassandra — распределённая система управления базами данных, относящаяся к классу NoSQL-систем и рассчитанная на создание высокомасштабируемых и надёжных хранилищ огромных массивов данных, представленных в виде хэша.

MongoDB

Имеется поддержка индексов. Система может работать с набором реплик, то есть содержать две или более копии данных на различных узлах. Система масштабируется горизонтально, используя технику сегментирования объектов баз данных — распределение их частей по различным узлам кластера. Она может быть использована в качестве файлового хранилища с балансировкой нагрузки и репликацией данных. Может работать в соответствии с парадигмой MapReduce. Поддерживается JavaScript в запросах, функциях агрегации. Поддерживаются коллекции с фиксированным размером. Имеется поддержка транзакций, удовлетворяющих требованиям ACID.

Apache Cassandra

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

Создание таблицы (коллекции)

MongoDB организует данные в базы данных (Database), где есть коллекции (Collections), в которых лежат документы (Documents). Команда use database создает экземпляр базы данных при первом вызове и изменяет контекст для вновь созданной базы данных. Коллекции создаются автоматически при добавлении первого документа в новую коллекцию.

Создание таблицы с Cassandra похоже на SQL. Одним из основных различий является отсутствие ограничений целостности (например, NOT NULL), но это входит в зону ответственности приложения, а не NoSQL базы данных.

Добавление данных

В целом выражение INSERT в Cassandra выглядит очень похоже на аналогичное в SQL.

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

Получение данных

Выражение SELECT в Cassandra похоже на аналогичное в SQL.

В MongoDB основным методом создания запросов является метод db.collection.find().

Редактирование данных

В Cassandra есть выражение UPDATE, аналогичное SQL. UPDATE имеет ту же семантику UPSERT, подобно INSERT.

В MongoDB операция update() может полностью обновить существующий документ или обновить только определенные поля.

Удаление данных

Выражение DELETE в Cassandra аналогично SQL.

В MongoDB есть следующие операции для удаления документов: deleteOne(), deleteMany() и remove().

Удаление таблицы (коллекции)

Выражение DROP TABLE в Cassandra аналогично SQL.

В MongoDB для удаления коллекции используется операция drop().