NoSQL qisqartmasi 1998-yilda yaratilgan. Ko'pchilik NoSQLni SQL-ni o'ylash uchun yaratilgan kamsituvchi atama deb hisoblaydi. Aslida, bu atama nafaqat SQL degan ma'noni anglatadi. G'oya shundan iboratki, ikkala texnologiya ham birga yashashi mumkin va har birining o'z o'rni bor. NoSQL harakati so'nggi bir necha yil ichida yangiliklarda bo'ldi, chunki Web 2.0 yetakchilarining ko'pchiligi NoSQL texnologiyasini qabul qildi. Facebook, Twitter, Digg, Amazon, LinkedIn va Google kabi kompaniyalar u yoki bu tarzda NoSQL-dan foydalanadilar. Keling, uni CIO yoki hatto hamkasblaringizga tushuntirishingiz uchun NoSQL-ni parchalaymiz.
NoSQL ehtiyojdan kelib chiqdi
Ma'lumotlarni saqlash: Dunyoda saqlangan raqamli ma'lumotlar ekzabaytlarda o'lchanadi. Ekzabayt bir milliard gigabayt (GB) ma'lumotga teng. Internet.com ma'lumotlariga ko'ra, 2006 yilda qo'shilgan saqlangan ma'lumotlar hajmi 161 ekzabaytni tashkil etdi. 2010-yilda atigi 4 yil o'tgach, saqlangan ma'lumotlar miqdori deyarli 1000 Exabaytni tashkil qiladi, bu 500% dan ortiq o'sishni anglatadi. Boshqacha qilib aytadigan bo'lsak, dunyoda juda ko'p ma'lumotlar saqlanadi va ular o'sishda davom etadi.
Oʻzaro bogʻlangan maʼlumotlar: Maʼlumotlar yanada ulanishda davom etmoqda. Internetni yaratish giperhavolalar, bloglarda pingbeklar va har bir yirik ijtimoiy tarmoq tizimida narsalarni bir-biriga bog'laydigan teglar mavjud. Asosiy tizimlar oʻzaro bogʻlanish uchun qurilgan.
Murakkab ma'lumotlar tuzilmasi: NoSQL ierarxik joylashtirilgan ma'lumotlar tuzilmalarini osongina boshqara oladi. SQL-da bir xil ishni bajarish uchun sizga barcha turdagi kalitlarga ega bir nechta relyatsion jadvallar kerak bo'ladi. Bundan tashqari, ishlash va ma'lumotlarning murakkabligi o'rtasida bog'liqlik mavjud. An'anaviy RDBMSda unumdorlik pasayishi mumkin, chunki biz ijtimoiy tarmoq ilovalari va semantik tarmoqda talab qilinadigan katta hajmdagi ma'lumotlarni saqlaymiz.
NoSQL nima?
Menimcha, NoSQL-ni aniqlashning bir usuli bu nima emasligini ko'rib chiqishdir. Bu SQL emas va u aloqador emas. Nomidan ko'rinib turibdiki, bu RDBMS o'rniga emas, balki uni maqtaydi. NoSQL juda katta hajmdagi ma'lumotlar ehtiyojlari uchun tarqatilgan ma'lumotlarni saqlash uchun mo'ljallangan. 500,000,000 foydalanuvchisi bo'lgan Facebook yoki har kuni Terabits ma'lumotlarini to'playdigan Twitter haqida o'ylab ko'ring.
NoSQL ma'lumotlar bazasida qat'iy sxema va ulanishlar mavjud emas. RDBMS tezroq va tezroq uskunani olish va xotira qo'shish orqali "kattalashadi". Boshqa tomondan, NoSQL "miqyosni kengaytirish" dan foydalanishi mumkin. Masshtabni kengaytirish yukni ko'plab tovar tizimlariga tarqatishni anglatadi. Bu NoSQL komponenti boʻlib, uni katta maʼlumotlar toʻplamlari uchun arzon yechimga aylantiradi.
NoSQL toifalari
Hozirgi NoSQL dunyosi 4 ta asosiy toifaga kiradi.
- Asosiy qiymatlar doʻkonlari asosan Amazonning 2007-yilda yozilgan Dynamo Paper-ga asoslangan. Asosiy g'oya - noyob kalit va ma'lum bir ma'lumot elementiga ko'rsatgich mavjud bo'lgan xesh jadvalining mavjudligi. Bu xaritalashlar odatda samaradorlikni oshirish uchun kesh mexanizmlari bilan birga keladi.
- Hujjat ma'lumotlar bazalari Lotus Notes-dan ilhomlangan va asosiy qiymatlar do'konlariga o'xshaydi. Model asosan boshqa kalit-qiymat to'plamlari to'plami bo'lgan versiyalashtirilgan hujjatlardir. Yarim tuzilgan hujjatlar JSON kabi formatlarda saqlanadi.
- Grafik ma'lumotlar bazasilar tugunlar, qaydlar orasidagi munosabatlar va tugunlarning xususiyatlari bilan tuzilgan. Satrlar va ustunlar jadvallari va SQL ning qattiq tuzilishi o'rniga ko'plab mashinalarda masshtablashtira oladigan moslashuvchan grafik modeli qo'llaniladi.
Ustunli oilaviy doʻkonlar koʻplab mashinalarda tarqatilgan juda katta hajmdagi maʼlumotlarni saqlash va qayta ishlash uchun yaratilgan. Hali ham kalitlar mavjud, ammo ular bir nechta ustunlarga ishora qiladi. BigTable (Google'ning Ustunlar oilasi NoSQL modeli) misolida, qatorlar ushbu kalit orqali tartiblangan va saqlanadigan ma'lumotlar bilan qator kaliti bilan aniqlanadi. Ustunlar ustunlar oilasi boʻyicha joylashtirilgan.
Asosiy NoSQL oʻyinchilari
NoSQL-ning asosiy o'yinchilari birinchi navbatda ularni qabul qilgan tashkilotlar tufayli paydo bo'ldi. Eng yirik NoSQL texnologiyalariga quyidagilar kiradi:
- Dinamo: Dinamo Amazon.com tomonidan yaratilgan va eng mashhur Key-Value NoSQL ma'lumotlar bazasi hisoblanadi. Amazon o'zlarining elektron tijorat bizneslari uchun yuqori darajada kengaytiriladigan taqsimlangan platformaga muhtoj edi, shuning uchun ular Dynamo-ni ishlab chiqdilar. Amazon S3 saqlash mexanizmi sifatida Dynamo’dan foydalanadi.
- Cassandra: Kassandra Facebook tomonidan ochiq manba boʻlib, ustunga yoʻn altirilgan NoSQL maʼlumotlar bazasidir.
- BigTable: BigTable - bu Google-ning ustunga yo'n altirilgan xususiy ma'lumotlar bazasi. Google BigTable-dan foydalanishga ruxsat beradi, lekin faqat Google App Engine uchun.
- SimpleDB: SimpleDB boshqa Amazon ma'lumotlar bazasi. Amazon EC2 va S3 uchun foydalaniladi, u Amazon veb xizmatlarining bir qismi bo‘lib, foydalanishga qarab haq oladi.
- CouchDB: CouchDB va MongoDB ochiq manbali hujjatga asoslangan NoSQL ma'lumotlar bazalaridir.
- Neo4J: Neo4j ochiq manbali grafik maʼlumotlar bazasi.
NoSQL so'rovi
NoSQL ma'lumotlar bazasini qanday so'rash kerakligi haqidagi savol ko'pchilik ishlab chiquvchilarni qiziqtiradi. Axir, katta ma'lumotlar bazasida saqlangan ma'lumotlar hech kimga foyda keltirmaydi, agar siz uni qaytarib olib, oxirgi foydalanuvchilarga ko'rsata olmasangiz. yoki veb-xizmatlar. NoSQL ma'lumotlar bazalari SQL kabi yuqori darajadagi deklarativ so'rovlar tilini ta'minlamaydi. Buning oʻrniga, bu maʼlumotlar bazalarini soʻrash > PREFIX foaf:
SELECT ?url
FROM
WHERE {
?contributor foaf:name "Jon Foobar".
?contributor foaf:weblog ?url.
}
NoSQL kelajagi
Ma'lumotlarni saqlashga katta ehtiyojga ega bo'lgan tashkilotlar NoSQL-ga jiddiy qarashadi. Ko'rinishidan, kontseptsiya kichikroq tashkilotlarda unchalik katta qiziqish uyg'otmayapti. Axborot haftaligi tomonidan o'tkazilgan so'rovda, biznes IT-mutaxassislarining 44 foizi NoSQL haqida eshitmagan. Bundan tashqari, respondentlarning atigi 1 foizi NoSQL ularning strategik yo'nalishining bir qismi ekanligini aytdi. Shubhasiz, NoSQL bizning bog'langan dunyomizda o'z o'rniga ega, ammo ko'pchilik o'ylagan ommaviy jozibadorlikka erishish uchun rivojlanishda davom etishi kerak.