FerretDB-ի առաջին կայուն թողարկումը, MongoDB իրականացումը, որը հիմնված է PostgreSQL DBMS-ի վրա

Հրապարակվել է FerretDB 1.0 նախագծի թողարկումը, որը թույլ է տալիս փաստաթղթակենտրոն DBMS MongoDB-ն փոխարինել PostgreSQL-ով՝ առանց հավելվածի կոդում փոփոխություններ կատարելու։ FerretDB-ն իրականացվում է որպես պրոքսի սերվեր, որը MongoDB-ի զանգերը թարգմանում է SQL հարցումների դեպի PostgreSQL, որը թույլ է տալիս օգտագործել PostgreSQL-ը որպես իրական պահեստ: 1.0 տարբերակը նշվում է որպես ընդհանուր օգտագործման համար պատրաստ առաջին կայուն թողարկում: Կոդը գրված է Go-ում և տարածվում է Apache 2.0 լիցենզիայի ներքո:

FerretDB-ի հիմնական թիրախային լսարանը օգտատերերն են, ովքեր չեն օգտագործում MongoDB առաջադեմ հնարավորությունները իրենց հավելվածներում, բայց ցանկանում են օգտագործել ամբողջովին բաց ծրագրային փաթեթ: Իր զարգացման ներկա փուլում FerretDB-ն աջակցում է MongoDB-ի առանձնահատկությունների ենթաբազմությանը, որոնք առավել հաճախ օգտագործվում են տիպիկ հավելվածներում: FerretDB-ի ներդրման անհրաժեշտությունը կարող է առաջանալ MongoDB-ն ոչ ազատ SSPL լիցենզիայի անցնելու հետ կապված, որը հիմնված է AGPLv3 լիցենզիայի վրա, բայց բաց չէ, քանի որ այն պարունակում է խտրական պահանջ՝ SSPL լիցենզիայի ներքո մատակարարելու ոչ միայն հավելվածի կոդը, ինչպես նաև ամպային ծառայությունների մատուցման մեջ ներգրավված բոլոր բաղադրիչների սկզբնաղբյուրները:

MongoDB-ն տեղ է գրավում արագ և մասշտաբային համակարգերի միջև, որոնք գործում են առանցքային/արժեքի տվյալների և հարաբերական DBMS-ների, որոնք ֆունկցիոնալ են և հեշտ հարցումներ կատարելու համար: MongoDB-ն աջակցում է JSON-ի նման ձևաչափով փաստաթղթերի պահպանմանը, ունի հարցումների ստեղծման բավականին ճկուն լեզու, կարող է ստեղծել ինդեքսներ տարբեր պահված ատրիբուտների համար, արդյունավետորեն ապահովում է խոշոր երկուական օբյեկտների պահեստավորում, աջակցում է գործողությունների գրանցումը՝ տվյալների բազան փոխելու և ավելացնելու համար: աշխատել Քարտեզ/Կրճատել պարադիգմի համաձայն, աջակցում է կրկնօրինակմանը և սխալների նկատմամբ հանդուրժող կոնֆիգուրացիաների ստեղծմանը:

FerretDB 1.0-ի փոփոխությունների թվում.

  • Իրականացրել է createIndexes և dropIndexes հրամանները՝ մեկ կամ մի քանի ինդեքսներ հավաքածու ստեղծելու և թողնելու համար:
  • GetMore հրամանն իրականացվել է՝ ցուցադրելու համար կուրսոր վերադարձնող հրամանների կատարման արդյունքում ստացված արդյունքի նոր մասը, օրինակ՝ գտնել և ագրեգատ:
  • Ավելացվել է $sum ագրեգացման օպերատորի աջակցություն՝ խմբի արժեքների գումարը հաշվարկելու համար:
  • Ավելացվեց $limit և $skip օպերատորների աջակցությունը՝ թիվը սահմանափակելու և փաստաթղթերը հավաքելիս բաց թողնելու համար:
  • Ավելացվեց $count օպերատորի աջակցությունը փաստաթղթերը հավաքելիս հաշվելու համար:
  • Ավելացվեց $unwind օպերատորի աջակցությունը՝ մուտքային փաստաթղթերում զանգվածի դաշտերը վերլուծելու և զանգվածի յուրաքանչյուր տարրի համար առանձին փաստաթղթով ցուցակ կազմելու համար:
  • Ավելացվել է մասնակի աջակցություն collStats, dbStats և dataSize հրամաններին՝ հավաքագրման և տվյալների բազայի վիճակագրությունը և տվյալների չափը ստանալու համար:

Source: opennet.ru

Добавить комментарий