Prva stabilna izdaja FerretDB, implementacija MongoDB, ki temelji na DBMS PostgreSQL

Objavljena je bila izdaja projekta FerretDB 1.0, ki vam omogoča zamenjavo dokumentno usmerjenega DBMS MongoDB s PostgreSQL brez spreminjanja kode aplikacije. FerretDB je implementiran kot proxy strežnik, ki prevede klice v MongoDB v poizvedbe SQL v PostgreSQL, kar vam omogoča uporabo PostgreSQL kot dejanskega pomnilnika. Različica 1.0 je označena kot prva stabilna izdaja, pripravljena za splošno uporabo. Koda je napisana v Go in se distribuira pod licenco Apache 2.0.

Glavna ciljna publika za FerretDB so uporabniki, ki v svojih aplikacijah ne uporabljajo naprednih funkcij MongoDB, ampak želijo uporabljati popolnoma odprt programski sklad. Na trenutni stopnji razvoja FerretDB podpira podnabor funkcij MongoDB, ki se najpogosteje uporabljajo v tipičnih aplikacijah. Potreba po implementaciji FerretDB se lahko pojavi v povezavi s prehodom MongoDB na neprosto licenco SSPL, ki temelji na licenci AGPLv3, vendar ni odprta, saj vsebuje diskriminatorno zahtevo po dobavi pod licenco SSPL ne samo samo kodo aplikacije, temveč tudi izvorne kode vseh komponent, ki sodelujejo pri zagotavljanju storitev v oblaku.

MongoDB zavzema nišo med hitrimi in razširljivimi sistemi, ki delujejo na podatkih ključ/vrednost, in relacijskimi DBMS, ki so funkcionalni in enostavni za poizvedovanje. MongoDB podpira shranjevanje dokumentov v formatu, podobnem JSON, ima dokaj prilagodljiv jezik za generiranje poizvedb, lahko ustvari indekse za različne shranjene atribute, učinkovito zagotavlja shranjevanje velikih binarnih objektov, podpira beleženje operacij za spreminjanje in dodajanje podatkov v zbirko podatkov, lahko deluje v skladu s paradigmo Map/Reduce, podpira replikacijo in gradnjo konfiguracij, odpornih na napake.

Med spremembami v FerretDB 1.0:

  • Implementirani ukazi createIndexes in dropIndexes za ustvarjanje in spuščanje enega ali več indeksov v zbirko.
  • Ukaz getMore je bil implementiran za prikaz novega dela rezultata, pridobljenega z izvajanjem ukazov, ki vrnejo kazalec, kot sta find in aggregate.
  • Dodana podpora za operator združevanja $sum za izračun vsote vrednosti skupine.
  • Dodana podpora za operaterja $limit in $skip za omejitev števila in preskok dokumentov pri združevanju.
  • Dodana podpora za operator $count za štetje dokumentov pri združevanju.
  • Dodana podpora za operator $unwind za razčlenitev polj polja v dohodnih dokumentih in oblikovanje seznama z ločenim dokumentom za vsak element polja.
  • Dodana je delna podpora za ukaze collStats, dbStats in dataSize za pridobitev statističnih podatkov o zbirkah in zbirkah podatkov ter velikosti podatkov.

Vir: opennet.ru

Dodaj komentar