Første stabile udgivelse af FerretDB, MongoDB-implementering baseret på PostgreSQL DBMS

Frigivelsen af ​​FerretDB 1.0-projektet er blevet offentliggjort, som giver dig mulighed for at erstatte det dokumentorienterede DBMS MongoDB med PostgreSQL uden at foretage ændringer i applikationskoden. FerretDB er implementeret som en proxy-server, der oversætter opkald til MongoDB til SQL-forespørgsler til PostgreSQL, hvilket giver dig mulighed for at bruge PostgreSQL som det faktiske lager. Version 1.0 er markeret som den første stabile udgivelse klar til generel brug. Koden er skrevet i Go og distribueret under Apache 2.0-licensen.

Hovedmålgruppen for FerretDB er brugere, der ikke bruger MongoDB avancerede funktioner i deres applikationer, men ønsker at bruge en helt åben softwarestak. På dets nuværende udviklingstrin understøtter FerretDB en delmængde af MongoDB-funktionerne, der oftest bruges i typiske applikationer. Behovet for at implementere FerretDB kan opstå i forbindelse med overgangen af ​​MongoDB til en ikke-fri SSPL-licens, som er baseret på AGPLv3-licensen, men som ikke er åben, da den indeholder et diskriminerende krav om at levere under SSPL-licensen ikke kun selve applikationskoden, men også kildekoderne for alle komponenter, der er involveret i leveringen af ​​cloud-tjenester.

MongoDB indtager en niche mellem hurtige og skalerbare systemer, der opererer på nøgle-/værdidata og relationelle DBMS'er, der er funktionelle og nemme at forespørge på. MongoDB understøtter lagring af dokumenter i et JSON-lignende format, har et ret fleksibelt sprog til generering af forespørgsler, kan oprette indekser til forskellige lagrede attributter, giver effektivt lagring af store binære objekter, understøtter logning af operationer for at ændre og tilføje data til databasen, kan arbejde i overensstemmelse med paradigmet Map/Reduce, understøtter replikering og opbygning af fejltolerante konfigurationer.

Blandt ændringerne i FerretDB 1.0:

  • Implementeret createIndex og dropIndex-kommandoer til at oprette og slippe et eller flere indekser til en samling.
  • GetMore-kommandoen er blevet implementeret til at vise en ny del af resultatet opnået ved udførelse af kommandoer, der returnerer en markør, såsom find og aggregeret.
  • Tilføjet understøttelse af $sum-aggregationsoperatoren til at beregne summen af ​​gruppeværdier.
  • Tilføjet understøttelse af $limit- og $skip-operatorerne for at begrænse antallet og springe dokumenter over ved aggregering.
  • Tilføjet understøttelse af $count-operatøren til at tælle dokumenter ved aggregering.
  • Tilføjet understøttelse af $unwind-operatoren til at parse array-felter i indgående dokumenter og danne en liste med et separat dokument for hvert array-element.
  • Tilføjet delvis understøttelse af collStats-, dbStats- og dataSize-kommandoer for at få indsamlings- og databasestatistik og datastørrelse.

Kilde: opennet.ru

Tilføj en kommentar