MongoDB База данных NoSQL-типа

Продукт
Разработчики: MongoDB (ранее 10gen)
Дата последнего релиза: 2015/12/09
Технологии: СУБД

Содержание

MongoDB — одна из баз данных NoSQL-типа следующего поколения, оспаривающих доминирование реляционных СУБД Oracle, Microsoft и др., используемых сейчас в большинстве корпоративных ЦОДов.

MongoDB – документно-ориентированная система управления базами данных (СУБД) с открытым исходным кодом, не требующая описания схемы таблиц. Ее используют компании Craigslist, eBay, SourceForge, Viacom и многие другие.

В 2019 году на сайте MongoDB приводятся данные рейтинга DB-Engines, характеризующего популярность более 200 различных СУБД. Обозреватели называют MongoDB самой популярной NoSQL-системой. Рейтинг составляется на основе таких критериев, как упоминания в социальных сетях, количество созданных вокруг СБУД рабочих мест, наличие профессиональных сертификатов и количество поисковых запросов в Google.

История

2024: Доступность в облаке Т1 Cloud

Клиентам T1 Cloud стали доступны сразу три облачных сервиса в формате Managed Services (управляемые сервисы) на основе актуальных версий систем управления базами данных PostgreSQL, MongoDB и Redis. Об этом T1 Cloud сообщил 19 марта 2024 года. Подробнее здесь.

2019

Обнаружен открытый сервер MongoDB с данными 275 млн граждан Индии

18 июля 2019 года InfoWatch сообщил итоги II квартала 2019 года с точки зрения утечек конфиденциальной информации из организаций и определил самые масштабные инциденты. В мае в Сети исследователь Боб Дьяченко обнаружил открытый облачный сервер СУБД MongoDB с персональными данными 275 млн граждан Индии (примерно 20% населения страны). Подробнее здесь.

Данные 200 млн китайцев оказались в открытом доступе из-за неправильной настройки MongoDB

10 января 2019 года директор по исследованиям киберрисков в компании Hacken Боб Дьяченко (Bob Diachenko) опубликовал результаты расследования, согласно которому личные данные более чем 202 миллионов человек, ищущих работу в Китае, включая номера телефонов, адреса электронной почты, водительские права, зарплатные ожидания, статус брака, политические предпочтения, рост, вес, находились в открытом доступе в течение 3 лет.

В конце декабря 2018 года Дьяченко обнаружил открытый и незащищенный экземпляр MongoDB объемом 854 Гбайт, который содержал 202 730 434 «очень подробных» записи. База данных была проиндексирована в поисковиках данных Binary Edge и Shodan и была доступна без пароля или логина. Ее закрыли только через неделю после того, как информация о утечке была опубликована в Twitter 28 декабря 2018 года.

ИБ-специалист нашел в сети незащищенную и свободно доступную установку MongoDB и 854 Гб данных: личную информацию 200 млн китайцев

Дьяченко не смог сопоставить базу данных с конкретным сервисом, но нашел трехлетний репозиторий GitHub с шаблонами, идентичными тем, что использовались в найденных резюме. Принадлежность репозитория пока не определена, но предполагается, что данные были взяты с китайских сайтов объявлений, таких как 58.com.

Представитель 58.com заявил, что открытая база не принадлежала их компании, и, возможно, данные были получены от сторонней фирмы, которая собирает информацию со многих сайтов.

«
Мы провели поиск по всей нашей базе данных и проверили все остальные хранилища; совершенно точно, что эти данные «просочились» не от нас. Похоже, что данные «утекли» от третьей стороны, которая собирает их с разных сайтов, - сказал представитель компании. - Стоит отметить, что в журнале MongoDB указана как минимум дюжина IP-адресов, с которых могли получить доступ к данным до того, как доступ к ним был закрыт.
»

Данная утечка стала одной из самых крупных в Китае за все время.[1][2]

2015

Стабильный релиз MongoDB 3.2

9 декабря 2015 года вышел стабильный выпуск документо-ориентированной СУБД MongoDB 3.2. Сборки MongoDB 3.2.0 сформированы для Linux, Solaris, Windows и OS X[3].


Особенности выпуска

  • средства проверки корректности структуры и содержимого документов, реализованные через привязку к документам специального валидатора, определяющего правила для проверки типов, полей и значений;
  • движок хранения с шифрованием данных (только для MongoDB Enterprise);
  • движок хранения для систем реального времени, размещающий все данные в оперативной памяти;
  • использование SpiderMonkey в качестве JavaScript-движка для mongo shell и сервера mongod;
  • модуль для сопряжения с системами бизнес-аналитики, такими как Tableau и Qlikview;
  • Compass - графический интерфейс для управления MongoDB, визуализации, изучения данных и формирования выборок без необходимости применения языка запросов MongoDB;

Скриншот окна программы (2015)
  • система визуального профилирования выполнения запросов, позволяющая оценить возникающие задержки и выделить медленные запросы к БД;
  • поддержка частичных индексов, включающих только выборочные документы на основании заданного при создании индекса фильтра;
  • использование по умолчанию движка хранения WiredTiger вместо ранее используемого движка MMAPv1. WiredTiger отличается высоким уровнем масштабуемости на многоядерных системах, предсказуемым временем обработки запроса, не зависящим от числа записей в базе, возможностью блокировки записей на уровне документов и поддержкой хранения данных в сжатом виде;
  • возможность комбинировать данные из нескольких коллекций документов при помощи оператора $lookup, реализующего слияния типа "left outer join".

MongoDB 3.2

5 ноября 2015 года стал доступен для ознакомления предварительный релиз СУБД MongoDB 3.2, ориентированной на хранение документов[4].

Высокопроизводительная масштабируемая СУБД занимает нишу между быстрыми и масштабируемыми системами, оперирующими данными в формате ключ/значение, и реляционными СУБД, функциональными и удобными при использовании запросов. ИТ-директор «Роснефти» Дмитрий Ломилин выступит на TAdviser SummIT 28 ноября

MongoDB поддерживает хранение документов в JSON-подобном формате, имеет достаточно гибкий язык для формирования запросов, может создавать индексы для различных хранимых атрибутов, эффективно обеспечивает хранение больших бинарных объектов, поддерживает журналирование операций по изменению и добавлению данных в БД, может работать в соответствии с парадигмой Map/Reduce, поддерживает репликацию и построение отказоустойчивых конфигураций.

В MongoDB имеются средства обеспечения шардинга (распределение набора данных по серверам на основе определенного ключа), комбинируя который репликацией данных можно построить горизонтально масштабируемый кластер хранения, в котором отсутствует единая точка отказа (сбой любого узла не сказывается на работе БД), поддерживается автоматическое восстановление после сбоя и перенос нагрузки с вышедшего из строя узла. Расширение кластера или преобразование одного сервера в кластер производится без остановки работы БД простым добавлением новых машин.

Особенности выпуска 3.2:

  • Средства проверки корректности структуры и содержимого документов, реализованные через привязку к документам специального валидатора, определяющего правила для проверки типов, полей и значений;
  • Инновационный движок хранения с шифрованием данных (только для MongoDB Enterprise);
  • Модернизированный движок хранения для систем реального времени, размещающий все данные в оперативной памяти;
  • Использование SpiderMonkey в качестве JavaScript-движка для mongo shell и сервера mongod;
  • Свежий модуль для сопряжения с системами бизнес-аналитики, такими как Tableau и Qlikview;
  • Compass - графический интерфейс для управления MongoDB, визуализации, изучения данных и формирования выборок без необходимости применения языка запросов MongoDB;

