Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.119.14.235] |
|
Сообщ.
#1
,
|
|
|
Обзор СУБД MongoDB и сфер ее применения
MongoDB — яркий пример грамотной реализации NoSQL-системы управления базами данных. Программное обеспечение распространяется в соответствии с лицензией SSPL — это несвободная «Source Available» лицензия со значительными ограничениями. В частности, в ее требованиях содержится ограничение на использование MongoDB в качестве DBaaS, если остальная инфраструктура не соответствует SSPL. В этом случае необходимо использовать коммерческую версию, которая отличается дополнительными возможностями: расширенными штатными интеграциями и набором инструментов, бэкапами, а также технической поддержкой. Лицензия SSPL — предмет серьезных споров. Open Source Initiative не признает ее в качестве свободной лицензии из-за значительных несоответствий набору правил, определяющих программное обеспечение с открытым исходным кодом. Если вы собираетесь бесплатно использовать MongoDB, то в первую очередь необходимо изучить все тонкости условий, на которых вы сможете это сделать. Программное обеспечение распространяется в соответствии с лицензией SSPL — это несвободная «Source Available» лицензия со значительными ограничениями На данный момент существует несколько изданий: В случае с 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. Такой метод позволяет обеспечить высокую скорость работы и широкие возможности. К особенностям этой системы можно отнести: Отказ от привычных для реляционных баз практик позволил разработчикам добиться высокой скорости работы и хорошей производительности, сохранив при этом отказоустойчивость и надежность хранения данных. Безопасность и производительность Если рассматривать использование системы с точки зрения безопасности, то MongoDB может обеспечить транзакции, соответствующие требованиям ACID — эти требования определяют наиболее надежное и предсказуемое поведение работы СУБД в неопределенных условиях и при возникновении ошибок. Отказоустойчивость обеспечивают журналирование и репликация: поддерживается два вида репликации — наборы реплик и технология «master/slave» — сами разработчики советуют использовать именно наборы реплик, если у проекта нет жесткой привязки к выбору. С точки зрения выстраивания работы эти технологии практически идентичны: главное отличие набора реплик заключается в автоматическом выборе нового «master», если с существующим произойдут неполадки, и возвращением его в строй в качестве реплики, после восстановления работоспособности. В системе реализована возможность автоматической сегментации по нескольким наборам реплик. В основе сегментирования находится диапазон — для определения документа к определенному диапазону используется shard key (сегментный ключ). Распределение нагрузки происходит равномерно между всеми участниками набора реплик. Поэтому для того, чтобы разгрузить кластер, который перестает справляться с работой, достаточно просто добавить в него дополнительный набор реплик, и данные автоматически перераспределятся. Варианты использования На самом деле примеров использования в самых разных областях можно привести сколько угодно, главное, что вы должны понимать — это нереляционная БД, а следовательно, сама логика работы у нее другая. Востребованность таких СУБД подтверждает использование MongoDB в своих проектах крупными корпорациями, среди которых находятся Facebook, Google, Twitter и другие. Система подходит для реализации схем, где требуется аналитика в реальном времени, быстрое журналирование. Кроме этого, ее традиционно используют для кэширования данных и проектов, в которых важное значение имеет масштабируемость. Вот несколько примеров, где можно задействовать MongoDB: Система плохо подходит для хранения сильно связанных данных и проектов, основной упор в которых сделан на транзакции на уровне базы данных. К минусам MongoDB традиционно относят: Собственно, как и любой инструмент, MongoDB в чем-то лучше других СУБД, а в чем-то проигрывает. Подведение итогов MongoDB — это популярная СУБД, способная хранить и обрабатывать любые данные, если они будут в JSON/BSON-формате. На выбор доступны несколько различных редакций, в том числе и бесплатная, если она удовлетворяет требованиям лицензии SSPL. В свою очередь, коммерческая редакция предоставляет расширенный набор инструментов, включая резервное копирование и техническую поддержку. Есть возможность использовать вариант в облаке: платный или бесплатный, с ограничениями. Система хорошо подходит для обработки больших данных и может использоваться в таких отраслях, как машинное обучение, аналитика в реальном времени, web-ресурсы с большим количеством фото и видеоматериалов, чаты, новостные ленты, блоги. Плохо подходит для проектов, в которых важны соответствие требованиям ACID и множественные транзакции. Адрес новости: https://internet.cnews.ru/news/top/2022-05-17_obzor_subd_mongodb_i_sfer_ee |