PostgreSQL DBMS негизинде FerretDB, MongoDB ишке ашыруу биринчи туруктуу релиз

FerretDB 1.0 долбоорунун релизи жарыяланды, ал документке багытталган DBMS MongoDBти PostgreSQL менен колдонмонун кодуна өзгөртүүлөрдү киргизбестен алмаштырууга мүмкүндүк берет. FerretDB прокси сервер катары ишке ашырылган, ал MongoDBге чалууларды SQL сурамдарына PostgreSQLге которот, бул PostgreSQLди чыныгы сактагыч катары колдонууга мүмкүндүк берет. 1.0 версиясы жалпы колдонууга даяр биринчи туруктуу релиз катары белгиленген. Код Go программасында жазылган жана Apache 2.0 лицензиясы боюнча таратылган.

FerretDB үчүн негизги максаттуу аудитория - бул өз тиркемелеринде MongoDB өнүккөн мүмкүнчүлүктөрүн колдонбогон, бирок толугу менен ачык программалык стекти колдонууну каалаган колдонуучулар. Учурдагы өнүгүү этабында FerretDB типтүү тиркемелерде көбүнчө колдонулган MongoDB функцияларынын бир бөлүгүн колдойт. FerretDB ишке ашыруу зарылчылыгы MongoDBдин AGPLv3 лицензиясына негизделген, бирок ачык эмес, эркин эмес SSPL лицензиясына өтүшүнө байланыштуу келип чыгышы мүмкүн, анткени ал SSPL лицензиясы боюнча берүү үчүн дискриминациялык талапты камтыйт. колдонмо кодун өзү, ошондой эле булут кызматтарын көрсөтүүгө катышкан бардык компоненттердин баштапкы коддору.

MongoDB тез жана масштабдуу системалардын ортосунда орун ээлейт, алар негизги/нарк маалыматтарында жана функционалдык жана суроого оңой болгон реляциялык DBMS'лерде иштейт. MongoDB документтерди JSON форматында сактоону колдойт, суроо-талаптарды түзүү үчүн кыйла ийкемдүү тилге ээ, ар кандай сакталган атрибуттар үчүн индекстерди түзө алат, чоң бинардык объекттердин сакталышын эффективдүү камсыздайт, маалымат базасына маалыматтарды өзгөртүү жана кошуу операцияларын каттоону колдойт, мүмкүн Карта/Кыскартуу парадигмасына ылайык иштөө, репликациялоону жана катага чыдамдуу конфигурацияларды курууну колдойт.

FerretDB 1.0деги өзгөрүүлөрдүн арасында:

  • Бир же бир нече индексти түзүү жана коллекцияга таштоо үчүн createIndexes жана dropIndexes буйруктары ишке ашырылды.
  • getMore буйругу курсорду кайтаруучу буйруктарды аткаруудан алынган натыйжанын жаңы бөлүгүн көрсөтүү үчүн ишке ашырылган, мисалы, табуу жана бириктирүү.
  • Топтун маанилеринин суммасын эсептөө үчүн $sum топтоо операторуна колдоо кошулду.
  • $limit жана $skip операторлорунун санын чектөө жана топтоодо документтерди өткөрүп жиберүү үчүн колдоо кошулду.
  • Документтерди топтоодо эсептөө үчүн $count операторуна колдоо кошулду.
  • Кирүүчү документтердеги массив талааларын талдоо жана ар бир массив элементи үчүн өзүнчө документ менен тизме түзүү үчүн $unwind операторуна колдоо кошулду.
  • Коллекцияны жана маалымат базасынын статистикасын жана маалымат өлчөмүн алуу үчүн collStats, dbStats жана dataSize буйруктарына жарым-жартылай колдоо кошулду.

Source: opennet.ru

Комментарий кошуу