На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Внимательно прочитайте правила раздела
1. Запрещается публиковать материалы защищенные авторскими правами.
2. Запрещается публиковать новостные материалы без ссылки на источник
Модераторы: ANDLL, B.V.
  
    > Обзор СУБД MongoDB и сфер ее применения
      Обзор СУБД MongoDB и сфер ее применения

      MongoDB — яркий пример грамотной реализации NoSQL-системы управления базами данных. Программное обеспечение распространяется в соответствии с лицензией SSPL — это несвободная «Source Available» лицензия со значительными ограничениями.

      В частности, в ее требованиях содержится ограничение на использование MongoDB в качестве DBaaS, если остальная инфраструктура не соответствует SSPL. В этом случае необходимо использовать коммерческую версию, которая отличается дополнительными возможностями: расширенными штатными интеграциями и набором инструментов, бэкапами, а также технической поддержкой.

      Лицензия SSPL — предмет серьезных споров. Open Source Initiative не признает ее в качестве свободной лицензии из-за значительных несоответствий набору правил, определяющих программное обеспечение с открытым исходным кодом. Если вы собираетесь бесплатно использовать MongoDB, то в первую очередь необходимо изучить все тонкости условий, на которых вы сможете это сделать.

      user posted image

      Программное обеспечение распространяется в соответствии с лицензией SSPL — это несвободная «Source Available» лицензия со значительными ограничениями

      На данный момент существует несколько изданий:
      1. MongoDB Community Edition — бесплатное издание, доступное для основных операционных систем: macOS, Windows и Linux.
      2. MongoDB Enterprise Server — коммерческое издание, требующее оплаченную подписку MongoDB Enterprise Advanced.
      3. MongoDB Atlas — облачный сервис, оказывающий услуги по управлению базами данных: для хранения задействуются сервера таких гигантов, как AWS, Azure, Google Cloud.

      В случае с MongoDB Atlas можно выбрать как платные, так и бесплатные варианты использования. Они неравнозначные: бесплатные возможности урезаны как по объему хранилища, так и по доступным инструментам.

      Краткая история

      Компания-разработчик зарегистрировалась еще в далеком 2007 г., но первый выпуск СУБД появился только в 2009 г. — в этом же году компания стала использовать модель разработки с открытым исходным кодом, оказывая дополнительные коммерческие услуги: техподдержку, резервное копирование и прикладные инструменты для работы с данными.

      Изначально компания называлась 10gen, но в 2013 г. выбрала в качестве названия MongoDB Inc — это было сделано с целью подчеркнуть основное направление развития. Штаб-квартиры компании расположены в Нью-Йорке (США) и Дублине. В 2019 г. MongoDB заключила договор с Alibaba Cloud (Aliyun) и теперь она предлагает СУБД своим клиентам в качестве услуги.

      В начале марта этого года разработчикам из России и Беларуси пришло уведомление от компании. В нем содержалось предупреждение о том, что все их данные, хранимые на MongoDB Atlas, будут удалены без возможности восстановления.

      Техническая сторона

      Система написана на языке C++, что подразумевает кроссплатформенность, а в качестве драйверов для программирования доступны Java, PHP, Python, Perl, C# и другие. Помимо этого, существует и неофициальная поддержка различных языков и фреймворков.

      Это документоориентированная система управления базами данных, обеспечивающая высокую производительность и простоту масштабирования. В отличие от традиционных способов построения баз, тут не применяются таблицы, внешние ключи, запросы SQL. Вместо этого для хранения данных используются документы JavaScript Object Notation (JSON) и Binary JavaScript Object Notation (BSON).

      Документы позволяют хранить бинарные данные — музыку, изображения, но для файлов размером свыше 1 Mb лучше использовать GridFS. Это спецификация MongoDB, которая предназначена для работы с большими файлами — видео, аудио, картинками — позволяющая хранить файлы, размером свыше 16 Mb. Достигается это за счет разделения файла на части по 255 Kb, информация о которых записывается в fs.files и fs.chunks. Такой метод позволяет обеспечить высокую скорость работы и широкие возможности.

      К особенностям этой системы можно отнести:
      • поддержка ad-hoc-запросов — функционал, позволяющий возвращать определенные поля документа, а также пользовательские функции;
      • поиск по регулярным выражениям;
      • поддержка индексов по вложенным документам и массивам, включая геопространственные;
      • в запросах и функциях агрегации поддерживается JavaScript;
      • поддержка атомарных операций, записи без подтверждения, compare-and-swap и других.

      Отказ от привычных для реляционных баз практик позволил разработчикам добиться высокой скорости работы и хорошей производительности, сохранив при этом отказоустойчивость и надежность хранения данных.

      Безопасность и производительность

      Если рассматривать использование системы с точки зрения безопасности, то MongoDB может обеспечить транзакции, соответствующие требованиям ACID — эти требования определяют наиболее надежное и предсказуемое поведение работы СУБД в неопределенных условиях и при возникновении ошибок.

      Отказоустойчивость обеспечивают журналирование и репликация: поддерживается два вида репликации — наборы реплик и технология «master/slave» — сами разработчики советуют использовать именно наборы реплик, если у проекта нет жесткой привязки к выбору. С точки зрения выстраивания работы эти технологии практически идентичны: главное отличие набора реплик заключается в автоматическом выборе нового «master», если с существующим произойдут неполадки, и возвращением его в строй в качестве реплики, после восстановления работоспособности.

      В системе реализована возможность автоматической сегментации по нескольким наборам реплик. В основе сегментирования находится диапазон — для определения документа к определенному диапазону используется shard key (сегментный ключ). Распределение нагрузки происходит равномерно между всеми участниками набора реплик. Поэтому для того, чтобы разгрузить кластер, который перестает справляться с работой, достаточно просто добавить в него дополнительный набор реплик, и данные автоматически перераспределятся.

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

      На самом деле примеров использования в самых разных областях можно привести сколько угодно, главное, что вы должны понимать — это нереляционная БД, а следовательно, сама логика работы у нее другая. Востребованность таких СУБД подтверждает использование MongoDB в своих проектах крупными корпорациями, среди которых находятся Facebook, Google, Twitter и другие.

      Система подходит для реализации схем, где требуется аналитика в реальном времени, быстрое журналирование. Кроме этого, ее традиционно используют для кэширования данных и проектов, в которых важное значение имеет масштабируемость. Вот несколько примеров, где можно задействовать MongoDB:
      1. Социальные сети, чаты, генераторы новостей и схожие сценарии использования.
      2. Большие данные — нереляционная структура системы хорошо подходит для работы с big data.
      3. Каталоги для магазинов электронной торговли, содержащие большое количество разных наименований товаров.
      4. Работа с данными, основанными на местоположении — геопространственными данными.
      5. Сбор и обработка информации с различных датчиков и считывающих устройств;
      6. Сервисы блогосферы — особенно те, которые подразумевают большое количество изображений, аудио и видеоматериалов.

      Система плохо подходит для хранения сильно связанных данных и проектов, основной упор в которых сделан на транзакции на уровне базы данных. К минусам MongoDB традиционно относят:
      • неполное соответствие требованиям ACID — реляционные БД в этом плане выигрывают;
      • невозможно реализовать бизнес-логику на уровне БД, так как в базе нет положений о хранимых функциях и процедурах;
      • сложная реализация транзакций.

      Собственно, как и любой инструмент, MongoDB в чем-то лучше других СУБД, а в чем-то проигрывает.

      Подведение итогов

      MongoDB — это популярная СУБД, способная хранить и обрабатывать любые данные, если они будут в JSON/BSON-формате. На выбор доступны несколько различных редакций, в том числе и бесплатная, если она удовлетворяет требованиям лицензии SSPL. В свою очередь, коммерческая редакция предоставляет расширенный набор инструментов, включая резервное копирование и техническую поддержку. Есть возможность использовать вариант в облаке: платный или бесплатный, с ограничениями.

      Система хорошо подходит для обработки больших данных и может использоваться в таких отраслях, как машинное обучение, аналитика в реальном времени, web-ресурсы с большим количеством фото и видеоматериалов, чаты, новостные ленты, блоги. Плохо подходит для проектов, в которых важны соответствие требованиям ACID и множественные транзакции.

      Адрес новости:
      https://internet.cnews.ru/news/top/2022-05-17_obzor_subd_mongodb_i_sfer_ee

      1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0145 ]   [ 14 queries used ]   [ Generated: 19.05.24, 17:06 GMT ]