Тема 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()
.