Første stabile utgivelse av FerretDB, MongoDB-implementering basert på PostgreSQL DBMS

Utgivelsen av FerretDB 1.0-prosjektet er publisert, som lar deg erstatte det dokumentorienterte DBMS MongoDB med PostgreSQL uten å gjøre endringer i applikasjonskoden. FerretDB er implementert som en proxy-server som oversetter kall til MongoDB til SQL-spørringer til PostgreSQL, som lar deg bruke PostgreSQL som selve lagringen. Versjon 1.0 er merket som den første stabile utgivelsen klar for generell bruk. Koden er skrevet i Go og distribuert under Apache 2.0-lisensen.

Hovedmålgruppen for FerretDB er brukere som ikke bruker MongoDB avanserte funksjoner i applikasjonene sine, men ønsker å bruke en helt åpen programvarestabel. På det nåværende utviklingsstadiet støtter FerretDB en undergruppe av MongoDB-funksjonene som oftest brukes i typiske applikasjoner. Behovet for å implementere FerretDB kan oppstå i forbindelse med overgangen av MongoDB til en ikke-fri SSPL-lisens, som er basert på AGPLv3-lisensen, men som ikke er åpen, siden den inneholder et diskriminerende krav om å levere under SSPL-lisensen, ikke bare selve applikasjonskoden, men også kildekodene til alle komponenter som er involvert i levering av skytjenester.

MongoDB opptar en nisje mellom raske og skalerbare systemer som opererer på nøkkel-/verdidata og relasjonelle DBMS-er som er funksjonelle og enkle å spørre etter. MongoDB støtter lagring av dokumenter i et JSON-lignende format, har et ganske fleksibelt språk for å generere spørringer, kan lage indekser for ulike lagrede attributter, gir effektivt lagring av store binære objekter, støtter logging av operasjoner for å endre og legge til data til databasen, kan arbeid i samsvar med paradigmet Map/Reduce, støtter replikering og bygging av feiltolerante konfigurasjoner.

Blant endringene i FerretDB 1.0:

  • Implementerte createIndex og dropIndex-kommandoer for å opprette og slippe en eller flere indekser til en samling.
  • GetMore-kommandoen har blitt implementert for å vise en ny del av resultatet oppnådd fra utførelse av kommandoer som returnerer en markør, for eksempel finn og aggregert.
  • Lagt til støtte for $sum-aggregeringsoperatoren for å beregne summen av gruppeverdier.
  • Lagt til støtte for operatørene $limit og $skip for å begrense antallet og hoppe over dokumenter ved aggregering.
  • Lagt til støtte for $count-operatøren for telling av dokumenter ved aggregering.
  • Lagt til støtte for $unwind-operatoren for å analysere array-felt i innkommende dokumenter og danne en liste med et eget dokument for hvert array-element.
  • Lagt til delvis støtte for collStats, dbStats og dataSize-kommandoer for å få innsamlings- og databasestatistikk og datastørrelse.

Kilde: opennet.ru

Legg til en kommentar