Siideynta FerretDB 0.1, hirgelinta MongoDB oo ku saleysan PostgreSQL DBMS

Siideynta mashruuca FerretDB 0.1 (oo hore u ahaan jirtay MangoDB) waa la daabacay, taasoo kuu ogolaanaysa inaad ku beddesho dukumeenti ku jihaysan DBMS MongoDB PostgreSQL adiga oo aan wax isbeddel ah ku samayn code-ka codsiga. FerretDB waxaa loo fuliyaa sidii adeege wakiil ah oo u tarjuma wicitaanada MangoDB ee u tarjuma su'aalaha SQL ee PostgreSQL, u oggolaanaya PostgreSQL in loo isticmaalo kaydinta dhabta ah. Koodhka wuxuu ku qoran yahay Go oo lagu qaybiyay shatiga Apache 2.0.

Baahida socdaalka ayaa laga yaabaa inay soo baxdo sababtoo ah u gudubka MongoDB ee u gudubka shatiga SSPL, kaas oo ku salaysan shatiga AGPLv3, laakiin aan furnayn, maadaama ay ka kooban tahay shuruudo takoorid ah oo lagu bixiyo shatiga SSPL kaliya maahan codsiga laftiisa, laakiin sidoo kale Koodhka isha ee dhammaan qaybaha ku lug leh adeegga daruuriga ee bixinta.

Bartilmaameedka FerretDB waa isticmaalayaasha aan u isticmaalin awooda sare ee MongoDB codsiyadooda, laakiin raba inay adeegsadaan xirmo softiweer ah oo gebi ahaanba furan. Marxaladda horumarka ee hadda, FerretDB waxay weli taageertaa qayb ka mid ah awoodaha MongoDB ee inta badan lagu isticmaalo codsiyada caadiga ah. Mustaqbalka, waxay qorsheynayaan inay si buuxda ula jaanqaadaan wadayaasha MongoDB oo ay siiyaan awoodda ay u isticmaalaan FerretDB beddelka hufan ee MongoDB.

Aan dib u xasuusanno in MongoDB ay ku jirto meel u dhaxaysa nidaamyada degdega ah iyo kuwa la miisaaman karo ee ku shaqeeya xogta qaab furaha/qiimaha ah, iyo DBMS-yada xidhiidhsan ee shaqaynaya oo sahlan in la sameeyo. MongoDB waxay taageertaa kaydinta dukumiintiyada qaab JSON oo kale ah, waxay leedahay luqad cadaalad ah oo dabacsan oo lagu soo saari karo weydiimaha, waxay abuuri kartaa tusmooyinka sifooyin kala duwan oo kaydsan, waxay si hufan u bixisa kaydinta walxaha waaweyn ee binary, waxay taageertaa qorista hawlgallada beddelka iyo ku darista xogta xogta, awood u shaqeeyo si waafaqsan khariidadda/yaraynta jaantuska, waxay taageertaa ku-noqoshada iyo dhismaha qaabaynta u-dulqaadka cilladaha.

Siideynta FerretDB 0.1.0 waxay gabi ahaanba dib u habayn ku samaysay habka xogta PostgreSQL. Markii hore, codsi kasta oo MongoDB ah oo soo gala, hal su'aal SQL ah ayaa loo soo saaray PostgreSQL, iyadoo la adeegsanayo shaqooyinka qaabka JSON iyo shaandhaynta natiijooyinka dhinaca PostgreSQL. Sababo la xiriira kala duwanaanshaha semantics ee PostgreSQL iyo MongoDB json shaqooyinka, waxaa jiray farqi xagga dhaqanka ah marka la barbardhigo iyo kala soocida noocyada kala duwan. Si loo xalliyo dhibaatadan, xogta ayaa hadda si aan kala go 'lahayn looga soo qaatay PostgreSQL, natiijaduna waxaa lagu sifeeyaa dhinaca FerretDB, taas oo suurtogal ka dhigtay in lagu celceliyo habdhaqanka MongoDB xaaladaha intooda badan.

Qiimaha iswaafajinta korodhay wuxuu ahaa hoos u dhac ku yimid waxqabadka, kaas oo mustaqbalka la sii daayo ay filayaan inay magdhowaan iyagoo dooranaya shaandhaynta dhinaca FerretDB ee kaliya ee uu jiro farqi xagga dhaqanka ah. Tusaale ahaan, weydiinta "db.collection.find({_id: 'some-id-value'})" waxaa lagu farsamayn karaa gabi ahaan PostgreSQL. Hadafka aasaasiga ah ee mashruuca marxaladan horumarineed waa in la gaaro iswaafajinta MongoDB, iyo waxqabadka ayaa dib loogu celiyay asalka hadda. Waxaa ka mid ah isbeddelada shaqada ee nooca cusub, taageerada dhammaan hawl-wadeennada, isbarbardhigga "$eq", iyo sidoo kale hawl-wadeennada "$elemMatch" iyo "$bitsAllClear" waa la xusay.

Source: opennet.ru

Add a comment