1998 m. Akronimas NoSQL buvo sukurtas. Daugelis žmonių mano, kad NoSQL yra leidžiamas terminas, sukurtas SQL. Iš tiesų terminas reiškia ne tik SQL. Idėja yra ta, kad abi technologijos gali egzistuoti kartu, ir kiekviena turi savo vietą. "NoSQL" judėjimas per pastaruosius keletą metų buvo naujienų, nes dauguma "Web 2.0" lyderių priėmė "NoSQL" technologiją. Tokios įmonės, kaip "Facebook", "Twitter", "Digg", "Amazon", "LinkedIn" ir "Google", vienaip ar kitaip naudoja "NoSQL". Suskleiskime "NoSQL", kad galėtumėte tai paaiškinti savo CIO ar net savo kolegoms.
NoSQL atsirado dėl poreikio
Duomenų saugykla: Pasaulyje saugomi skaitmeniniai duomenys matuojami eksabaitais. Exabyte yra lygi milijardui gigabaitų (GB) duomenų. Pasak "Internet.com", 2006 m. Įrašytų duomenų kiekis buvo 161 eksabaitų. Praėjus vos 4 metams po 2010 m., Saugomi duomenys bus beveik 1000 "ExaBytes", tai yra daugiau kaip 500% daugiau. Kitaip tariant, pasaulyje yra daug duomenų, kurie tik bus toliau augti.
Tarpusavyje susiję duomenys: Duomenys vis labiau susieja. Hipersaitų, skatintų tinklalapių kūrimas, tinklaraščiuose yra pingbukų, ir kiekvienoje svarbioje socialinių tinklų sistemoje yra žymių, kurios kartu sujungia dalykus. Pagrindinės sistemos yra sujungtos.
Sudėtinga duomenų struktūra: NoSQL gali lengvai tvarkyti hierarchines įdėtas duomenų struktūras. Norėdami įvykdyti tą patį SQL, reikės kelių reliacinių stalų su visais raktų tipais. Be to, yra ryšys tarp našumo ir duomenų sudėtingumo. Produktyvumas gali pablogėti tradiciniuose RDBVS, nes mes saugome didžiulius duomenis, reikalingus socialinių tinklų programose ir semantiniame tinkle.
Kas yra NoSQL?
Manau, kad vienas iš būdų apibrėžti NoSQL - tai apsvarstyti, kas ne. Tai ne SQL, ir tai nėra reliacinė. Kaip rodo pavadinimas, tai nėra RDBVD pakeitimas, bet komplimentuoja. "NoSQL" sukurta platinamų duomenų saugykloms labai dideliems duomenų poreikiams patenkinti. Pagalvokite apie "Facebook" su savo 500 000 000 vartotojų ar "Twitter", kuris kaupia Terabits duomenis kiekvieną dieną.
NoSQL duomenų bazėje nėra fiksuotos schemos ir nėra prisijungimų. RDBVS "pagreitina", greičiau ir greičiau diegiama aparatūra ir papildoma atmintis. Kita vertus, "NoSQL" gali pasinaudoti "mažinimo" pranašumais. Padalijimas reiškia, kad paskirstoma apkrova daugelyje prekių sistemų. Tai yra NoSQL komponentas, todėl tai yra nebrangus sprendimas dideliems duomenų rinkiniams.
NoSQL kategorijos
Dabartinis NoSQL pasaulis tinka 4 pagrindinėms kategorijoms.
- Pagrindinių vertybių parduotuvės visų pirma remiasi "Amazon" "Dinamo popieriaus", kuris buvo parašytas 2007 m. Pagrindinė idėja yra tai, kad egzistuoja maišos lentelė, kurioje yra unikalus raktas ir rodiklis tam tikram duomenų elementui. Šie atvaizdai paprastai pridedami prie talpyklos mechanizmų, siekiant padidinti našumą.
- Stulpelių šeimos parduotuvės buvo sukurta siekiant kaupti ir apdoroti labai daug duomenų, platinamų daugelyje mašinų. Vis dar yra raktų, bet jie nurodo į kelis stulpelius. "BigTable" atveju ("Google" stulpelių šeimos NoSQL modelis) eilutės identifikuojamos eilės raktu, o duomenys yra surūšiuoti ir saugomi šiuo raktu. Stulpeliai yra surūšiuoti pagal stulpelių šeimą.
- Dokumentų duomenų bazėS buvo įkvėpta "Lotus Notes" ir yra panašios į pagrindines vertybes parduotuvėse. Modelis yra iš esmės versti dokumentai, kurie yra kitų pagrindinių vertybių rinkinių rinkiniai. Pusiau struktūrizuoti dokumentai saugomi tokiais formatais kaip JSON.
- Grafų duomenų bazėS yra pastatyti su mazgai, ryšiai tarp užrašų ir mazgų savybes. Vietoje eilučių ir stulpelių lentelių ir standžios SQL struktūros yra naudojamas lankstus grafinis modelis, kuris gali pasiskirstyti daugelyje mašinų.
Pagrindiniai "NoSQL" grotuvai
Pagrindiniai "NoSQL" veikėjai atsirado pirmiausia dėl organizacijų, kurios juos priėmė. Kai kurios didžiausios NoSQL technologijos apima:
- "Dinamo": Dinamo buvo sukurta "Amazon.com" ir yra labiausiai žinoma Key-Value NoSQL duomenų bazė. "Amazon" turėjo savo "e-komercijos" verslą, kad būtų galima išplėtoti platintą platformą, taigi jos sukūrė "Dinamo". "Amazon S3" naudoja "Dynamo" kaip saugojimo mechanizmą.
- Cassandra: "Cassandra" buvo atvira iš "Facebook" ir yra NoSQL duomenų bazė, orientuota į stulpelius.
- BigTable: "BigTable" yra "Google" patentuota stulpelių orientuota duomenų bazė. "Google" leidžia naudoti "BigTable", bet tik "Google App Engine".
- SimpleDB: SimpleDB yra dar viena "Amazon" duomenų bazė. Naudojama "Amazon EC2" ir "S3", ji yra "Amazon Web Services" dalis, kuri, atsižvelgiant į naudojimą, moka mokesčius.
- CouchDB: CouchDB kartu su MongoDB yra atviro kodo dokumentais orientuotos NoSQL duomenų bazės.
- Neo4J: Neo4j yra atvirojo šaltinio grafikos duomenų bazė.
Užklausa NoSQL
Klausimas, kaip užklausti "NoSQL" duomenų bazę, yra tai, ko labiausiai vertina kūrėjai. Galų gale, didžiulėje duomenų bazėje saugomi duomenys niekam netinka, jei negalėsite jį parsisiųsti ir parodyti galutiniams vartotojams ar žiniatinklio paslaugoms. NoSQL duomenų bazėse nėra aukšto lygio deklaracinės užklausos kalbos, tokios kaip SQL. Vietoj to, užklausimas dėl šių duomenų bazių yra konkretus duomenų modelis.
Daugelis "NoSQL" platformų leidžia naudoti RESTful sąsajas su duomenimis. Kiti pasiūlymų užklausų API. Yra keli užklausų įrankiai, kurie bando užklausti keletą NoSQL duomenų bazių. Šie įrankiai paprastai veikia per vieną "NoSQL" kategoriją. Vienas iš pavyzdžių yra SPARQL. SPARQL yra deklaratyvi užklausų specifikacija, sukurta duomenų bazių grafikai. Čia pateikiamas SPARQL užklausos pavyzdys, išgaunantis konkretaus tinklaraščio URL adresą ("IBM" mandagumo):
PREFIX foaf:
"NoSQL" ateitis
Organizacijos, turinčios didžiulius duomenų saugojimo poreikius, rimtai vertina "NoSQL". Akivaizdu, kad koncepcija negauna tiek traukos mažesnėse organizacijose. "Information Week" atlikto tyrimo metu 44 proc. Verslo IT specialistų negirdėjo apie "NoSQL". Be to, tik 1% respondentų teigė, kad NoSQL yra strateginės krypties dalis. Akivaizdu, kad "NoSQL" turi savo vietą mūsų susijusiame pasaulyje, bet turės ir toliau vystytis, kad gautų masinį apeliacinį skundą, kurį manytų galbūt.