Đã có DBMS định hướng tài liệu MongoDB 5.0

Представлен выпуск документо-ориентированной СУБД MongoDB 5.0, которая занимает нишу между быстрыми и масштабируемыми системами, оперирующими данными в формате ключ/значение, и реляционными СУБД, функциональными и удобными в формировании запросов. Код MongoDB написан на языке C++ и распространяется под лицензией SSPL, которая основана на лицензии AGPLv3, но не является открытой, так как содержит дискриминирующее требование поставки под лицензией SSPL не только кода самого приложения, но и исходных текстов всех компонентов, вовлечённых в предоставление облачного сервиса.

MongoDB hỗ trợ lưu trữ tài liệu ở định dạng giống JSON, có ngôn ngữ tạo truy vấn khá linh hoạt, có thể tạo chỉ mục cho các thuộc tính được lưu trữ khác nhau, cung cấp khả năng lưu trữ hiệu quả các đối tượng nhị phân lớn, hỗ trợ ghi nhật ký các hoạt động để thay đổi và thêm dữ liệu vào cơ sở dữ liệu, có thể hoạt động theo mô hình Map/Reduce, hỗ trợ sao chép và xây dựng các cấu hình có khả năng chịu lỗi.

MongoDB có các công cụ sharding tích hợp (phân phối tập dữ liệu trên các máy chủ dựa trên một khóa cụ thể), kết hợp với sao chép, cho phép bạn xây dựng một cụm lưu trữ có thể mở rộng theo chiều ngang mà không có một điểm lỗi nào (lỗi của bất kỳ nút nào cũng có). không ảnh hưởng đến hoạt động của cơ sở dữ liệu), tự động chuyển đổi dự phòng và chuyển tải từ một nút bị lỗi. Việc mở rộng một cụm hoặc chuyển đổi một máy chủ thành một cụm được thực hiện mà không cần dừng cơ sở dữ liệu bằng cách thêm các máy mới.

Các tính năng của bản phát hành mới:

  • Добавлены коллекции для данных в форме временного ряда (time series collections), оптимизированные для хранения срезов значений параметров, записываемых через определённые промежутки времени (время и набор соответствующих этому времени значений). Необходимость в хранении подобных данных возникает в системах мониторинга, финансовых платформах, системах опроса состояний датчиков. Работа с данными временного ряда осуществляется как с обычными коллекциями документов, но индексы и метод хранения для них оптимизированы с учётом привязки ко времени, что позволяет значительно сократить потребление места на диске, уменьшить задержки при выполнении запросов и реализовать возможность анализа данных в режиме реального времени.

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

  • Добавлена поддержка оконных операторов (аналитических функций), позволяющих выполнить действия с определённым набором документов в коллекции. В отличие от агрегатных функций, оконные функции не свёртывают сгруппированный набор, а производят агрегирование на основе содержимого «окна», включающего один или более документов из результирующего набора. Для манипуляции с подмножеством документов предложена новая стадия $setWindowFields, при помощи которой можно, например, определить различия между двумя документами в коллекции, рассчитать рейтинг продаж и проанализировать информацию в сложных временных рядах.
  • Добавлена поддержка версионирования API, позволяющая привязать приложение к определённому состоянию API и исключить риски, связанные с возможным нарушением обратной совместимости при переходе на новые выпуски СУБД. Версионирование API отделяет жизненный цикл приложения от жизненного цикла СУБД и позволяет разработчикам вносить изменения в приложение тогда, когда возникла потребность задействовать новые возможности, а не когда выполняется переход на новую версию СУБД.
  • Добавлена поддержка механизма Live Resharding, позволяющего на лету менять используемые для сегментирования ключи (shard key) без остановки СУБД.
  • Расширены возможности шифрования полей на стороне клиента (Client-Side Field Level Encryption). Появилась возможность перенастройки фильтров аудита и ротации сертификатов x509 без остановки работы СУБД. Добавлена поддержка настройки набора шифров для TLS 1.3.
  • Предложена новая оболочка командной строки MongoDB Shell (mongosh), которая развивается как отдельный проект, написана на JavaScript с использованием платформы Node.js и распространяется под лицензией Apache 2.0. MongoDB Shell даёт возможность подключаться к СУБД, менять настройки и отправлять запросы. Поддерживается умное автодополнение ввода методов, команд и выражений MQL, подсветка синтаксиса, контекстная подсказка, разбор сообщений об ошибках и возможность расширения функциональности через дополнения. Старая CLI-оболочка «mongo» объявлена устаревшей и будет удалена в будущем выпуске.
    Đã có DBMS định hướng tài liệu MongoDB 5.0
  • Добавлены новые операторы: $count, $dateAdd, $dateDiff, $dateSubtract, $sampleRate и $rand.
  • Обеспечено задействование индексов при использовании операторов $eq, $lt, $lte, $gt и $gte внутри выражения $expr.
  • В командах aggregate, find, findAndModify, update, delete и методах 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.

Nguồn: opennet.ru

Thêm một lời nhận xét