အပိုင်း ၁ မှာတော့ Data Stores တွေ အကြောင်းပြောပြီးပါပြီ။
Relational Database မှာ limit less indexing နဲ့ အရမ်းကောင်းမွန်တဲ့ SQL language ရှိပါတယ်။ ဒါကြောင့် Relational Database ဟာ dynamic ဖြစ်ပြီး လူသုံးများနေရတာပါ။ NoSQL မှာတော့ limited ဖြစ်နေတဲ့ query နဲ့ indexing ရှိနေပါတယ်။ နောက်ပြီး JSON လိုမျိုးတွေက SQL language လို Query တွေ ရေးလို့ရမှာ မဟုတ်ပါဘူး။ NoSQL မှာ query ရေးသားတာက Database တစ်ခုနဲ့ တစ်ခုမတူသလို Stores ပေါ်မှာ မူတည်ပြီးတော့လည်း query ရေးသားပုံတွေက မတူညီကြပါဘူး။
Map-Reduce
Map-Reduce ကတော့ NoSQL ကို လွယ်လင့် တကူ အသုံးပြုလို့ရမယ့် design ပါ။ နောက်ပြီး NoSQL တွေမှာ javascript language လိုမျိုး ထည့်သွင်းရေးသားနိုင်ပါတယ်။ Mongodb မှာတော့ ဒီလို မျိုးရေးပါတယ်။
[code lang=”js”]
db.things.save({x : 4, j : 100});
for (var i = 1; i <= 20; i++) db.things.save({x : 4, j : i});
[/code]
things ဆိုတဲ့ collection (tables) မှာ loop ပတ်ပြီးတော့ data သိမ်းလိုက်တာပါ။ .save, .update, .delete လိုမျိုး အရံသင့် function တွေ နဲ့ data သိမ်းတာ ဖျက်တာ update လုပ်တာတွေ လွယ်လွယ်ကူကူ လုပ်နိုင်ပါတယ်။
ဘာလို့ NoSQL သုံးရမှာလဲ
NoSQL ဟာ
- Schema-free
- Massive data stores
- Scalability
- အချို့ database တွေကို RDMBS တွေထက် ရိုးရှင်းစွာ တည်ဆောက်နိုင်တယ်။
- Web 2.0 services တွေအတွက် သင့်လျော်တယ်။ အထူးသဖြင့် Web API တွေပေါ့
ဘာလို့ NoSQL ကို မသုံးသင့်ဘူးလဲ
- RDBMS တွေက အရမ်းကို ကောင်းနေပြီ။ လူသုံးလည်းများတယ်။
- NoSQL ဟာ alpha အဆင့်လို့ပဲ ခေါ်ရလိမ့်မယ်
- RDBMS သုံးပြီး တိကျတဲ့ data result တွေ ရနိုင်တယ်။
လက်ရှိ Project မှာ NoSQL သုံးသင့်လား
လက်ရှိ project ဟာ RDBMS နဲ့ တည်ဆောက်ထားပြီးသားလား ။ တည်ဆောက်ထားပြီးသားဆိုရင် relation တွေ အရမ်းမရှုပ်သလား။ နောက်ပြီး records တွေက အရမ်းများလား။ query လုပ်လိုက်ရင်ကော အချိန် ကြာသလား။ realtion တွေက ရေးမရအောင် ရှုပ်တယ်ဆိုရင်တော့ NoSQL သုံးသင့်ပါပြီ။ records တွေက သိန်းချီပြီး ရှိနေရင်တော့ စဉ်းစားသင့်တယ်။ query ရေးတဲ့အခါမှာ အရှည်ကြီးရေးရပြီး tables တွေ အများကြီးနဲ့ ရှုပ်နေရင်တော့ သုံးသင့်ပါတယ်။ ဒါမှမဟုတ်ခဲ့ရင်တော့ မသုံးသင့်ဘူးပေါ့။
NoSQL ကို ဘယ်သူတွေ သုံးလဲ
Facebook , Google စတာတွေက သုံးတာတော့ သေချာတယ်။ Facebook က cassandra ကို အသုံးပြုပြီး Google ကတော့ BigTable ကို အသုံးပြုပါတယ်။ Digg နဲ့ Twitter ကလည်း Cassandra ကို အသုံးပြုထားတယ်။ Foursqure , bit.ly, sourceforge, The New York Times, github, justin.tv , Squarespace စတာတွေက Mongodb ကို အသုံးပြုထားပါတယ်။
MySQL က NoSQL လောက် မကောင်းဘူးလား
NoSQL က record တွေ အရမ်းများလာတဲ့အခါမှာ ပြောင်းလဲ အသုံးပြုကြပါတယ်။ Facebook , twitter, Digg တို့ စတုန်းကလည်း MySQL နဲ့ပဲ စခဲ့တာပဲ။ record တွေ အရမ်းများလာတဲ့အခါမှသာ NoSQL ကို ပြောင်းသုံးကြတာပါ။ Records တွေ အများကြီးကို မနိုင်လို့လားလို့ မေးရင်တော့ wikipedia က အခုထက်ထိ MySQL ကို အသုံးပြုနေတုန်းပါပဲ။
NoSQL ကို လေ့လာရတာလွယ်သလား
Cassandra နဲ့ Mongodb ကို လေ့လာဖူးပါတယ်။ Mongodb က ၁၅ မိနစ်လောက်နဲ့ နားလည်နိုင်ပါတယ်။ Cassandra ကတော့ ၂ နာရီလောက်တော့ အချိန်ပေးမှ နားလည်ပါတယ်။ Mongodb က JSON နဲ့ တူတဲ့အတွက်ကြောင့် နားလည်ရတာ အရမ်းလွယ်ပါတယ်။ NoSQL ပြောင်းမယ်ဆိုရင် NoSQL ကို လေ့လာဖို့ အချိန်ပေးရမယ်။ နောက်ပြီး driver ပြဿနာတွေ ဖြေရှင်းရမယ်။ လက်ရှိ coding တွေကို ပြန်ပြင်ရမယ်။ ဒါကြောင့် NoSQL ကို အသုံးပြုတော့မယ်ဆိုရင် လက်ရှိ project မှာ သုံးသင့် မသုံးသင့် ဆုံးဖြတ်ပါ။ လေ့လာတာကတော့ လွယ်လွယ်ကူကူ လေ့လာလို့ရပါတယ်။ Mongodb ကတော့ supporting ကောင်းပါတယ်။ Cassandra ကတော့ နည်းနည်းလေး ပိုရှုပ်ပါတယ်။
NoSQL ဟာ အခုမှ စပြီး web development ကို လေ့လာမယ့်သူတွေအတွက်တော့ အရမ်းကို စိမ်းနေပါလိမ့်မယ်။ NoSQL ဟာ လက်ရှိ Database Administrator တွေ နောက်ပြီး web api တွေ ရေးနေရတဲ့ သူတွေအတွက် အသုံးပိုဝင်ပါလိမ့်မယ်။
ကိုးကား
၁။ NoSQL Database
၂။ Building Apps with mongodb
၃။ NoSQL for Dummies
၄။ Mongodb Production Development
Leave a Reply