PostgreSQL DBMS ကိုအခြေခံ၍ MongoDB ၏အကောင်အထည်ဖော်မှုတစ်ခု FerretDB 0.1

FerretDB 0.1 ပရောဂျက် (ယခင် MangoDB) ၏ ထုတ်ဝေမှုကို ထုတ်ဝေခဲ့ပြီး၊ သင်သည် အက်ပလီကေးရှင်းကုဒ်ကို ပြောင်းလဲခြင်းမပြုဘဲ စာရွက်စာတမ်း-အသားပေး DBMS MongoDB ကို PostgreSQL ဖြင့် အစားထိုးနိုင်စေမည်ဖြစ်သည်။ FerretDB ကို MangoDB မှခေါ်ဆိုမှုများကို SQL queries သို့ PostgreSQL သို့ ဘာသာပြန်ပေးသည့် ပရောက်စီဆာဗာတစ်ခုအဖြစ် အကောင်အထည်ဖော်ပြီး PostgreSQL ကို အမှန်တကယ်သိုလှောင်မှုအဖြစ်အသုံးပြုနိုင်ပါသည်။ ကုဒ်ကို Go တွင်ရေးထားပြီး Apache 2.0 လိုင်စင်အောက်တွင် ဖြန့်ဝေထားသည်။

AGPLv3 လိုင်စင်ကို အခြေခံထားသည့် MongoDB ၏ သီးသန့် SSPL လိုင်စင်သို့ ကူးပြောင်းခြင်းအတွက် ရွှေ့ပြောင်းခြင်းအတွက် လိုအပ်သော်လည်း မဖွင့်ထားသောကြောင့် ၎င်းတွင် SSPL လိုင်စင်သာမက အပလီကေးရှင်းကုဒ်သာမက၊ ပံ့ပိုးမှု cloud ဝန်ဆောင်မှုတွင် ပါဝင်သော အစိတ်အပိုင်းအားလုံး၏ အရင်းအမြစ်ကုဒ်။

FerretDB ၏ပစ်မှတ်ပရိသတ်သည် ၎င်းတို့၏အက်ပ်လီကေးရှင်းများတွင် MongoDB ၏အဆင့်မြင့်စွမ်းဆောင်ရည်များကိုအသုံးမပြုဘဲ လုံးဝဖွင့်ထားသောဆော့ဖ်ဝဲအစုအဝေးကိုအသုံးပြုလိုသောအသုံးပြုသူများဖြစ်သည်။ လက်ရှိ ဖွံ့ဖြိုးတိုးတက်မှုအဆင့်တွင်၊ FerretDB သည် ပုံမှန်အပလီကေးရှင်းများတွင် အများဆုံးအသုံးပြုလေ့ရှိသည့် MongoDB စွမ်းရည်များ၏ တစ်စိတ်တစ်ပိုင်းကိုသာ ပံ့ပိုးပေးနေဆဲဖြစ်သည်။ အနာဂတ်တွင်၊ ၎င်းတို့သည် MongoDB အတွက် ယာဉ်မောင်းများနှင့် အပြည့်အဝ လိုက်ဖက်ညီမှု ရရှိစေရန် စီစဉ်ပြီး MongoDB အတွက် ပွင့်လင်းမြင်သာသော အစားထိုးတစ်ခုအဖြစ် FerretDB ကို အသုံးပြုနိုင်သည့် စွမ်းရည်ကို ပေးစွမ်းရန် စီစဉ်ထားသည်။