Скриншот окна Compass (2015)

  • Система визуального профилирования выполнения запросов, позволяющая оценить возникающие задержки и выделить медленные запросы к БД;
  • Поддержка частичных индексов, включающих только выборочные документы на основании заданного при создании индекса фильтра;
  • Использование по умолчанию движка хранения WiredTiger вместо ранее используемого движка MMAPv1. WiredTiger отличается высоким уровнем масштабуемости на многоядерных системах, предсказуемым временем обработки запроса, не зависящим от числа записей в базе, возможностью блокировки записей на уровне документов и поддержкой хранения данных в сжатом виде;
  • Возможность комбинировать данные из нескольких коллекций документов при помощи оператора $lookup, реализующего слияния типа "left outer join".

В Сети опубликованы десятки тысяч баз MongoDB

Трое студентов Саарландского университета, Германия, обнаружили 39890 баз MongoDB, опубликованных в сети Интернет. Некоторые из них принадлежат крупным компаниям и содержат конфиденциальную информацию миллионов людей[5] [6].

Для поиска Дженс Хейенс (Jens Heyens), Кай Гришэйк (Kai Greshake) и Эрик Петрика (Eric Petryka) использовали известную поисковую систему Shodan, которая сканирует порты и индексирует информацию, недоступную через другие поисковики. В конфигурации MongoDB по умолчанию указан открытый порт TCP 27017 и, как отмечают студенты, для того чтобы получить доступ к базам данных, злоумышленнику достаточно просто провести сканирование портов в интернете.

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

«Если менее опытный администратор установит web-сервер баз данных MongoDB, следуя данным директивам, вполне вероятно, что в процессе он проигнорирует важность активации необходимых защитных механизмов, что приведет к полной открытости и уязвимости баз данных. Таким образом, любой сможет получить к ним доступ и, что важнее всего, проводить с ними различные манипуляции», - предупредили специалисты.

MongoDB is an open source NoSQL database. It is currently the most commonly used NoSQL database and several major Web sites and services integrate such a database for their backend.

We discovered that MongoDB databases running as a service or Web site backend on several thousand commercial servers are openly available on the Internet. Without any special tools and without circumventing any security measures, we would have been able to get read and write access to thousands of databases, including, e.g., sensitive customer data or live backends of Web shops.

The reason for this problem is twofold:

  • The defaults of MongoDB are tailored for running it on the same physical machine or virtual machine instances.
  • The documentations and guidelines for setting up MongoDB servers with Internet access may not be sufficiently explicit when it comes to the necessity to activate access control, authentication, and transfer encryption mechanisms.

If a less experienced administrator sets up a MongoDB Web server following those guidelines, it can easily happen that the administrator oversees the importance of activating crucially required security mechanisms. This will lead to a completely open and vulnerable database that each and everyone can access and, even worse, manipulate. Apparently, this is what happened to the thousands of databases we found. In the following we will first document our findings and, consequently, provide guidelines on how to secure MongoDB servers.

2014

MongoDB 2.6

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

MongoDB расширяет функционал системы

16 октября 2014 года компания MongoDB сообщила о значительном расширении функционала системы управления базой данных для упрощения развертывания, масштабирования и использования в различных облачных инфраструктурах.

Как утверждают разработчики, предприятия смогут разворачивать, модернизировать и администрировать экземпляры MongoDB, работающие в их собственных ЦОДах, на лаптопах и в различных публичных облаках, включая Amazon Web Services (AWS), IBM Cloud, Google Compute Engine и Microsoft Azure, с помощью системы MongoDB Management Service (MMS).

Преимущества новинки

  • Управлять масштабированием базы данных MongoDB было непросто, поскольку требовало больших знаний и усилий. Теперь обновленный сервис MMS позволит разрешить задачу и даст возможность ИТ-специалистам сосредоточиться на разработке приложений.

  • В составе MMS:
  • средства для развертывания СУБД на разных инфраструктурах с помощью одного клика,
    • интеграции с Amazon Web Services;
    • обновления и управления производительностью;
    • непрерывного резервного копирования и восстановления.

