Prvo stabilno izdanje FerretDB-a, implementacija MongoDB-a temeljena na PostgreSQL DBMS-u

Objavljeno je izdanje projekta FerretDB 1.0 koji vam omogućuje zamjenu DBMS-a MongoDB-a orijentiranog na dokumente s PostgreSQL-om bez izmjena koda aplikacije. FerretDB je implementiran kao proxy poslužitelj koji prevodi pozive prema MongoDB-u u SQL upite prema PostgreSQL-u, što vam omogućuje da koristite PostgreSQL kao stvarnu pohranu. Verzija 1.0 označena je kao prvo stabilno izdanje spremno za opću upotrebu. Kod je napisan u Go i distribuiran pod licencom Apache 2.0.

Primarna ciljna publika FerretDB-a su korisnici koji ne koriste napredne mogućnosti MongoDB-a u svojim aplikacijama, već žele koristiti potpuno otvoreni softverski skup. U svojoj trenutnoj fazi razvoja, FerretDB podržava podskup MongoDB mogućnosti koje se najčešće koriste u tipičnim aplikacijama. Potreba za implementacijom FerretDB-a može se pojaviti u vezi s prijelazom MongoDB-a na vlasničku SSPL licencu, koja se temelji na AGPLv3 licenci, ali nije otvorena, budući da sadrži diskriminirajući zahtjev za isporuku pod SSPL licencom ne samo aplikacijskog koda sebe, ali i izvorne kodove svih komponenti uključenih u pružanje usluge u oblaku.

MongoDB zauzima nišu između brzih i skalabilnih sustava koji rade s podacima u formatu ključ/vrijednost i relacijskih DBMS-ova koji su funkcionalni i jednostavni za formuliranje upita. MongoDB podržava pohranu dokumenata u formatu sličnom JSON-u, ima prilično fleksibilan jezik za generiranje upita, može kreirati indekse za razne pohranjene atribute, učinkovito omogućuje pohranu velikih binarnih objekata, podržava bilježenje operacija za promjenu i dodavanje podataka u bazu podataka, može rad u skladu s paradigmom Map/Reduce, podržava replikaciju i konstrukciju konfiguracija otpornih na pogreške.

Među promjenama u FerretDB 1.0:

  • Naredbe createIndexes i dropIndexes implementirane su za stvaranje i brisanje jednog ili više indeksa u zbirci.
  • Naredba getMore implementirana je za prikaz novog dijela rezultata dobivenog izvođenjem naredbi koje vraćaju kursor, kao što su find i aggregate.
  • Dodana je podrška za operator agregacije $sum za izračunavanje zbroja vrijednosti grupe.
  • Dodana podrška za operatore $limit i $skip za ograničavanje broja i preskakanje dokumenata tijekom agregacije.
  • Dodana podrška za operator $count za brojanje dokumenata tijekom agregacije.
  • Dodana podrška za operator $unwind za raščlanjivanje polja niza u dolaznim dokumentima i generiranje popisa s zasebnim dokumentom za svaki element niza.
  • Dodana djelomična podrška za naredbe collStats, dbStats i dataSize za dobivanje statistike o kolekciji i bazi podataka, kao i veličini podataka.

Izvor: opennet.ru

Dodajte komentar