Microsoft ka hapur kodi i DB DocumentDB, i bazuar në PostgreSQL

Kompania Microsoft shpalli hapjen e kodit të projektit DocumentDB, i cili mund të përdoret si një DB NoSQL e veçantë, si një platformë për krijimin e sistemeve të veta të ruajtjes, ose si një shtesë për ruajtjen e të dhënave në formatin BSON në DB PostgreSQL. Në praktikë, DocumentDB përdoret nga Microsoft si baza e produktit 'Azure Cosmos DB for MongoDB', për të ofruar një ndërfaqe të pajtueshme me DB-në që fokuson në dokumente MongoDB. Kodi i projektit është shkruar në gjuhën C dhe shpërndahet nën licencën MIT. Motori DocumentDB është realizuar si një shtresë mbi DB-në PostgreSQL.

Si në MongoDB, për ruajtjen e dokumenteve të strukturuara në DocumentDB, përdoret formati BSON (Bin­ary JSON) me ngjashmëri me JSON, duke lejuar krijimin e strukturave hierarkike, ku disa dokumente dhe masa mund të përfshihen në tjerë dokumente dhe masa. Dallimi kryesor nga JSON është përdorimi i serializimit të të dhënave në një përfaqësim binar. Projekti ofron si operacione NoSQL për krijimin, leximin, azhurnimin dhe fshirjen e të dhënave në formatin BSON, ashtu edhe një API për PostgreSQL standard (DocumentDB mund të konsiderohet si një variant i PostgreSQL me mbështetje për BSON). Në DocumentDB mund të përdoren mundësitë e kërkimit me tekst të plotë, operacione mbi lloje të dhënash vektoriale dhe gjeopikës.

Projekti përbëhet nga dy komponente:

  • pg_documentdb_core — njĂ« zgjerim pĂ«r PostgreSQL me realizimin e llojit BSON dhe operacionet pĂ«r tĂ« punuar nĂ« PostgreSQL me tĂ« dhĂ«na BSON.
  • pg_documentdb — njĂ« API publik i DocumentDB me operacione bazike pĂ«r tĂ« punuar me dokumente nĂ« formatin BSON, trajtimin e kĂ«rkesave dhe menaxhimin e indekseve.

Lëshimi i parë i DocumentDB ofron mbështetje për operacionet CRUD (krijim, lexim, azhurnim, fshirje), indekse për fusha të veçanta BSON, indekse për kërkim të plotëtekstit (të pajtueshme me RUM), kërkesa vektoriale dhe gjeospaciale (të pajtueshme me pg_vector dhe postgis), mundësi për krijimin e kërkesave dhe agregimin e të dhënave BSON.

Projekti FerretDB, i cili po zhvillon zbatimin e SGBD-së MongoDB mbi bazën e SGBD-së PostgreSQL, ka kaluar tashmë në përdorimin e DocumentDB. FerretDB lejon zëvendësimin e sistemit proprietar të menaxhimit të dokumenteve MongoDB me një grumbull softuerik plotësisht të hapur, të bazuar në PostgreSQL, pa bërë ndryshime në kodin e aplikacioneve. Nevoja për zëvendësimin e MongoDB shpjegohet me kalimin e këtij SGBD në licencën SSPL, e cila bazohet në licencën AGPLv3, por nuk është e hapur, pasi përmban një kërkesë diskriminuese për dorëzimin jo vetëm të kodit të aplikacionit, por edhe të burimeve të të gjithë komponenteve të përfshirë në ofrimin e shërbimit në cloud.

Fillimisht, puna e FerretDB përfshinte përkthimin e thirrjeve ndaj MongoDB në kërkesat SQL për PostgreSQL, por duke filluar nga versioni FerretDB 2.0, i cili është në fazën e kandidatëve për lëshim, është përdorur zgjerimi DocumentDB në PostgreSQL për të mbështetur formatin BSON. Kalimi në përdorimin e DocumentDB ndihmoi për të rritur më shumë se 20 herë performancën e FerretDB për disa lloje ngarkesash. Nga risitë e tjera, FerretDB 2.0 përmendet për përmirësimin e përputhshmërisë me MongoDB, mundësinë e replikimit dhe mbështetje për kërkimin vektorial. Kodi FerretDB është shkruar në gjuhën Go dhe shpërndahet nën licencën Apache 2.0.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster