Kutulutsidwa kwa FerretDB 0.1, kukhazikitsidwa kwa MongoDB kutengera PostgreSQL DBMS

Kutulutsidwa kwa pulojekiti ya FerretDB 0.1 (yomwe kale inali MangoDB) kwasindikizidwa, kukulolani kuti mulowe m'malo mwa DBMS MongoDB yokhala ndi zolemba ndi PostgreSQL osasintha pamakina ogwiritsira ntchito. FerretDB ikugwiritsidwa ntchito ngati seva ya proxy yomwe imamasulira mafoni ku MangoDB kukhala mafunso a SQL ku PostgreSQL, kulola PostgreSQL kugwiritsidwa ntchito ngati yosungirako yeniyeni. Khodiyo idalembedwa mu Go ndikugawidwa pansi pa layisensi ya Apache 2.0.

Kufunika kwa kusamuka kungabwere chifukwa chakusintha kwa MongoDB kupita ku chiphaso cha SSPL, chomwe chimachokera pa layisensi ya AGPLv3, koma sichinatsegulidwe, chifukwa chili ndi lamulo latsankho loti liperekedwe pansi pa layisensi ya SSPL osati nambala yofunsira yokha, komanso gwero lazinthu zonse zomwe zikukhudzidwa ndi utumiki wamtambo wopereka.

Omvera omwe a FerretDB akufuna ndi ogwiritsa ntchito omwe sagwiritsa ntchito luso lapamwamba la MongoDB pamapulogalamu awo, koma akufuna kugwiritsa ntchito pulogalamu yotseguka kwathunthu. Pakali pano, FerretDB imathandizirabe gawo limodzi la mphamvu za MongoDB zomwe zimagwiritsidwa ntchito nthawi zambiri. M'tsogolomu, akukonzekera kukwaniritsa kuyanjana kwathunthu ndi madalaivala a MongoDB ndikupereka mwayi wogwiritsa ntchito FerretDB ngati cholowa m'malo mwa MongoDB.

Tiyeni tikumbukire kuti MongoDB ili ndi kagawo kakang'ono pakati pa machitidwe ofulumira komanso owopsa omwe amagwiritsa ntchito deta mumtundu wamtengo wapatali / wamtengo wapatali, ndi ma DBMS ogwirizana omwe amagwira ntchito komanso osavuta kupanga mafunso. MongoDB imathandizira kusunga zikalata mumtundu wofanana ndi JSON, ili ndi chilankhulo chosavuta kupanga mafunso, imatha kupanga zolemba zamitundu yosiyanasiyana yosungidwa, imathandizira bwino kusungirako zinthu zazikulu zamabina, imathandizira kudula mitengo kuti isinthe ndikuwonjezera deta ku database, imatha gwirani ntchito molingana ndi paradigm Mapu / Chepetsani, imathandizira kubwereza komanso kupanga masinthidwe olekerera zolakwika.

Kutulutsidwa kwa FerretDB 0.1.0 kunakonzanso njira yopezera deta kuchokera ku PostgreSQL. M'mbuyomu, pa pempho lililonse la MongoDB lomwe likubwera, funso limodzi la SQL lidapangidwa ku PostgreSQL, pogwiritsa ntchito ntchito zogwirira ntchito ndi mtundu wa JSON ndikusefa zotsatira kumbali ya PostgreSQL. Chifukwa cha kusiyana kwa semantics ya PostgreSQL ndi MongoDB json ntchito, panali kusiyana mu khalidwe poyerekezera ndi kusanja mitundu yosiyanasiyana. Kuti athetse vutoli, deta tsopano imatengedwa mowonjezereka kuchokera ku PostgreSQL, ndipo zotsatira zake zimasefedwa kumbali ya FerretDB, zomwe zinapangitsa kuti zitheke kubwereza khalidwe la MongoDB nthawi zambiri.

Mtengo wa kuyanjana kowonjezereka unali kuchepa kwa magwiridwe antchito, omwe m'tsogolomu amayembekezera kubweza mwa kusefa mosankha ku mbali ya FerretDB mafunso okha omwe pali kusiyana kwamakhalidwe. Mwachitsanzo, funso "db.collection.find({_id: 'some-id-value'})" litha kusinthidwa kwathunthu mu PostgreSQL. Cholinga chachikulu cha polojekitiyi pa nthawi ino yachitukuko ndikukwaniritsa kuyanjana ndi MongoDB, ndipo magwiridwe antchito amatsitsidwa kumbuyo pakadali pano. Zina mwazosintha zomwe zasintha mu mtundu watsopanowu, kuthandizira kwa onse ogwiritsa ntchito pang'ono, "$eq" wofananira, komanso "$elemMatch" ndi "$bitsAllClear" opareshoni amadziwika.

Source: opennet.ru

Kuwonjezera ndemanga