+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новини

Відбувся реліз документоорієнтованої СУБД MongoDB 5.0

Випущено документоорієнтовану СКБД MongoDB 5.0

Презентовано випуск документо-орієнтованих СКБД MongoDB 5.0

Код MongoDB написаний на C++ і поширюється під ліцензією SSPL, яка заснована на ліцензії AGPLv3, але не є відкритою, оскільки містить дискримінаційну вимогу поставляти під ліцензію SSPL не тільки код самого додатка, але і вихідний код всіх компонентів, що беруть участь в наданні хмарного сервісу.

MongoDB підтримує зберігання документів в JSON-подібному форматі, має досить гнучку мову для запитів, може створювати індекси для різних збережених атрибутів, ефективно зберігає великі двійкові об'єкти, підтримує журналювання операцій по модифікації і додавання даних в базу даних, може працювати відповідно до парадигми Map/Reduce, підтримує реплікацію і побудову відмовостійких конфігурацій.

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

Особливості нового випуску:

  • Додані колекції  для колекцій часових рядів, які оптимізовані для зберігання фрагментів значень параметрів, які записуються через рівні проміжки часу (час і набір значень, що відповідають цьому часу). Необхідність зберігання таких даних виникає в системах моніторингу, фінансових платформах, системах для інтерв'ювання сенсорних станів. Дані часових рядів обробляються як регулярні колекції документів, але індекси і спосіб зберігання для них оптимізовані для тимчасової прив'язки, що дозволяє значно скоротити витрату дискового простору, зменшити затримки при виконанні запитів і реалізувати можливість аналізу даних в режимі реального часу.

    MongoDB розглядає такі колекції як придатні для запису, нематеріалізовані вигляди, які базуються на внутрішніх колекціях і при вставці автоматично групують дані часових рядів в оптимізований формат зберігання. У цьому випадку кожен запис, пов'язаний із часом, розглядається як окремий документ за запитом. Дані автоматично впорядковуються та індексуються за часом (немає необхідності явно створювати індекси за часом).

  • Додана підтримка операторів вікон (аналітичні функції), які дозволяють виконувати дії над певним набором документів в колекції. На відміну від агрегатних функцій, функції вікна не згортають згрупований набір, а агрегують на основі вмісту "вікна", що включає один або кілька документів з набору результатів. Для маніпуляцій з підмножиною документів пропонується новий етап $setWindowFields, за допомогою якого, наприклад, можна визначити відмінності між двома документами в колекції, розрахувати рейтинг продажів і проаналізувати інформацію в складних часових рядах.
  • Додана підтримка версій API, що дозволяє прив'язати додаток до певного стану API і виключити ризики, пов'язані з можливим порушенням зворотної сумісності при переході на нові випуски СКБД. Версія API відокремлює життєвий цикл програми від життєвого циклу СКБД і дозволяє розробникам вносити зміни в додаток, коли виникає необхідність скористатися новими функціями, а не коли вони переходять на нову версію СКБД.
  • Додана підтримка механізму Live Resharding, який дозволяє змінювати осколковий ключ, який використовується для осколка на льоту без зупинки СКБД.
  • Можливості шифрування на стороні клієнта на рівні поля були розширені. Тепер можна переналаштовувати фільтри аудиту і повертати сертифікати x509 без зупинки СКБД. Додана підтримка настройки набору шифрів для TLS 1.3.
  •  Нова оболонка командного рядка MongoDB Shell (mongosh) пропонується і розробляється у вигляді окремого проекту, написаного на JavaScript з використанням фреймворку Node.js і поширюється під ліцензією Apache 2.0. MongoDB Shell дозволяє підключатися до СКБД, змінювати налаштування і відправляти запити. Підтримується розумне автозаповнення методів, команд і виразів MQL, підсвічування синтаксису, контекстне підказка, аналіз повідомлень про помилки, а також можливість розширення функціональності за допомогою доповнень. Стара оболонка CLI «mongo» застаріла і буде видалена в майбутньому випуску.
  • Додані нові оператори: $count, $dateAdd, $dateDiff, $dateSubtract, $sampleRate і $rand.
  • Індекси використовуються під час використання операторів $eq, $lt, $lte, $gt та $gte у $expr виразі.
  • Команди агрегату, пошуку, пошукуAndModify, оновлення, видалення та db.collection.aggregate(), db.collection.findAndModify(), db.collection.update() та db.collection.remove() підтримують опцію "let" для визначення списку змінних, які роблять команди більш читабельними, відокремлюючи змінні від тіла запиту.
  • Операції find, count, distinct, aggregate, mapReduce, listCollections і listIndexes операції більше не блокуються, якщо паралельно виконується операція, яка піддає ексклюзивний замок набору документів.
  • В рамках ініціативи по позбавленню від політично некоректних термінів команда isMaster і метод db.isMaster() були перейменовані в hello і db.hello().
  • Була змінена схема нумерації випусків і здійснений перехід на передбачуваний графік генерації релізів. Раз на рік буде значний реліз (5.0, 6.0, 7.0), кожні три місяці проміжні випуски з новими можливостями (5.1, 5.2, 5.3) і, в міру необхідності, коригувальні оновлення з виправленнями помилок і вразливостей (5.1.1, 5.1.2, 5.1.3). У проміжних релізах функціональність буде згенерована для наступного значного випуску, тобто MongoDB 5.1, 5.2 і 5.3 генеруватимуть нові функції для випуску MongoDB 6.0.

Інші новини

Найкраща ціна