Première version stable de FerretDB, implémentation de MongoDB basée sur le SGBD PostgreSQL

La version du projet FerretDB 1.0 a été publiée, ce qui vous permet de remplacer le SGBD orienté document MongoDB par PostgreSQL sans apporter de modifications au code de l'application. FerretDB est implémenté en tant que serveur proxy qui traduit les appels à MongoDB en requêtes SQL vers PostgreSQL, ce qui vous permet d'utiliser PostgreSQL comme stockage réel. La version 1.0 est considérée comme la première version stable prête pour une utilisation générale. Le code est écrit en Go et distribué sous la licence Apache 2.0.

Le public cible principal de FerretDB est constitué d'utilisateurs qui n'utilisent pas les capacités avancées de MongoDB dans leurs applications, mais souhaitent utiliser une pile logicielle complètement ouverte. À son stade actuel de développement, FerretDB prend en charge un sous-ensemble de fonctionnalités MongoDB les plus couramment utilisées dans les applications typiques. La nécessité d'implémenter FerretDB peut survenir dans le cadre de la transition de MongoDB vers la licence propriétaire SSPL, qui est basée sur la licence AGPLv3, mais n'est pas ouverte, car elle contient une exigence discriminatoire de fournir sous la licence SSPL non seulement le code de l'application. lui-même, mais aussi les codes sources de tous les composants impliqués dans la fourniture du service cloud.

MongoDB occupe une niche entre les systèmes rapides et évolutifs qui fonctionnent sur des données au format clé/valeur, et les SGBD relationnels fonctionnels et faciles à formuler des requêtes. 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.

Parmi les changements dans FerretDB 1.0 :

  • Les commandes createIndexes et dropIndexes ont été implémentées pour créer et supprimer un ou plusieurs index sur une collection.
  • La commande getMore a été implémentée pour afficher une nouvelle partie du résultat obtenu lors de l'exécution de commandes qui renvoient un curseur, telles que rechercher et agréger.
  • Ajout de la prise en charge de l'opérateur d'agrégation $sum pour calculer la somme des valeurs du groupe.
  • Ajout de la prise en charge des opérateurs $limit et $skip pour limiter le nombre et ignorer des documents lors de l'agrégation.
  • Ajout de la prise en charge de l'opérateur $count pour compter les documents lors de l'agrégation.
  • Ajout de la prise en charge de l'opérateur $unwind pour analyser les champs du tableau dans les documents entrants et générer une liste avec un document distinct pour chaque élément du tableau.
  • Ajout d'une prise en charge partielle des commandes collStats, dbStats et dataSize pour obtenir des statistiques sur la collection et la base de données, ainsi que sur la taille des données.

Source: opennet.ru

Ajouter un commentaire