SGBD orienté document MongoDB 5.0 disponible

La version du SGBD orienté document MongoDB 5.0 est présentée, qui occupe une niche entre les systèmes rapides et évolutifs qui exploitent les données au format clé/valeur, et les SGBD relationnels qui sont fonctionnels et faciles à former des requêtes. Le code MongoDB est écrit en C++ et distribué sous licence SSPL, qui est basée sur la licence AGPLv3, mais n'est pas ouvert, car il contient une exigence discriminatoire de fournir sous licence SSPL non seulement le code de l'application lui-même, mais également la source. code de tous les composants impliqués dans la fourniture du service cloud.

MongoDB prend en charge le stockage de documents dans un format de type JSON, dispose d'un langage assez flexible pour générer des requêtes, peut créer des index pour divers attributs stockés, fournit efficacement le stockage d'objets binaires volumineux, prend en charge la journalisation des opérations de modification et d'ajout de données à la base de données, peut fonctionne conformément au paradigme Map/Reduce, prend en charge la réplication et la construction de configurations tolérantes aux pannes.

MongoDB dispose d'outils intégrés pour fournir le partitionnement (distribution d'un ensemble de données sur des serveurs en fonction d'une clé spécifique), en combinaison avec la réplication, vous permettant de créer un cluster de stockage évolutif horizontalement dans lequel il n'y a pas de point de défaillance unique (l'échec d'un nœud n'affecte pas le fonctionnement de la base de données), récupération automatique après une panne et transfert de charge depuis un nœud défaillant. L'extension d'un cluster ou la conversion d'un serveur en cluster se fait sans arrêter la base de données en ajoutant simplement de nouvelles machines.

Caractéristiques de la nouvelle version :

  • Ajout de collections de données sous forme de séries temporelles (collections de séries temporelles), optimisées pour stocker des tranches de valeurs de paramètres enregistrées à certains intervalles (temps et un ensemble de valeurs correspondant à ce temps). La nécessité de stocker ces données se fait sentir dans les systèmes de surveillance, les plateformes financières et les systèmes d’interrogation des états des capteurs. Le travail avec des données de séries chronologiques s'effectue comme avec des collections de documents ordinaires, mais leurs index et leur méthode de stockage sont optimisés en tenant compte de la référence temporelle, ce qui peut réduire considérablement la consommation d'espace disque, réduire les retards d'exécution des requêtes et permettre des données en temps réel. analyse.

    MongoDB traite ces collections comme des vues inscriptibles et non matérialisées construites sur des collections internes qui, une fois insérées, regroupent automatiquement les données de séries chronologiques dans un format de stockage optimisé. Dans ce cas, chaque enregistrement temporel est traité comme un document distinct sur demande. Les données sont automatiquement classées et indexées par temps (pas besoin de créer explicitement des index temporels).

  • Ajout de la prise en charge des opérateurs de fenêtre (fonctions analytiques) qui vous permettent d'effectuer des actions avec un ensemble spécifique de documents de la collection. Contrairement aux fonctions d'agrégation, les fonctions de fenêtre ne réduisent pas l'ensemble groupé, mais agrègent plutôt en fonction du contenu d'une « fenêtre » qui inclut un ou plusieurs documents de l'ensemble de résultats. Pour manipuler un sous-ensemble de documents, une nouvelle étape $setWindowFields est proposée, avec laquelle vous pouvez, par exemple, déterminer les différences entre deux documents d'une collection, calculer des classements de ventes et analyser des informations dans des séries chronologiques complexes.
  • Ajout de la prise en charge du versionnement de l'API, qui vous permet de lier une application à un état d'API spécifique et d'éliminer les risques associés à une éventuelle violation de la compatibilité ascendante lors de la migration vers de nouvelles versions du SGBD. La gestion des versions de l'API sépare le cycle de vie de l'application du cycle de vie du SGBD et permet aux développeurs d'apporter des modifications à l'application lorsqu'il est nécessaire d'utiliser de nouvelles fonctionnalités, et non lors de la migration vers une nouvelle version du SGBD.
  • Ajout de la prise en charge du mécanisme Live Resharding, qui vous permet de modifier à la volée les clés de partition utilisées pour la segmentation sans arrêter le SGBD.
  • Les possibilités de chiffrement des champs côté client ont été étendues (Client-Side Field Level Encryption). Il est désormais possible de reconfigurer les filtres d'audit et de faire pivoter les certificats x509 sans arrêter le SGBD. Ajout de la prise en charge de la configuration de la suite de chiffrement pour TLS 1.3.
  • Un nouveau shell de ligne de commande, MongoDB Shell (mongosh), est proposé, qui est développé en tant que projet distinct, écrit en JavaScript à l'aide de la plateforme Node.js et distribué sous la licence Apache 2.0. MongoDB Shell permet de se connecter au SGBD, de modifier les paramètres et d'envoyer des requêtes. Prend en charge la saisie semi-automatique intelligente pour la saisie de méthodes, de commandes et d'expressions MQL, la coloration syntaxique, l'aide contextuelle, l'analyse des messages d'erreur et la possibilité d'étendre les fonctionnalités via des modules complémentaires. L'ancien wrapper CLI "mongo" est obsolète et sera supprimé dans une prochaine version.
    SGBD orienté document MongoDB 5.0 disponible
  • De nouveaux opérateurs ont été ajoutés : $count, $dateAdd, $dateDiff, $dateSubtract, $sampleRate et $rand.
  • Garantit que les index sont utilisés lors de l'utilisation des opérateurs $eq, $lt, $lte, $gt et $gte dans l'expression $expr.
  • Les commandes Aggregate, Find, FindAndModify, Update, Delete et les méthodes db.collection.aggregate(), db.collection.findAndModify(), db.collection.update() et db.collection.remove() prennent désormais en charge l'option « laisser " pour définir une liste de variables qui rendent les commandes plus lisibles en séparant les variables du corps de la requête.
  • Les opérations Find, count, distinct, Aggregate, mapReduce, listCollections et listIndexes ne se bloquent plus si une opération qui prend un verrou exclusif sur une collection de documents est exécutée en parallèle.
  • Dans le cadre d'une initiative visant à supprimer les termes politiquement incorrects, la commande isMaster et la méthode db.isMaster() ont été renommées hello et db.hello().
  • Le système de numérotation des versions a été modifié et une transition a été effectuée vers un calendrier de sortie prévisible. Une fois par an, il y aura une version significative (5.0, 6.0, 7.0), tous les trois mois des versions intermédiaires avec de nouvelles fonctionnalités (5.1, 5.2, 5.3) et, si nécessaire, des mises à jour correctives avec des corrections de bugs et de vulnérabilités (5.1.1, 5.1.2). .5.1.3 , 5.1). Les versions intermédiaires créeront des fonctionnalités pour la prochaine version majeure, c'est-à-dire MongoDB 5.2, 5.3 et 6.0 fournira de nouvelles fonctionnalités pour la sortie de MongoDB XNUMX.

Source: opennet.ru

Ajouter un commentaire