NoSQL 1998 လူအတော်များများအတွက်စတင်သုံးစွဲခဲ့အတိုကောက် NoSQL SQL မှာပြီးမှဖန်တီးနေတဲ့ထောင်ချီသက်တမ်းဖြစ်ပါတယ်ထင်ပါတယ်။ အဖြစ်မှန်မှာတော့ဟူသောဝေါဟာရကိုသာ SQL ကိုဆိုလိုသည်။ အဆိုပါအယူအဆနှစ်ခုလုံးနည်းပညာများအတူတကွနိုငျသောကွောငျ့ဖွစျသညျနှင့်တစ်ဦးချင်းစီနေရာမှရှိပါတယ်။ အဆိုပါ NoSQL လှုပ်ရှားမှု 2.0 ခေါင်းဆောင်များတစ်ဦး NoSQL နည်းပညာမွေးစားထားသော web ၏များစွာသောအဖြစ်လွန်ခဲ့သောနှစ်အနည်းငယ်အတွင်းသတင်းအတွက်ဖြစ်ခဲ့သည်။ Facebook, Twitter Digg, အမေဇုံ, Linkedln, နှင့် Google နဲ့တူကုမ္ပဏီများအားလုံးတလမ်းတည်းဖြင့်သို့မဟုတ်အခြားအတွက် NoSQL ကိုအသုံးပြုပါ။
သင်သည်သင်၏ CIO သို့မဟုတ်ပင်သင့်ရဲ့လုပ်ဖော်ကိုင်ဖက်ကရှင်းပြနိုင်အောင် NoSQL ဖြိုဖျက်ကြပါစို့။
NoSQL တစ်လိုအပ်နေသောူပည်သူမှပေါ်ထွက်လာ
ဒေတာများသိုလှောင်: အဆိုပါကမ္ဘာ့သိုလှောင်ထားသောဒစ်ဂျစ်တယ်ဒေတာ exabytes ရှိလာတိုင်းတာသည်။ တစ်ဦး exabytes အချက်အလက်များ၏တဦးတည်း billion gigabytes (GB အထိ) နှင့်ညီမျှသည်။ Internet.com အဆိုအရ 2006 ခုနှစ်ကဆက်ပြောသည်သိုလှောင်ထားသည့်ဒေတာပမာဏ 161 exabytes ရှိလာခဲ့သည်။ ရုံ 4 နှစ်အကြာတွင် 2010 ခုနှစ်တွင်သိမ်းဆည်းထားသည့်ဒေတာပမာဏ 500 ကျော်% တစ်ခုတိုးဖြစ်သောနီးပါး 1000 exabytes ဖြစ်လိမ့်မည်။ တနည်းအားဖြင့်ရှိပါတယ်ကမ္ဘာပေါ်မှာထဲမှာသိမ်းထားတဲ့ခံရဒေတာတွေအများကြီးဖြစ်ပါတယ်နှင့်၎င်း၏ရုံကြီးထွားလာဆက်လက်သွား။
အပြန်အလှန်ဆက်နွယ်မှာ Data: ဒေတာများကိုပိုမိုချိတ်ဆက်ဖြစ်လာနေဆဲဖြစ်သည်။ ဝဘ်၏ဖန်တီးမှု hyperlink များအတွက်တိုးပွားလာကြ, ဘလော့ဂ်များ pingbacks ရှိသည်နှင့်ရှိသမျှသောအဓိကလူမှုကွန်ယက်စနစ်ကအတူတကွအမှုအရာကိုကြိုးနဲ့တုတ်ကြောင်း tags များရှိပါတယ်။ ဗိုလ်မှူးစနစ်များအပြန်အလှန်ချိတ်ဆက်ခံရဖို့ built နေကြသည်။
ရှုပ်ထွေးသောဒေတာများကိုဖွဲ့စည်းပုံ: NoSQL ကိုအလွယ်တကူ hierarchical အသိုက်ဒေတာအဆောက်အဦများကိုကိုင်တွယ်နိုင်ပါတယ်။ SQL အတွက်တူညီသောအရာပြီးမြောက်စေရန်, သငျသညျသော့အမျိုးမျိုးတို့ကိုအတူမျိုးစုံ relational စားပွဲလို။
ထို့အပြင်ခုနှစ်, စွမ်းဆောင်မှုနှင့်ဒေတာရှုပ်ထွေးအကြားဆက်ဆံရေးလည်းမရှိ။ ကျနော်တို့လူမှုကွန်ရက် applications များနှင့် semantic က်ဘ်ဆိုက်အတွက်လိုအပ်သည့်အချက်အလက်များ၏ကြီးမားသောပမာဏသိုလှောင်အဖြစ် performance ရိုးရာ RDBMS အတွက်နိမ်နိုင်ပါတယ်။
NoSQL ဆိုတာဘာလဲ?
ငါ NoSQL သတ်မှတ်ဖို့တလမ်းတည်းဖြင့်မသည်အဘယ်အရာကိုစဉ်းစားရန်ဖြစ်ပါသည်ပါဘဲ။
ဒါဟာ SQL မဟုတ်ဘူးကြောင့် relational မဟုတ်ပါဘူး။ နာမတော်ကိုအမှီ ပြု. အကြံပြုကဲ့သို့ပင်၎င်းသည် RDBMS များအတွက်အစားထိုးမယ့်ပေမယ့် compliments ။ NoSQL အလွန်အကြီးစားဒေတာလိုအပ်ချက်များအတွက်ဖြန့်ဝေဒေတာစတိုးဆိုင်များများအတွက်ဒီဇိုင်းပြုလုပ်ထားသည်။ နေ့တိုင်းအချက်အလက်များ၏ Terabits စုဆောင်းထားတဲ့သူ့ရဲ့ 500.000.000 အသုံးပြုသူများနှင့် Facebook သို့မဟုတ် Twitter ကိုစဉ်းစားပါ။
တစ်ဦး NoSQL database ထဲတွင်မရှိပုံသေ schema နှင့်မျှမတို့ပူးပေါင်းမည်ရှိသေး၏။ တစ်ဦး RDBMS ပိုမိုမြန်ဆန်ခြင်းနှင့်ပိုမြန်ဟာ့ဒ်ဝဲရတဲ့နှင့်မှတ်ဉာဏ်ထည့်သွင်းခြင်းဖြင့် "ထ scales" ။ NoSQL, အခြားတစ်ဖက်တွင်, "ထွက်ချုံ့ချဲ့" ၏အားသာချက်ယူနိုင်ပါတယ်။ ထွက်ချုံ့ချဲ့အများအပြားကုန်စည်စနစ်များကိုကျော်ဝန်ပြန့်ပွားဖို့ကိုရည်ညွှန်းသည်။ ဒါဟာကြီးမားတဲ့ဒေတာအစုတစ်ခုစျေးသိပ်မကြီးတဲ့ဖြေရှင်းချက်ကို NoSQL ၏အစိတ်အပိုင်းတစ်ခုဖြစ်ပါတယ်။
NoSQL အုပ်စုများ
လက်ရှိ NoSQL ကမ္ဘာကြီးကို 4 အခြေခံအမျိုးအစားသို့ကိုက်ညီ။
- Stores ပေါ်မှာအဓိကအားဖြင့်အခြေခံ key-တန်ဖိုးများကို အမေဇုန်ရဲ့ Dynamo စက္ကူ အဓိကစိတ်ကူးထူးခြားတဲ့သော့နှင့်အချက်အလက်များ၏တစ်ဦးအထူးသဖြင့်ကို item တစ်ခု pointer လည်းမရှိတဲ့ hash table ၏တည်ရှိမှုဖြစ်ပါတယ် 2007 ၌ရေးထားလျက်ရှိ၏ခဲ့သော။ ဒီမြေပုံချပေးမှုများအများအားဖြင့်စွမ်းဆောင်ရည်တိုးမြှင့်ဖို့ cache ကိုယန္တရားများအားဖြင့်လိုက်ပါသွားကြသည်။
ကော်လံမိသားစု Stores အများအပြားစက်တွေကိုကျော်ဖြန့်ဝေအချက်အလက်များ၏အလွန်ကြီးမားတဲ့ပမာဏသိုလှောင်ခြင်းနှင့်လုပ်ငန်းစဉ်ကိုဖန်တီးခဲ့ကြသည်။ အဲဒီမှာသော့နေဆဲဒါပေမဲ့သူတို့မျိုးစုံကော်လံထောက်ပြ။ Bigtable (Google ရဲ့ကော်လံမိသားစု NoSQL မော်ဒယ်) ၏အမှု၌, အတန်းကဒီ key ကိုအားဖြင့်ခွဲထားခဲ့သည်နှင့်သိုလှောင်ထားသောဒေတာနဲ့တန်းသော့ချက်နေဖြင့်ဖော်ထုတ်နေကြပါတယ်။ အဆိုပါစစ်ကြောင်းများကော်လံမိသားစုကစီစဉ်ပေးထားပါသည်။
- စာရွက်စာတမ်းဒေတာဘေ့စ်အားဖြင့်မှုတ်သွင်းခဲ့ကြသည် Lotus မှတ်စုများ နှင့်အဓိကတန်ဖိုးစတိုးဆိုင်များဆင်တူသည်။ အဆိုပါမော်ဒယ်အခြေခံအားဖြင့်ကတခြား key ကိုတန်ဖိုး collection များကို၏ collection များကိုဖြစ်ကြောင်းစာရွက်စာတမ်းများ versioned ဖြစ်ပါတယ်။ အဆိုပါ Semi-ဖွဲ့စည်းပုံမှာစာရွက်စာတမ်းများ JSON နဲ့တူပုံစံများထဲမှာသိမ်းထားပါတယ်။
- ဇယားဒေတာဘေ့စ် node များ, မှတ်စုများနှင့် node များ၏ဂုဏ်သတ္တိများအကြားဆက်ဆံရေးနှင့်အတူတည်ဆောက်လျက်ရှိကြ၏။ အဲဒီအစားအတန်းနှင့်ကော်လံပြားနှင့် SQL ၏တင်းကျပ်ဖွဲ့စည်းပုံ၏တစ်ဦးပြောင်းလွယ်ပြင်လွယ်ဂရပ်ပုံစံကိုဖြတ်ပြီးအများအပြားစက်တွေစကေးနိုင်သည့်အသုံးပြုသည်။
ဗိုလ်မှူး NoSQL ကစားသမား
NoSQL အတွက်အဓိကကစားသမားများဖြစ်သောကြောင့်သူတို့ကိုမွေးစားသောအဖှဲ့အစညျးမြား၏အဓိကအားပေါ်ထွက်လာပါပြီ။ အကြီးဆုံး NoSQL နည်းပညာများ၏အချို့တို့ပါဝင်သည်:
- Dynamo: Dynamo Amazon.com အသုံးပြုနေသူများကဖန်တီးနှင့်အထင်ရှားဆုံး Key ကို-Value ကို NoSQL ဒေတာဘေ့စဖြစ်ပါတယ်။ သူတို့ Dynamo ဖွံ့ဖြိုးဒီတော့အမေဇုံကသူတို့က e-Commerce စီးပွားရေးလုပ်ငန်းတွေအတွက်အလွန်အရွယ်မှာဖြန့်ဝေပလက်ဖောင်းလိုအပ်နေခဲ့ပါတယ်။ အမေဇုံ S3 ကိုသိုလှောင်ယန္တရားအဖြစ် Dynamo အသုံးပြုသည်။
- Cassandra: Cassandra Facebook ကရင်းမြစ်ထားတဲ့ပွင့်လင်းခဲ့ပြီးကော်လံ-oriented NoSQL ဒေတာဘေ့စဖြစ်ပါတယ်။
- Bigtable: Bigtable Google ရဲ့စီးပွားဖြစ်ကော်လံ oriented ဒေတာဘေ့စဖြစ်ပါတယ်။ Google ကသာအတွက် Google App Engine များအတွက် Bigtable ၏အသုံးပြုမှုကိုခွင့်ပြုပါတယ်။
- SimpleDB: SimpleDB အခြားအမေဇုံဒေတာဘေ့စဖြစ်ပါတယ်။ အမေဇုံ EC2 နှင့် S3 အတွက်အသုံးပြုပါကအသုံးပြုမှုပေါ် မူတည်. ဝန်ဆောင်ခပညတ်ကြောင်းအမေဇုံက Web Services က၏အစိတ်အပိုင်းတစ်ခုဖြစ်ပါတယ်။
- CouchDB: MongoDB နှင့်အတူ CouchDB open source ဖြစ်ပြီးစာရွက်စာတမ်း-oriented NoSQL databases ကိုဖြစ်ကြသည်။
- Neo4J: Neo4j တစ်ပွင့်လင်းရင်းမြစ်ဂရပ်ဒေတာဘေ့စဖြစ်ပါတယ်။
query NoSQL
တစ်ဦး NoSQL ဒေတာဘေ့စ query ကိုမည်သို့၏မေးခွန်းကိုအများဆုံး developer များစိတ်ဝင်စားတွေဘာတွေရှိတယ်ဆိုတာဖြစ်ပါတယ်။ သင်သည်အသုံးပြုသူများသို့မဟုတ်ဝဘ်န်ဆောင်မှုကိုအဆုံးသတ်ဖို့က retrieve နှင့်မပြနိုင်လျှင်ပြီးနောက်ရှိသမျှတို့, ကြီးမားတဲ့ဒေတာဘေ့စထဲမှာသိမ်းထားတဲ့ဒေတာကိုမည်သူမဆိုမည်သည့်ကောင်းသောအကျင့်မထားဘူး။ NoSQL databases ကို SQL ကဲ့သို့သောအဆင့်မြင့် declarative ဟူ. စုံစမ်းမှုဘာသာစကားမပေးပါဘူး။ အဲဒီအစားအဲဒီဒေတာဘေ့စ querying တိကျတဲ့အချက်အလက်မော်ဒယ်ဖြစ်ပါတယ်။
အဆိုပါ NoSQL ပလက်ဖောင်းအတော်များများဟာဒေတာကိုငြိမ်ဝပ် interfaces ဘို့ခွင့်ပြုပါ။ အခွားသောကမ်းလှမ်းမှုကိုစုံစမ်းမှုတွင် API ။ မျိုးစုံ NoSQL databases ကို query မှကြိုးပမ်းမှုတီထွင်ခဲ့ကြကြောင်းစုံစမ်းမှု tools များ၏စုံတွဲတစ်တွဲရှိတယ်။ အဲဒီကိရိယာပုံမှန်အားဖြင့်တစ်ခုတည်း NoSQL အမျိုးအစားကိုဖြတ်ပြီးအလုပ်လုပ်ကြသည်။ ဥပမာတစျခု SPARQL ဖြစ်ပါတယ်။ SPARQL ဂရပ် databases ကိုများအတွက်ဒီဇိုင်းရေးဆွဲတဲ့ declarative ဟူ. စုံစမ်းမှုသတ်မှတ်ချက်ဖြစ်ပါတယ်။ ဒီနေရာမှာတစ်ဦးအထူးသဖြင့်ဘလော့ဂါ (IBM က၏ယဉ်ကျေး) ၏ URL ကိုရယူထားတဲ့ SPARQL စုံစမ်းမှု၏ဥပမာတစ်ခုဖြစ်ပါသည်:
prefix foaf:
SELECT? url
နေရာ {
? ပံ့ပိုး foaf: အမည် "Jon Foobar" ။
? ပံ့ပိုး foaf: ဘလော့ဂျ url ။
}
NoSQL ၏အနာဂတ်
ဧရာဒေတာသိုလှောင်မှုလိုအပ်ချက်ရှိသည်သောအဖွဲ့အစည်းများ NoSQL မှာအလေးအနက်ထားရှာဖွေနေပါသည်။ ပုံအယူအဆသေးငယ်အဖွဲ့အစည်းများထဲမှာရှိသကဲ့သို့အများကြီးဖြစ်ဖွယ်ရှိသောစွမ်းဆောင်ဆွဲရတဲ့မပေးပါ။ ပြန်ကြားရေးအပတ်များကကောက်ယူတဲ့စစ်တမ်းမှာတော့စီးပွားရေးလုပ်ငန်းအိုင်တီပညာရှင်များ၏ 44% NoSQL ကြား၏ကြပြီမဟုတ်။ ထို့ပြင်, ဖြေဆိုသူသာ 1% NoSQL သူတို့ရဲ့မဟာဗျူဟာအလမျးညှနျခ၏အစိတ်အပိုင်းတစ်ခုဖြစ်တယ်ဆိုတာကဖော်ပြခဲ့သည်။ ရှင်းနေသည်မှာ NoSQL ကျွန်တော်တို့ရဲ့ချိတ်ဆက်ကမ်ဘာပျေါတှငျနေရာမှရှိပါတယ်ဒါပေမယ့်အများအပြားရှိသည်နိုင်ထင်သောအစုလိုက်အပြုံလိုက်အယူခံဝင်ရဖို့တဖြည်းဖြည်းတိုးတက်ပြောင်းလဲဆက်လက်ရန်လိုအပ်ပါလိမ့်မယ်။