NoSQL мэдээллийн баазын тойм

NoSQL гэсэн товчлол нь 1998 онд байгуулагдсан. Олон хүмүүс NoSQL гэдэг нь SQL дээр түшиц газар үүсгэхийн тулд бүдгэрүүлсэн нэр томъёо юм. Бодитоор бол энэ нэр томьёо нь төдийгүй SQL гэсэн утгатай. Хоёр санаа аль аль технологийг хамтран ашиглах боломжтой бөгөөд тус бүр өөрийн гэсэн байр суурьтай байдаг. NoSQL-ийн хөдөлгөөн өнгөрсөн хэдэн жилийн хугацаанд гарсан бөгөөд вэбсайт 2.0-ийн удирдагчид NoSQL технологийг нэвтрүүлсэн байна. Facebook, Twitter, Digg, Amazon, LinkedIn, Google гэх мэт компаниуд бүгдээрээ NoSQL-ийг ашигладаг.

NoSQL-г задруулъя. Ингэснээр та өөрийн CIO эсвэл хамтран ажиллагсдаа тайлбарлаж болно.

NoSQL нь хэрэгцээнээс үүссэн

Өгөгдлийн хадгалалт: Дэлхийн хадгалагдсан тоон өгөгдлийг exabytes-д хэмждэг. Exabyte нь нэг тэрбум гигабайт (GB) өгөгдөлтэй тэнцүү юм. Интернэйшнлийн мэдээлснээр 2006 онд хадгалагдсан өгөгдлийн хэмжээ нь 161 exabytes байжээ. 2010 онд ердөө 4 жилийн дараа хадгалах тоо хэмжээ нь 500 гаруй хувиар өсч 1000 ExaBytes болно. Өөрөөр хэлбэл, дэлхий даяар хадгалагдаж байгаа олон тооны өгөгдөл хадгалагдаж байгаа бөгөөд өсөн нэмэгдсээр байна.

Холбогдсон өгөгдөл: Өгөгдөл улам бүр холбоотой болж байна. Интернетийг холбоос үүсгэсэн вэбсайт үүсгэх, блогууд нь pingbacks-уудтай бөгөөд нийгмийн сүлжээний томоохон системүүд нь хоорондоо уялдсан шошготой байдаг. Том системүүд хоорондоо харилцан холбоотой байхаар бүтээгдсэн.

Өгөгдлийн цогц бүтэц: NoSQL нь шаталсан өгөгдлийн бүтцийг хялбархан зохицуулж чаддаг. SQL хэл дээр ижил зүйлийг хийж гүйцэтгэхийн тулд олон янзын түлхүүрүүд бүхий бүх төрлийн түлхүүрийн хүснэгтүүд хэрэгтэй болно.

Үүнээс гадна, гүйцэтгэл, өгөгдлийн төвөгтэй байдал хоёрын харилцан хамаарал байдаг. Гүйцэтгэлийн үр дүнд нийгмийн сүлжээний хэрэглээнд шаардагдах их хэмжээний өгөгдлийг хадгалдаг тул уламжлалт ХАБДХ-ийн хүрээнд доройтож болно.

NoSQL гэж юу вэ?

NoSQL-ийг тодорхойлох нэг арга бол энэ нь юу вэ гэдгийг авч үзье.

Энэ нь SQL биш бөгөөд энэ нь харилцан холбоогүй юм. Нэрээр нь дурьдсанчлан, энэ нь RDBMS-ийн оронд орлуулах биш харин түүнийг сайшааж байна. NoSQL нь их хэмжээний өгөгдлийн хэрэгцээнд зориулсан түгээх өгөгдлийн сангуудад зориулагдсан. 500 сая хэрэглэгчийн эсвэл Twitter бүхий Facebook-ийн талаар бодоорой.

NoSQL мэдээллийн баазад ямар ч тогтмол схем болон холболт байхгүй байна. RDBMS нь "масштаб" -ыг хурдан, хурдан тоног төхөөрөмжөөр авах, санах ой нэмдэг. Нөгөө талаас NoSQL нь "өргөтгөх" боломжийг ашиглаж болно. Өргөтгөх гэдэг нь олон төрлийн бараа бүтээгдэхүүний системийн ачааллыг тараахыг хэлнэ. Энэ бол NoSQL-ийн бүрэлдэхүүн хэсэг бөгөөд энэ нь томоохон өгөгдлийн сангийн хувьд хямд шийдэл болгодог.

NoSQL ангилалууд

Одоогийн NoSQL ертөнцөд үндсэн дөрвөн ангилалд нийцдэг.

  1. Key-values ​​Stores нь 2007 онд бичигдсэн Амазоны Динамо Цаас дээр үндэслэсэн. Гол санаа бол өгөгдлийн тодорхой өгөгдөлд өвөрмөц түлхүүр, заагч гэсэн хувийн шинжтэй байна. Эдгээр зураглалыг голдуу гүйцэтгэлийг хамгийн их байлгахын тулд кэшийн механизм дагалддаг.
    Багана Эцэг эхийн дэлгүүрүүд олон тооны машин дээр тараасан маш их хэмжээний мэдээллийг хадгалах, боловсруулахад зориулж үүсгэгдсэн. Түлхүүр хэвээр байгаа ч олон баганыг зааж өгдөг. BigTable (Google Column Family NoSQL загвар) тохиолдолд мөр нь түлхүүрээр эрэмбэлэгдсэн өгөгдлийн мөрөөр танигдсан байна. Баганууд нь баганын гэр бүлээр зохион байгуулагддаг.
  1. Баримтын мэдээллийн сангууд нь Lotus Notes- ээс сүнслэгээр нөлөөлөгдсөн бөгөөд гол үнэ цэнэтэй дэлгүүрүүдтэй төстэй байдаг. Загвар нь үндсэн гол үнэ цэнийн цуглуулгуудыг цуглуулж буй баримт бичгүүдээс бүрддэг. Хагас бүтэцтэй баримтуудыг JSON мэтийн хэлбэрээр хадгалж байдаг.
  2. График өгөгдлийн сан нь зангилаа, тэмдэглэлийн хоорондын холбоо, зангилааны шинж чанаруудаар хийгдсэн. Мөр, баганын хүснэгт болон SQL хатуу бүтэцтэй олон уян дискний загварыг олон машинууд дээр хуваарилах боломжтой.

NoSQL тоглуулагч

NoSQL-ийн гол тоглогчид гол төлөв тэдгээрийг баталсан байгууллагуудын улмаас бий болсон. NoSQL технологийн хамгийн том зарим нь:

NoSQL-г хайж байна

NoSQL мэдээллийн баазыг хэрхэн асуух вэ гэдэг нь ихэнх хөгжүүлэгчдийн сонирхож байгаа зүйл юм. Үүний дараа асар их хэмжээний өгөгдөлд хадгалагдсан өгөгдөл нь хэрэглэгчид эсвэл вэбсайт үйлчилгээг эцсийн хэрэглэгчдэд үзүүлэхгүй, үзүүлж чадахгүй бол ямар ч сайн зүйлгүй болно. NoSQL өгөгдлийн сан нь SQL шиг өндөр түвшний мэдүүлэг хайлтын хэлээр хангадаггүй. Үүний оронд эдгээр өгөгдлийн санг асуух нь өгөгдлийн-загварыг тодорхойлдог.

NoSQL платформуудын ихэнх нь өгөгдөлд RESTful интерфэйсийг зөвшөөрдөг. Бусад санал асуулгын APIs. Олон тооны NoSQL өгөгдлийн санг асуух оролдлого боловсруулсан хэд хэдэн хайлтын хэрэгслүүд байдаг. Эдгээр хэрэгслүүд нь ихэвчлэн ганц NoSQL категороор ажилладаг. Нэг жишээ бол SPARQL юм. SPARQL бол графикийн өгөгдлийн сангийн зориулалтаар тодорхойлсон хайлтын тодорхойлолт юм. Энд SPARQL асуултын жишээг тодорхой блогчийн URL (IBM-ийн зөвшөөрлийн) татаж авах жишээ байна:

PREFIX foaf:
SELECT файлыг сонгоно уу
FROM
WHERE {
Хандивлагч: нэр "Жон Фобар".
? contributor foaf: weblog? url.
}

NoSQL-ийн ирээдүй

Үлэмж хэмжээний өгөгдөл хадгалах хэрэгцээтэй байгууллагууд NoSQL-д нухацтай хандах болно. Үзэл баримтлал нь жижиг байгууллагад илүү их зүтгэж байгааг харуулж байна. Мэдээллийн долоо хоногт явуулсан судалгаагаар бизнесийн МТ-ийн мэргэжилтнүүдийн 44% нь NoSQL-ийн тухай сонсоогүй байна. Цаашилбал, судалгаанд оролцогчдын зөвхөн 1% нь NoSQL нь тэдний стратегийн чиглэлийн нэг хэсэг гэж мэдээлсэн. Мэдээж хэрэг NoSQL нь бидний холбогдсон ертөнцөд байр сууриа эзэлдэг боловч олон хүн үүнийг боддог олон нийтийн давж заалдах хүсэлтийг авахын тулд үргэлжлүүлэн хөгжүүлэх шаардлагатай болно.