Microsoft a ouvert le code de la base de données DocumentDB basée sur PostgreSQL

Microsoft a annoncĂ© l'ouverture du code du projet DocumentDB, qui peut ĂȘtre utilisĂ© comme une base de donnĂ©es NoSQL autonome, comme une plateforme pour crĂ©er des systĂšmes de stockage personnalisĂ©s ou comme un complĂ©ment pour le stockage de donnĂ©es au format BSON dans la base de donnĂ©es PostgreSQL. En pratique, DocumentDB est utilisĂ© par Microsoft comme base du produit « Azure Cosmos DB for MongoDB », offrant une interface compatible avec la base de donnĂ©es orientĂ©e documents MongoDB. Le code du projet est Ă©crit en langage C et est distribuĂ© sous licence MIT. Le moteur DocumentDB est implĂ©mentĂ© sous la forme d'une surcouche Ă  la base de donnĂ©es PostgreSQL.

Tout comme dans MongoDB, pour stocker des documents structurĂ©s dans DocumentDB, un format similaire Ă  JSON appelĂ© BSON (Binary JSON) est utilisĂ©, permettant de crĂ©er des structures hiĂ©rarchiques dans lesquelles certains documents et tableaux peuvent ĂȘtre imbriquĂ©s dans d'autres documents et tableaux. La diffĂ©rence clĂ© avec JSON rĂ©side dans l'utilisation d'une sĂ©rialisation des donnĂ©es en reprĂ©sentation binaire. Le projet offre Ă  la fois des opĂ©rations NoSQL pour crĂ©er, lire, mettre Ă  jour et supprimer des donnĂ©es au format BSON, ainsi qu'une API pour PostgreSQL standard (DocumentDB peut ĂȘtre considĂ©rĂ© comme une version de PostgreSQL prenant en charge BSON). DocumentDB peut utiliser des fonctionnalitĂ©s de recherche en texte intĂ©gral, des opĂ©rations sur des types de donnĂ©es vectoriels et gĂ©ospatiaux.

Le projet se compose de deux composants :

  • pg_documentdb_core — une extension pour PostgreSQL implĂ©mentant le type BSON et des opĂ©rations pour travailler avec des donnĂ©es BSON dans PostgreSQL.
  • pg_documentdb — API publique de DocumentDB avec des opĂ©rations de base pour travailler avec des documents au format BSON, traiter des requĂȘtes et gĂ©rer des index.

Le premier lancement de DocumentDB fournit un support pour les opĂ©rations CRUD (crĂ©ation, lecture, mise Ă  jour, suppression), des index pour des champs BSON individuels, des index pour la recherche en texte intĂ©gral (compatibles avec RUM), des requĂȘtes vectorielles et gĂ©ospatiales (compatibles avec pg_vector et postgis), ainsi que des capacitĂ©s de formulation de requĂȘtes et d'agrĂ©gation des donnĂ©es BSON.

Le projet FerretDB, qui dĂ©veloppe une implĂ©mentation du SGBD MongoDB basĂ©e sur le SGBD PostgreSQL, a dĂ©jĂ  migrĂ© vers l'utilisation de DocumentDB. FerretDB permet de remplacer la base de donnĂ©es documentaire propriĂ©taire MongoDB par une pile logicielle entiĂšrement open-source, sans apporter de modifications au code des applications, en s'appuyant sur PostgreSQL. La nĂ©cessitĂ© de remplacer MongoDB rĂ©sulte de son passage Ă  la licence SSPL, qui est basĂ©e sur la licence AGPLv3 mais n'est pas ouverte, car elle contient des exigences discriminatoires concernant la distribution non seulement du code de l'application elle-mĂȘme, mais Ă©galement du code source de tous les composants impliquĂ©s dans la fourniture du service cloud.

Initialement, FerretDB consistait Ă  traduire les requĂȘtes adressĂ©es Ă  MongoDB en requĂȘtes SQL vers PostgreSQL, mais depuis la version FerretDB 2.0, qui est en phase de candidat de publication, l'extension DocumentDB de PostgreSQL a Ă©tĂ© mise en Ɠuvre pour supporter le format BSON. Le passage Ă  DocumentDB a permis d'augmenter la performance de FerretDB de plus de 20 fois pour certains types de charges. Parmi les autres nouveautĂ©s de FerretDB 2.0, on note une amĂ©lioration de la compatibilitĂ© avec MongoDB, la possibilitĂ© de rĂ©plication et le support de la recherche vectorielle. Le code de FerretDB est Ă©crit en Go et est distribuĂ© sous la licence Apache 2.0.

Source : opennet.ru

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster