Prima lansare stabilă a FerretDB, implementarea MongoDB bazată pe DBMS PostgreSQL

A fost publicată lansarea proiectului FerretDB 1.0, care vă permite să înlocuiți DBMS MongoDB orientat spre documente cu PostgreSQL fără a face modificări codului aplicației. FerretDB este implementat ca un server proxy care traduce apelurile către MongoDB în interogări SQL către PostgreSQL, ceea ce vă permite să utilizați PostgreSQL ca stocare reală. Versiunea 1.0 este marcată ca prima versiune stabilă gata pentru utilizare generală. Codul este scris în Go și distribuit sub licența Apache 2.0.

Publicul țintă principal al FerretDB este utilizatorii care nu folosesc capabilitățile avansate ale MongoDB în aplicațiile lor, dar doresc să utilizeze o stivă de software complet deschisă. În stadiul actual de dezvoltare, FerretDB acceptă un subset de capabilități MongoDB care sunt utilizate cel mai frecvent în aplicațiile tipice. Necesitatea implementării FerretDB poate apărea în legătură cu trecerea MongoDB la licența SSPL proprietară, care se bazează pe licența AGPLv3, dar nu este deschisă, deoarece conține o cerință discriminatorie de a furniza sub licența SSPL nu numai codul aplicației. în sine, dar și codurile sursă ale tuturor componentelor implicate în furnizarea serviciului cloud.

MongoDB ocupă o nișă între sistemele rapide și scalabile care operează pe date în format cheie/valoare și SGBD-uri relaționale care sunt funcționale și ușor de formulat interogări. MongoDB acceptă stocarea documentelor într-un format asemănător JSON, are un limbaj destul de flexibil pentru generarea de interogări, poate crea indecși pentru diverse atribute stocate, oferă în mod eficient stocarea de obiecte binare mari, acceptă înregistrarea operațiunilor pentru modificarea și adăugarea datelor în baza de date, poate lucrează în conformitate cu paradigma Map/Reduce, acceptă replicarea și construirea de configurații tolerante la erori.

Printre modificările din FerretDB 1.0:

  • Comenzile createIndexes și dropIndexes au fost implementate pentru a crea și șterge unul sau mai mulți indecși dintr-o colecție.
  • Comanda getMore a fost implementată pentru a afișa o nouă porțiune a rezultatului obținut din executarea comenzilor care returnează un cursor, cum ar fi find și aggregate.
  • S-a adăugat suport pentru operatorul de agregare $sum pentru a calcula suma valorilor grupului.
  • S-a adăugat suport pentru operatorii $limit și $skip pentru a limita numărul și omiterea documentelor în timpul agregării.
  • S-a adăugat suport pentru operatorul $count pentru numărarea documentelor în timpul agregării.
  • S-a adăugat suport pentru operatorul $unwind pentru a analiza câmpurile matrice din documentele primite și pentru a genera o listă cu un document separat pentru fiecare element de matrice.
  • S-a adăugat suport parțial pentru comenzile collStats, dbStats și dataSize pentru a obține statistici despre colecție și baza de date, precum și dimensiunea datelor.

Sursa: opennet.ru

Adauga un comentariu