Одновременно с расширением функционала системы MMS, компания MongoDB изменила модель ценообразования. Раньше MMS была доступна в облаке виде бесплатного сервиса, а чтобы ее использовать на своей площадке, заказчик должен был ее купить. Теперь MMS остается бесплатной только для восьми серверов, а за каждый следующий сервер нужно платить $50 в месяц. Можно воспользоваться памятью для резервного компания за $2,5 на один гигабайт, поддержкой и обслуживанием за $450 в месяц или $5 тыс. в год на один сервер.

2013

MongoDB 1.8

В нереляционной СУБД с открытым кодом MongoDB 1.8 ее разработчики, специалисты компании 10gen, реализовали механизм журналирования, регистрирующий каждую операцию с базой. В случае сбоя сервера СУБД журнал позволит быстро восстановить базу до последнего рабочего состояния. Как утверждают в 10gen, работа механизма журналирования не вызывает существенного снижения производительности СУБД.

В MangoDB 1.8 также реализована возможность добавления новых данных к имеющемуся набору, полученному в результате фильтрации с помощью функции map/reduce. Кроме того, усовершенствованы функция тиражирования и механизм секционирования данных по методу sharidng.

MongoDB, появившаяся в 2009 году, представляет собой документо-ориентированную СУБД, хранящую информацию в последовательном формате, подобном JSON. Базы MongoDB лишены табличных структур и схем и позволяют вносить новые атрибуты по мере необходимости. Запросы выполняются с помощью синтаксиса, напоминающего JavaScript. Как утверждают разработчики MongoDB, СУБД способна извлекать информацию быстрее, чем реляционные, особенно при запросах на получение несложных наборов данных. MongoDB используется, в частности, в онлайн-сервисах Foursquare, Bit.ly и SourceForge.

Компании Pentaho и MongoDB объявили в сентябре 2013 года об улучшенной интеграции MongoDB с выпущенной 12 сентября платформой Pentaho Business Analytics 5.0. Совместно эти две технологии составляют интерактивное аналитическое решение, удовлетворяющее растущий спрос компаний на инструменты для работы с большими данными, заявил корреспонденту eWeek старший вице-президент по продуктам Pentaho Джейк Корнелиус.

Расширенная гладкая интеграция Pentaho Business Analytics 5.0 и MongoDB обеспечивает аналитические возможности с полной поддержкой Replica Sets, Tag Sets и Read and Write Preferences этого популярного NoSQL хранилища данных. Сочетание Pentaho Business Analytics и MongoDB помогает бизнес-пользователям и разработчиками повысить полезность данных, уменьшить их сложность, ускорить доступ к данным и выполнение запросов.

Благодаря Pentaho можно получить доступ к данным MongoDB, комбинировать их, визуализировать и подготовить отчет с использованием любых других источников данных, необходимых для их углубленного понимания и оперативной аналитики. Упрощено также составление отчетов на основе хранящихся в MongoDB данных. Pentaho обеспечивает автоматическую выборку документов, интерфейс с перетаскиванием объектов мышкой и генерацию схемы, что повышает производительность труда разработчиков.

Помимо этого такая интеграция без ущерба для производительности расширяет функции и возможности MongoDB, такие как Aggregation Framework, Replication и Tag Sets.

Примечания



ПРОЕКТЫ (1) ИНТЕГРАТОРЫ (1) РЕШЕНИЕ НА БАЗЕ (1)
СМ. ТАКЖЕ (18)


Подрядчики-лидеры по количеству проектов

За всю историю
2021 год
2022 год
2023 год
Текущий год

  SAP CIS (САП СНГ) (38)
  Softline (Софтлайн) (35)
  РДТЕХ (33)
  BeringPro (БерингПойнт) ранее BearingPoint Russia (28)
  ФОРС - Центр разработки (25)
  Другие (733)

  Сапиенс солюшнс (Sapiens solutions) (7)
  Navicon (Навикон) (3)
  BeringPro (БерингПойнт) ранее BearingPoint Russia (3)
  GlowByte, ГлоуБайт (ранее Glowbyte Consulting, ГлоуБайт Консалтинг) (2)
  IFellow (АйФэлл) (2)
  Другие (35)

  РДТЕХ (1)
  IBS (1)
  Ред Софт (Red Soft) (1)
  InnoSTage (Инностейдж) (1)
  Сбербанк-Технологии (СберТех) (1)
  Другие (20)

  Arenadata (Аренадата Софтвер) (5)
  Тантор Лабс (Tantor Labs) (3)
  ФОРС - Центр разработки (2)
  Ред Софт (Red Soft) (1)
  Digital Design (Диджитал Дизайн) (1)
  Другие (18)

  Arenadata (Аренадата Софтвер) (5)
  GlowByte, ГлоуБайт (ранее Glowbyte Consulting, ГлоуБайт Консалтинг) (2)
  Диасофт (Diasoft) (2)
  Центр Финансовых Технологий (ЦФТ) (1)
  GMCS (1)
  Другие (16)

Распределение вендоров по количеству проектов внедрений (систем, проектов) с учётом партнёров

За всю историю
2021 год
2022 год
2023 год
Текущий год

  Oracle (44, 179)
  SAP SE (6, 178)
  Microsoft (23, 142)
  PostgreSQL Global Development Group (14, 126)
  Постгрес профессиональный (ППГ, Postgres Professional) (6, 40)
  Другие (263, 242)

  SAP SE (3, 11)
  Microsoft (3, 11)
  PostgreSQL Global Development Group (3, 10)
  Oracle (2, 4)
  Постгрес профессиональный (ППГ, Postgres Professional) (2, 3)
  Другие (10, 13)

  PostgreSQL Global Development Group (4, 9)
  Постгрес профессиональный (ППГ, Postgres Professional) (2, 6)
  VK Tech (ранее VK Цифровые технологии, ВК Цифровые технологии и Mail.ru Цифровые технологии) (2, 3)
  Arenadata (Аренадата Софтвер) (3, 2)
  Oracle (2, 2)
  Другие (9, 9)

  PostgreSQL Global Development Group (3, 13)
  Постгрес профессиональный (ППГ, Postgres Professional) (1, 6)
  Arenadata (Аренадата Софтвер) (3, 5)
  Apache Software Foundation (ASF) (3, 4)
  Тантор Лабс (Tantor Labs) (2, 3)
  Другие (8, 10)

  PostgreSQL Global Development Group (4, 11)
  Arenadata (Аренадата Софтвер) (3, 6)
  VMware (2, 6)
  Постгрес профессиональный (ППГ, Postgres Professional) (2, 5)
  Сбербанк-Технологии (СберТех) (2, 2)
  Другие (5, 7)

Распределение систем по количеству проектов, не включая партнерские решения

За всю историю
2021 год
2022 год
2023 год
Текущий год

  Oracle Database - 106
  Microsoft SQL Server - 104
  SAP NetWeaver Business Warehouse (SAP BW/4HANA) - 103
  PostgreSQL СУБД - 80
  SAP HANA (High Performance Analytic Appliance) - 72
  Другие 374

  Microsoft SQL Server - 9
  SAP NetWeaver Business Warehouse (SAP BW/4HANA) - 8
  PostgreSQL СУБД - 7
  Oracle Database - 3
  SAP HANA (High Performance Analytic Appliance) - 3
  Другие 21

  Postgres Pro СУБД - 5
  ADB - Arenadata DB - 2
  PostgreSQL СУБД - 2
  Tarantool Платформа in‑memory вычислений - 2
  Oracle Database - 2
  Другие 13

  Postgres Pro СУБД - 6
  PostgreSQL СУБД - 4
  ADB - Arenadata DB - 3
  Tantor СУБД - 3
  Apache Kafka - 2
  Другие 10

  PostgreSQL СУБД - 5
  ADB - Arenadata DB - 5
  Postgres Pro СУБД - 3
  Diasoft Digital Q.Database - 2
  ADH - Arenadata Hadoop - 2
  Другие 9