Cette rubrique décrit les principales nouvelles fonctionnalités de MongoDB 5.0.
Contexte
MongoDB 5.0 marque le début d'un nouveau cycle de publication visant à proposer plus rapidement de nouvelles fonctionnalités aux utilisateurs. Par exemple, l'API versionnée et le resharding en direct simplifient les futures mises à niveau de la base de données et s'adaptent à l'évolution des besoins métier. La plateforme native de données de séries temporelles permet à MongoDB de prendre en charge un éventail plus large de charges de travail et de cas d'utilisation, tandis que le nouveau MongoDB Shell améliore l'expérience utilisateur.
Plateforme native de séries temporelles
MongoDB 5.0 étend sa plateforme de données d'application polyvalente afin de simplifier la gestion des données de séries temporelles, élargissant ainsi ses cas d'utilisation dans des domaines tels que l'IoT, l'analyse financière et la logistique.
Les collections de séries temporelles de MongoDB stockent automatiquement les données dans un format hautement optimisé et compressé, réduisant la taille de stockage et les opérations d'E/S pour de meilleures performances et une meilleure montée en charge. Cela raccourcit le cycle de développement et vous permet de créer rapidement des modèles optimisés pour les applications de séries temporelles.
Exemple de commande pour créer une collection de séries temporelles :
db.createCollection("collection_name",{ timeseries: { timeField: "timestamp" } } )
MongoDB ajuste de manière transparente la fréquence d'ingestion et gère automatiquement les mesures hors ordre en fonction des partitions temporelles générées dynamiquement. Le dernier connecteur MongoDB pour Apache Kafka prend nativement en charge les séries temporelles. Vous pouvez créer automatiquement une collection de séries temporelles directement à partir des messages de topic Kafka, ce qui vous permet de traiter et d'agréger les données lors de leur ingestion avant de les écrire dans une collection de séries temporelles MongoDB.
Une collection de séries temporelles crée automatiquement un index clusterisé ordonné chronologiquement, ce qui réduit la latence des requêtes. L'API de requête MongoDB est également enrichie de fonctions de fenêtrage, vous permettant d'exécuter des requêtes analytiques telles que des moyennes mobiles et des sommes cumulatives. Dans un système de base de données relationnelle, celles-ci sont souvent appelées fonctions analytiques SQL et prennent en charge des fenêtres définies par des lignes (par exemple, une moyenne mobile sur trois lignes). MongoDB va plus loin en ajoutant des fonctions de séries temporelles puissantes telles que la moyenne mobile exponentielle (EMA), les dérivées et les intégrales, qui prennent en charge des fenêtres définies par le temps (par exemple, une moyenne mobile sur 15 minutes). Vous pouvez utiliser les fonctions de fenêtrage pour interroger à la fois les collections de séries temporelles et les collections MongoDB classiques, offrant ainsi de nouvelles capacités analytiques pour divers types d'applications. De plus, MongoDB 5.0 fournit de nouveaux opérateurs de date, notamment $dateAdd, $dateSubtract, $dateDiff, et $dateTrunc, pour agréger et interroger les données sur des fenêtres temporelles personnalisées.
Vous pouvez placer une collection de séries temporelles dans la même base de données qu'une collection MongoDB classique. Il n'est pas nécessaire de choisir une base de données spécialisée pour les séries temporelles, incapable de servir tout autre type d'application, ni de mettre en œuvre des intégrations complexes pour mélanger des données de séries temporelles avec d'autres données. En fournissant une plateforme unifiée, MongoDB vous permet de construire des applications de séries temporelles performantes et efficaces, tout en prenant en charge d'autres cas d'utilisation ou charges de travail. Cela élimine le coût et la complexité liés à l'intégration et à l'exécution de plusieurs bases de données disparates.
Resharding en direct
| Version de la base de données | Fonctionnalités | Méthode de mise en œuvre |
| Avant MongoDB 5.0 | Avant MongoDB 5.0, le resharding était un processus complexe et manuel. |
|
| MongoDB 5.0 et versions ultérieures |
|
reshardCollection Vous pouvez modifier la clé de shard d'une collection à la demande au fur et à mesure que votre activité se développe, sans interruption de la base de données ni migrations de données complexes. Il vous suffit d'exécuter la commande dans le MongoDB Shell, de sélectionner la base de données et la collection à resharder, puis de spécifier la nouvelle clé de shard.
Remarque
|
API versionnée
-
Compatibilité des applications
À partir de MongoDB 5.0, l'API versionnée définit un ensemble stable des commandes et paramètres les plus courants, qui restent inchangés tant dans les versions majeures annuelles que dans les versions rapides trimestrielles. En découplant les cycles de vie de l'application et de la base de données, vous pouvez associer votre pilote à une version spécifique de l'API MongoDB. Cela garantit que votre application peut fonctionner pendant des années sans modification de code, même lors des mises à niveau et améliorations de la base de données.
-
Flexibilité pour ajouter de nouvelles fonctionnalités et améliorations
L'API versionnée permet à MongoDB d'ajouter avec flexibilité de nouvelles fonctionnalités et améliorations à la base de données à chaque version, tout en maintenant la rétrocompatibilité. Lorsque vous devez modifier l'API, vous pouvez introduire une nouvelle version de l'API qui s'exécute sur le même serveur parallèlement aux API versionnées existantes. Alors que MongoDB accélère son calendrier de publication, l'API versionnée vous permet d'adopter plus rapidement et plus facilement les dernières fonctionnalités de MongoDB.
La valeur par défaut de Write Concern est définie sur le niveau Majority
À partir de MongoDB 5.0, le niveau par défaut de
write concern
est
majority
. Une opération d'écriture n'est reconnue comme réussie qu'après avoir été appliquée au nœud principal et persistée dans le journal d'une majorité de nœuds secondaires, offrant ainsi des garanties de durabilité des données plus fortes dès le départ.
Le
write concern
est entièrement configurable. Vous pouvez personnaliser le
write concern
pour équilibrer les performances de l'application et la durabilité des données.
Optimisations de la gestion des connexions
Par défaut, chaque connexion client correspond à un thread sur le serveur MongoDB backend lorsque vous configurez net.serviceExecutor sur synchronous. La création, le basculement et la destruction de threads sont des opérations gourmandes en ressources. Lorsque le nombre de connexions est trop élevé, les threads consomment d'importantes ressources serveur.
Une tempête de connexions correspond à un nombre élevé de connexions ou à un taux de création de connexions incontrôlé. Ce problème peut avoir diverses causes et survient souvent lorsque les performances du service sont déjà dégradées.
Pour remédier à ces situations, MongoDB 5.0 introduit les mesures suivantes :
Elle limite le nombre de connexions que les pilotes peuvent créer simultanément, offrant ainsi un moyen simple et efficace de prévenir la surcharge du serveur de base de données.
Elle réduit la fréquence à laquelle les pilotes vérifient le pool de connexions, laissant aux nœuds serveur non réactifs ou surchargés le temps de récupérer.
Les pilotes dirigent les charges de travail vers les serveurs plus rapides disposant de pools de connexions plus sains, au lieu de sélectionner aléatoirement parmi les serveurs disponibles.
Ces mesures, combinées aux améliorations apportées à la couche de routage des requêtes mongos depuis les versions précédentes, renforcent encore la capacité de MongoDB à gérer des charges à haute concurrence.
Requêtes snapshot de longue durée
Les requêtes snapshot de longue durée augmentent la polyvalence et la résilience des applications. Vous pouvez exécuter des requêtes dont la durée par défaut est de 5 minutes (ou ajustable selon une durée personnalisée) tout en maintenant une isolation snapshot cohérente avec une base de données transactionnelle active. Vous pouvez également effectuer des requêtes snapshot sur un nœud secondaire, ce qui vous permet d'exécuter différentes charges de travail sur un seul cluster et de les mettre à l'échelle sur différents shards.
MongoDB implémente les requêtes snapshot de longue durée via une fonctionnalité du moteur de stockage sous-jacent appelée Durable History, introduite dans MongoDB 4.4. Durable History stocke un instantané de toutes les valeurs de champ qui ont changé depuis le début d'une requête. En utilisant Durable History, les requêtes peuvent maintenir une isolation snapshot même lorsque les données changent. Durable History aide également à réduire la pression sur le cache du moteur de stockage, permettant un débit de requêtes plus élevé dans les scénarios à forte charge d'écriture.
Nouveau MongoDB Shell
Pour offrir une meilleure expérience utilisateur, MongoDB 5.0 introduit le MongoDB Shell (mongosh), entièrement repensé. Il propose une expérience moderne en ligne de commande, des fonctionnalités d'utilisabilité améliorées et un environnement de script puissant. Le nouveau MongoDB Shell est désormais le shell par défaut de la plateforme MongoDB. Il inclut des fonctionnalités telles que la coloration syntaxique, la saisie semi-automatique intelligente, l'aide contextuelle et des messages d'erreur explicites pour une expérience intuitive et interactive.
-
Expérience utilisateur améliorée
-
Rédigez plus facilement des requêtes et des agrégations, et obtenez des résultats plus lisibles.
Le nouveau MongoDB Shell prend en charge la coloration syntaxique, facilitant la distinction entre les champs, les valeurs et les types de données pour éviter les erreurs de syntaxe. Si une erreur se produit, le nouveau MongoDB Shell identifie précisément le problème et suggère une solution.
-
Saisissez plus rapidement les requêtes et les commandes.
Le nouveau MongoDB Shell prend en charge la saisie semi-automatique intelligente. Il fournit des suggestions pour les méthodes, les commandes et les expressions MQL en fonction de la version de MongoDB que vous utilisez.
Exemple : Si vous ne vous souvenez plus de la syntaxe d'une commande, vous pouvez la rechercher rapidement directement depuis le MongoDB Shell.
secondary [direct: secondary] sample_mflix → db.movies.createIndex db.movies.createIndexes db.movies.createIndex secondary [direct: secondary] sample_mflix → db.movies.createIndex.help() db.coll.createIndex({ category: 1 }, { name: 'index-1' }): Creates one index on a collection For more information on usage: https://docs.mongodb.com/manual/reference/method/db.collection.createIndex secondary [direct: secondary] sample_mflix →
-
-
Environnement de script avancé
L'environnement de script du nouveau MongoDB Shell est construit sur le REPL Node.js (Read-Eval-Print Loop). Vous pouvez utiliser toutes les API Node.js et tous les modules de npm dans vos scripts. Vous pouvez également charger et exécuter des scripts depuis le système de fichiers, et continuer à utiliser
load()eteval()pour exécuter des scripts, comme dans l'ancien shell. -
Extensibilité et plugins
Le nouveau MongoDB Shell est hautement extensible, vous permettant d'utiliser toutes les fonctionnalités de MongoDB pour améliorer votre productivité.
Dans le nouveau MongoDB Shell, vous pouvez installer des plugins Snippets. Le shell peut charger automatiquement les Snippets et utiliser toutes les API Node.js et les packages npm. MongoDB maintient également un référentiel Snippets avec des fonctionnalités utiles, telles qu'un plugin pour analyser le schéma d'une collection spécifiée. Vous pouvez également configurer le MongoDB Shell pour utiliser les plugins de votre choix.
RemarqueLes plugins sont actuellement une fonctionnalité expérimentale dans le MongoDB Shell.
PyMongoArrow et science des données
Avec la nouvelle API PyMongoArrow, vous pouvez utiliser Python pour exécuter des analyses complexes et du machine learning sur MongoDB. PyMongoArrow peut convertir rapidement les résultats de requêtes MongoDB simples en formats de données populaires, tels qu'un DataFrame Pandas ou un tableau NumPy, afin de rationaliser vos flux de travail de science des données.
Améliorations de la validation de schéma
La validation de schéma est un moyen d'appliquer des contrôles de gouvernance des données dans MongoDB. Dans MongoDB 5.0, la validation de schéma est plus simple et plus conviviale. Lorsqu'une opération échoue à la validation, MongoDB génère un message d'erreur descriptif. Ce message vous aide à comprendre quel document n'était pas conforme aux règles du validateur de la collection et pourquoi, vous permettant d'identifier et de corriger rapidement le code qui viole les règles.
Créations d'index reprenables
Dans MongoDB 5.0, une création d'index en cours reprend automatiquement là où elle s'était arrêtée après un redémarrage du nœud. Cela réduit l'impact métier des actions de maintenance planifiées. Par exemple, lorsque vous redémarrez ou mettez à niveau un nœud de base de données, vous n'avez plus à vous soucier de l'échec d'une création d'index en cours sur une grande collection.
Modifications du modèle de publication
Étant donné que MongoDB prend en charge de nombreuses versions et plateformes, chaque publication doit être validée sur plus de 20 plateformes prises en charge. Ce travail de validation approfondi a ralenti la livraison des nouvelles fonctionnalités. Par conséquent, à partir de MongoDB 5.0, les publications sont divisées en versions majeures et versions rapides. Les versions rapides sont disponibles en téléchargement à des fins de développement et de test, mais elles ne sont pas recommandées pour les environnements de production.
Autres fonctionnalités
Pour plus d'informations sur les fonctionnalités de MongoDB 5.0, consultez les Notes de version de MongoDB 5.0.