FerretDB, MongoDB juurutuse esimene stabiilne väljalase, mis põhineb PostgreSQL DBMS-il

Avaldatud on FerretDB 1.0 projekti väljalase, mis võimaldab asendada dokumendile orienteeritud DBMS MongoDB PostgreSQL-iga ilma rakenduse koodis muudatusi tegemata. FerretDB on rakendatud puhverserverina, mis tõlgib MongoDB kõned SQL-päringuteks PostgreSQL-i, mis võimaldab teil kasutada PostgreSQL-i tegeliku salvestusruumina. Versioon 1.0 on märgitud esimeseks stabiilseks väljalaseks, mis on valmis üldiseks kasutamiseks. Kood on kirjutatud Go-s ja seda levitatakse Apache 2.0 litsentsi all.

FerretDB peamiseks sihtrühmaks on kasutajad, kes ei kasuta oma rakendustes MongoDB lisafunktsioone, vaid soovivad kasutada täiesti avatud tarkvarapinu. Praeguses arendusjärgus toetab FerretDB tüüpilistes rakendustes kõige sagedamini kasutatavate MongoDB funktsioonide alamhulka. FerretDB juurutamise vajadus võib tekkida seoses MongoDB üleminekuga mittevabale SSPL-litsentsile, mis põhineb AGPLv3 litsentsil, kuid ei ole avatud, kuna sisaldab diskrimineerivat nõuet tarnida SSPL-litsentsi alusel mitte ainult rakenduse kood ise, aga ka kõigi pilveteenuste pakkumisega seotud komponentide lähtekoodid.

MongoDB hõivab niši kiirete ja skaleeritavate süsteemide vahel, mis töötavad võtme-/väärtusandmetel, ning relatsiooniliste DBMS-ide vahel, mis on funktsionaalsed ja hõlpsasti päritavad. MongoDB toetab dokumentide salvestamist JSON-laadses vormingus, päringute genereerimiseks on üsna paindlik keel, suudab luua indekseid erinevatele salvestatud atribuutidele, võimaldab tõhusalt salvestada suuri binaarobjekte, toetab toimingute logimist andmete muutmiseks ja lisamiseks andmebaasi, saab töötab kooskõlas paradigmaga Map/Reduce, toetab replikatsiooni ja veakindlate konfiguratsioonide loomist.

FerretDB 1.0 muudatuste hulgas:

  • Rakendatud käsud createIndexes ja dropIndexes ühe või mitme indeksi loomiseks ja kogusse pukseerimiseks.
  • Käsk getMore on rakendatud selleks, et kuvada uus osa tulemustest, mis on saadud kursori tagastavate käskude (nt otsimine ja koondamine) täitmisel.
  • Grupi väärtuste summa arvutamiseks on lisatud tugi operaatorile $sum agregation.
  • Lisatud tugi operaatoritele $limit ja $skip, et piirata dokumentide arvu ja jätta koondamisel vahele.
  • Lisatud tugi $count operaatorile dokumentide loendamiseks liitmisel.
  • Lisatud tugi operaatorile $unwind, et sõeluda sissetulevates dokumentides massiivi välju ja moodustada iga massiivi elemendi jaoks eraldi dokumendiga loend.
  • Lisatud osaline tugi CollStats, dbStats ja dataSize käskudele, et saada kogumise ja andmebaasi statistikat ja andmete suurust.

Allikas: opennet.ru

Lisa kommentaar