NoSQL-ийн товчлолыг 1998 онд бий болгосон. Олон хүмүүс NoSQL-ийг SQL-г нудрахад зориулж бүтээсэн гутаан доромжилсон нэр томъёо гэж боддог. Бодит байдал дээр энэ нэр томъёо нь Зөвхөн SQL биш гэсэн үг юм. Энэ хоёр технологи зэрэгцэн оршиж, тус бүр өөрийн гэсэн байр суурьтай гэсэн санаа юм. Вэб 2.0-ийн олон удирдагчид NoSQL технологийг нэвтрүүлсэн тул NoSQL-ийн хөдөлгөөн сүүлийн хэдэн жилийн турш мэдээ болж байна. Facebook, Twitter, Digg, Amazon, LinkedIn, Google зэрэг компаниуд NoSQL-г ямар нэг байдлаар ашигладаг. NoSQL-г задлаад CIO эсвэл хамтран ажиллагсаддаа тайлбарлаж өгье.
NoSQL хэрэгцээнээс үүссэн
Өгөгдөл хадгалах: Дэлхий дээр хадгалагдсан дижитал өгөгдлийг эксабайтаар хэмждэг. Эксабайт нь нэг тэрбум гигабайт (ГБ) өгөгдөлтэй тэнцэнэ. Internet.com сайтын мэдээлснээр 2006 онд нэмэгдсэн хадгалагдсан мэдээллийн хэмжээ 161 экзабайт байжээ. 2010 онд ердөө 4 жилийн дараа хадгалагдсан өгөгдлийн хэмжээ бараг 1000 ExaBytes болох бөгөөд энэ нь 500% -иар өссөн үзүүлэлт юм. Өөрөөр хэлбэл, дэлхий дээр маш их өгөгдөл хадгалагдаж байгаа бөгөөд энэ нь өссөөр л байна.
Холбогдсон өгөгдөл: Өгөгдөл улам бүр холбогдсоор байна. Вэбийг бий болгох нь гипер холбоос, блогууд нь pingback-тэй, нийгмийн сүлжээний томоохон систем бүр зүйлсийг хооронд нь холбодог шошготой байдаг. Гол системүүд нь хоорондоо уялдаатай байхаар бүтээгдсэн.
Цогц өгөгдлийн бүтэц: NoSQL нь шаталсан үүрлэсэн өгөгдлийн бүтцийг хялбархан зохицуулж чадна. SQL дээр ижил зүйлийг хийхийн тулд танд бүх төрлийн түлхүүр бүхий олон тооны харилцааны хүснэгт хэрэгтэй болно. Үүнээс гадна гүйцэтгэл болон өгөгдлийн нарийн төвөгтэй байдлын хоорондын хамаарал байдаг. Бид нийгмийн сүлжээний програмууд болон семантик вэбэд шаардлагатай асар их хэмжээний өгөгдлийг хадгалдаг тул уламжлалт RDBMS-ийн гүйцэтгэл муудаж болно.
NoSQL гэж юу вэ?
Миний бодлоор NoSQL-г тодорхойлох нэг арга бол юу нь биш гэдгийг авч үзэх явдал юм. Энэ нь SQL биш бөгөөд харилцаа холбоогүй юм. Нэрнээс нь харахад энэ нь RDBMS-ийг орлох биш харин түүнийг сайшааж байна. NoSQL нь маш том хэмжээний өгөгдлийн хэрэгцээнд зориулагдсан тархсан мэдээллийн сангуудад зориулагдсан. 500,000,000 хэрэглэгчтэй Facebook эсвэл өдөр бүр терабит мэдээлэл хуримтлуулдаг Twitter-ийн талаар бодоорой.
NoSQL мэдээллийн санд тогтсон схем, холболт байхгүй. RDBMS нь илүү хурдан, хурдан техник хангамжтай болж, санах ойг нэмснээр "томордог". Харин NoSQL нь "хэмжээг багасгах" давуу талыг ашиглаж чаддаг. Өргөтгөх гэдэг нь ачааллыг олон барааны системд тараахыг хэлнэ. Энэ бол NoSQL-ийн бүрэлдэхүүн хэсэг бөгөөд үүнийг том өгөгдлийн багцад хямд шийдэл болгодог.
NoSQL Ангилал
Одоогийн NoSQL ертөнц 4 үндсэн ангилалд багтдаг.
- Үндсэн үнэ цэнийн дэлгүүрүүд нь 2007 онд бичигдсэн Амазоны Динамо цаасан дээр тулгуурладаг. Гол санаа нь өгөгдлийн тодорхой зүйлд өвөрмөц түлхүүр, заагч байдаг хэш хүснэгт байх явдал юм. Эдгээр зураглалыг гүйцэтгэлийг нэмэгдүүлэхийн тулд ихэвчлэн кэш механизм дагалддаг.
- Баримт бичгийн өгөгдлийн сан нь Lotus Notes-ээс санаа авсан бөгөөд гол үнэ цэнийн дэлгүүрүүдтэй төстэй. Энэ загвар нь үндсэндээ бусад түлхүүр-утга цуглуулгуудын цуглуулга болох хувилбартай баримт бичиг юм. Хагас бүтэцтэй баримт бичгүүдийг JSON шиг форматаар хадгалдаг.
- График мэдээллийн сан нь зангилаа, тэмдэглэл хоорондын хамаарал болон зангилааны шинж чанаруудаар бүтээгдсэн. Мөр, баганын хүснэгтүүд болон SQL-ийн хатуу бүтцийн оронд олон машиныг масштаблах боломжтой уян график загварыг ашигладаг.
Багананд гэр бүлийн дэлгүүрүүд нь олон машин дээр тархсан маш их хэмжээний өгөгдлийг хадгалах, боловсруулах зорилгоор бүтээгдсэн. Түлхүүрүүд байсаар байгаа боловч тэдгээр нь олон баганыг заадаг. BigTable-ийн хувьд (Google-ийн баганын гэр бүлийн NoSQL загвар) мөрүүдийг энэ түлхүүрээр эрэмбэлж хадгалсан өгөгдлийг мөрийн товчлуураар тодорхойлдог. Багануудыг баганын бүлгээр байрлуулсан.
Үндсэн NoSQL тоглуулагч
NoSQL-ийн гол тоглогчид үндсэндээ тэдгээрийг нэвтрүүлсэн байгууллагуудын ачаар гарч ирсэн. Хамгийн том NoSQL технологийн зарим нь:
- Динамо: Динамо нь Amazon.com-оос бүтээгдсэн бөгөөд хамгийн алдартай Түлхүүр-Үнэт NoSQL мэдээллийн сан юм. Амазонд цахим худалдааны бизнесүүддээ өргөн цар хүрээтэй түгээх платформ хэрэгтэй байсан тул Динамог хөгжүүлсэн. Amazon S3 нь Dynamo-г хадгалах механизм болгон ашигладаг.
- Кассандра: Кассандра нь Facebook-ээс нээлттэй эх сурвалж бөгөөд баганад чиглэсэн NoSQL мэдээллийн сан юм.
- BigTable: BigTable нь Google-ийн өмчийн багана чиглэсэн мэдээллийн сан юм. Google нь BigTable-г ашиглахыг зөвшөөрдөг боловч зөвхөн Google App Engine-д зориулагдсан.
- SimpleDB: SimpleDB нь Амазоны өөр нэг мэдээллийн сан юм. Amazon EC2 болон S3-д ашигладаг бөгөөд энэ нь ашиглалтаас хамааран төлбөр авдаг Amazon Web Services-ийн нэг хэсэг юм.
- CouchDB: CouchDB нь MongoDB-тай хамт нээлттэй эхийн баримт бичигт суурилсан NoSQL мэдээллийн сан юм.
- Neo4J: Neo4j нь нээлттэй эхийн график мэдээллийн сан юм.
NoSQL асууж байна
NoSQL өгөгдлийн санг хэрхэн асуулгах вэ гэдэг асуулт бол ихэнх хөгжүүлэгчдийн сонирхдог зүйл юм. Эцсийн эцэст, асар том өгөгдлийн санд хадгалагдсан өгөгдөл нь татан авч эцсийн хэрэглэгчдэд үзүүлж чадахгүй бол хэнд ч ашиггүй. эсвэл вэб үйлчилгээ. NoSQL мэдээллийн сан нь SQL шиг өндөр түвшний мэдүүлгийн хэлээр хангадаггүй. Оронд нь эдгээр мэдээллийн сангаас асуух нь > PREFIX foaf:
SELECT ?url
FROM
WHERE {
?contributor foaf:name "Jon Foobar".
?contributor foaf:weblog ?url.
}
NoSQL-ийн ирээдүй
Өгөгдөл хадгалах асар их хэрэгцээтэй байгууллагууд NoSQL-г нухацтай судалж байна. Энэ үзэл баримтлал нь жижиг байгууллагуудад тийм ч их анхаарал татахгүй байгаа бололтой. Мэдээллийн долоо хоногоос явуулсан судалгаагаар бизнесийн мэдээллийн технологийн мэргэжилтнүүдийн 44% нь NoSQL-ийн талаар сонсоогүй байна. Цаашилбал, судалгаанд оролцогчдын ердөө 1% нь NoSQL нь тэдний стратегийн чиглэлийн нэг хэсэг гэж хариулсан байна. Мэдээжийн хэрэг, NoSQL нь бидний холбогдсон ертөнцөд өөрийн гэсэн байр суурийг эзэлдэг боловч олон хүний бодож байгаа шиг олны анхаарлыг татахын тулд үргэлжлүүлэн хөгжих шаардлагатай болно.