MongoDB သည် ဒေတာများကို သော့/တန်ဖိုးဖော်မတ်ဖြင့် လုပ်ဆောင်သည့် မြန်ဆန်ပြီး အရွယ်အစားရှိ စနစ်များကြားတွင် သီးသန့်နေရာတစ်ခုနှင့် ဆက်စပ်လုပ်ဆောင်နိုင်သော DBMSs များကို မှတ်သားထားကြပါစို့။ MongoDB သည် JSON-like ဖော်မတ်တွင် စာရွက်စာတမ်းများ သိမ်းဆည်းခြင်းကို ပံ့ပိုးပေးသည်၊ queries များဖန်တီးရန်အတွက် မျှမျှတတ ပြောင်းလွယ်ပြင်လွယ်ရှိသော ဘာသာစကားတစ်ခု၊ သိမ်းဆည်းထားသော attribute အမျိုးမျိုးအတွက် အညွှန်းများဖန်တီးနိုင်သည်၊ ကြီးမားသော binary အရာဝတ္ထုများ၏ သိုလှောင်မှုကို ထိရောက်စွာ ပံ့ပိုးပေးသည်၊ ဒေတာဘေ့စ်သို့ ဒေတာများကို ပြောင်းလဲခြင်းနှင့် ပေါင်းထည့်ခြင်းအတွက် လုပ်ဆောင်ချက်များကို မှတ်တမ်းမှတ်ခြင်း ပံ့ပိုးပေးနိုင်ပါသည်။ ပါရာဒိုင်းမြေပုံ/လျော့ချခြင်းနှင့်အညီ လုပ်ဆောင်ခြင်း၊ ပုံတူပွားခြင်းနှင့် အမှားအယွင်းခံနိုင်သော ဖွဲ့စည်းမှုပုံစံများ တည်ဆောက်ခြင်းကို ပံ့ပိုးပေးသည်။

FerretDB 0.1.0 ၏ထွက်ရှိမှုသည် PostgreSQL မှဒေတာပြန်လည်ရယူသည့်နည်းလမ်းကို လုံးဝပြန်လည်ဒီဇိုင်းထုတ်ထားသည်။ ယခင်က၊ ဝင်လာသော MongoDB တောင်းဆိုမှုတစ်ခုစီအတွက်၊ JSON ဖော်မတ်ဖြင့် လုပ်ဆောင်ရန်နှင့် PostgreSQL ဘက်မှ ရလဒ်များကို စစ်ထုတ်ရန်အတွက် လုပ်ဆောင်ချက်များကို အသုံးပြု၍ SQL query တစ်ခုအား PostgreSQL သို့ ထုတ်ပေးခဲ့သည်။ PostgreSQL နှင့် MongoDB json လုပ်ဆောင်ချက်များ၏ အဓိပ္ပါယ်မှာ ကွဲပြားမှုများကြောင့် မတူညီသောအမျိုးအစားများကို နှိုင်းယှဉ်ကာ စီခွဲရာတွင် အပြုအမူတွင် ကွဲလွဲမှုရှိခဲ့ပါသည်။ ဤပြဿနာကိုဖြေရှင်းရန်၊ ယခုအခါ ဒေတာများကို PostgreSQL မှ မလိုအပ်တော့ဘဲ ထုတ်ယူသွားမည်ဖြစ်ပြီး၊ အခြေအနေအများစုတွင် MongoDB ၏အပြုအမူကို ပုံတူပွားနိုင်စေသည့် FerretDB ဘက်တွင် ရလဒ်ကို စစ်ထုတ်ထားပါသည်။

တိုးမြှင့်လိုက်ဖက်ညီမှု၏စျေးနှုန်းသည် စွမ်းဆောင်ရည်ကျဆင်းသွားခြင်းဖြစ်ပြီး၊ နောင်ထွက်ရှိမှုများတွင် FerretDB ဘက်မှ အပြုအမူကွဲလွဲမှုရှိသည့် မေးမြန်းချက်များကိုသာ ရွေးချယ်စီစစ်ခြင်းဖြင့် လျော်ကြေးပေးရန် မျှော်လင့်ထားသည်။ ဥပမာအားဖြင့်၊ မေးမြန်းချက် "db.collection.find({_id: 'some-id-value'})" ကို PostgreSQL တွင် လုံးလုံးလျားလျား လုပ်ဆောင်နိုင်ပါသည်။ ဤဖွံ့ဖြိုးတိုးတက်မှုအဆင့်တွင် ပရောဂျက်၏ အဓိကရည်မှန်းချက်မှာ MongoDB နှင့် လိုက်ဖက်ညီမှုရှိစေရန်ဖြစ်ပြီး စွမ်းဆောင်ရည်ကို ယခုလောလောဆယ်တွင် နောက်ခံသို့ တန်းခွဲထားသည်။ ဗားရှင်းအသစ်တွင် လုပ်ဆောင်နိုင်သောပြောင်းလဲမှုများထဲတွင် ဘစ်အော်ပရေတာအားလုံးအတွက် ပံ့ပိုးမှု၊ “$eq” နှိုင်းယှဉ်အော်ပရေတာအပြင် “$elemMatch” နှင့် “$bitsAllClear” အော်ပရေတာများကို မှတ်သားထားသည်။

source: opennet.ru

မှတ်ချက် Add