PostgreSQL DBMS ကိုအခြေခံ၍ FerretDB၊ MongoDB အကောင်အထည်ဖော်မှုတွင် ပထမဆုံးတည်ငြိမ်သောထုတ်ပြန်ချက်

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

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

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

FerretDB 1.0 ၏ပြောင်းလဲမှုများထဲတွင်-

  • စုစည်းမှုတစ်ခုပေါ်ရှိ တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော အညွှန်းကိန်းများကို ဖန်တီးရန်နှင့် ဖျက်ရန်အတွက် createIndexes နှင့် dropIndexes ညွှန်ကြားချက်များကို အကောင်အထည်ဖော်ထားသည်။
  • getMore ကွန်မန်းကို ရှာဖွေပြီး စုစည်းမှုကဲ့သို့သော cursor ကို ပြန်ပေးသည့် ညွှန်ကြားချက်များကို လုပ်ဆောင်ခြင်းမှ ရရှိသော ရလဒ်၏ အပိုင်းအသစ်ကို ပြသရန် လုပ်ဆောင်ထားသည်။
  • အဖွဲ့တန်ဖိုးများကို တွက်ချက်ရန် $sum ပေါင်းစည်းမှု အော်ပရေတာအတွက် ပံ့ပိုးမှု ပေါင်းထည့်ထားသည်။
  • အရေအတွက်ကို ကန့်သတ်ပြီး စာရွက်စာတမ်းများကို ပေါင်းစည်းနေစဉ်အတွင်း $limit နှင့် $skip အော်ပရေတာများအတွက် ပံ့ပိုးမှု ထပ်လောင်းထည့်ထားပါသည်။
  • ပေါင်းစည်းနေစဉ်အတွင်း စာရွက်စာတမ်းများရေတွက်ခြင်းအတွက် $count အော်ပရေတာအတွက် ပံ့ပိုးမှု ပေါင်းထည့်ထားသည်။
  • အဝင်စာရွက်စာတမ်းများတွင် array အကွက်များကိုခွဲခြမ်းစိပ်ဖြာရန်နှင့် array element တစ်ခုစီအတွက် သီးခြားစာရွက်စာတမ်းတစ်ခုပါရှိသောစာရင်းကိုထုတ်ပေးရန် $unwind အော်ပရေတာအတွက် ပံ့ပိုးမှုထပ်ထည့်ထားသည်။
  • စုဆောင်းမှုနှင့် ဒေတာဘေ့စ်ဆိုင်ရာ စာရင်းအင်းအချက်အလက်များအပြင် ဒေတာအရွယ်အစားကို ရယူရန် collStats၊ dbStats နှင့် dataSize ညွှန်ကြားချက်များအတွက် တစ်စိတ်တစ်ပိုင်း ပံ့ပိုးမှု ထပ်လောင်းထည့်သွင်းထားသည်။

source: opennet.ru

မှတ်ချက် Add