NoSQL apžvalga

click fraud protection

Santrumpa NoSQL buvo sukurta 1998 m. Daugelis žmonių mano, kad „NoSQL“ yra menkinantis terminas, sukurtas SQL pažvelgti. Tiesą sakant, šis terminas reiškia ne tik SQL. Idėja ta, kad abi technologijos gali egzistuoti kartu ir kiekviena turi savo vietą. Pastaruosius kelerius metus NoSQL judėjimas buvo aktualus naujienoms, nes daugelis Web 2.0 lyderių priėmė NoSQL technologiją. Tokios įmonės kaip „Facebook“, „Twitter“, „Digg“, „Amazon“, „LinkedIn“ ir „Google“ vienaip ar kitaip naudoja „NoSQL“. Išskaidykime NoSQL, kad galėtumėte tai paaiškinti savo CIO ar net savo bendradarbiams.

MYSQL duomenų bazė.

NoSQL atsirado iš poreikio

Duomenų saugykla: Pasaulyje saugomi skaitmeniniai duomenys matuojami eksabaitais. Eksabaitas yra lygus vienam milijardui gigabaitų (GB) duomenų. Pagal Internet.com, saugomų duomenų kiekis, pridėtas 2006 m., buvo 161 eksabaitas. Vos po 4 metų, 2010 m., saugomų duomenų kiekis bus beveik 1000 ExaByte, ty daugiau nei 500%. Kitaip tariant, pasaulyje saugoma daug duomenų ir jie tik toliau augs.

Sujungti duomenys: Duomenys ir toliau tampa vis labiau susieti. Žiniatinklio kūrimas skatinamas hipersaitais, tinklaraščiai turi pingbacks ir visos pagrindinės socialinių tinklų sistemos turi žymes, kurios susieja dalykus. Pagrindinės sistemos yra sukurtos taip, kad būtų tarpusavyje sujungtos.

Sudėtinga duomenų struktūra: NoSQL gali lengvai tvarkyti hierarchines įdėtas duomenų struktūras. Norėdami atlikti tą patį SQL, jums reikės kelių reliacinių lentelių su visų rūšių raktais. Be to, yra ryšys tarp našumo ir duomenų sudėtingumo. Įprastos RDBVS našumas gali pablogėti, nes saugome didžiulius duomenų kiekius, reikalingus socialinių tinklų programose ir semantinis tinklas.

Kas yra NoSQL?

Manau, kad vienas iš būdų apibrėžti NoSQL yra atsižvelgti į tai, kas tai nėra. Tai nėra SQL ir nėra santykinis. Kaip rodo pavadinimas, tai nėra RDBMS pakaitalas, bet ją papildo. NoSQL yra sukurta paskirstytoms duomenų saugykloms, skirtoms labai didelio masto duomenų poreikiams. Pagalvokite apie „Facebook“ su 500 000 000 vartotojų arba „Twitter“, kuris kiekvieną dieną kaupia terabitus duomenų.

NoSQL duomenų bazėje nėra fiksuotos schemos ir jokių sujungimų. RDBMS „padidėja“ gaudama vis greitesnę aparatinę įrangą ir pridedant atminties. Kita vertus, NoSQL gali pasinaudoti „mažinimo“ pranašumais. Mastelio mažinimas reiškia apkrovos paskirstymą daugelyje prekių sistemų. Tai yra NoSQL komponentas, todėl jis yra nebrangus sprendimas dideliems duomenų rinkiniams.

NoSQL kategorijos

Dabartinis NoSQL pasaulis telpa į 4 pagrindines kategorijas.

  1. Pagrindinių vertybių parduotuvės pirmiausia remiasi „Amazon“ „Dinamo“ popierius kuris buvo parašytas 2007 m. Pagrindinė idėja yra maišos lentelės, kurioje yra unikalus raktas ir rodyklė į konkretų duomenų elementą, egzistavimas. Šie atvaizdai paprastai yra kartu su talpyklos mechanizmais, siekiant maksimaliai padidinti našumą.
    1. Stulpelių šeimos parduotuvės buvo sukurti saugoti ir apdoroti labai didelius duomenų kiekius, paskirstytus daugelyje mašinų. Vis dar yra raktų, bet jie nurodo kelis stulpelius. „BigTable“ („Google“ stulpelių šeimos NoSQL modelis) atveju eilutės identifikuojamos pagal eilutės raktą, o duomenys rūšiuojami ir saugomi pagal šį raktą. Stulpeliai išdėstyti pagal stulpelių šeimą.
  2. Dokumentų duomenų bazės buvo įkvėpti Lotus Notes ir yra panašios į pagrindinės vertės parduotuves. Modelis iš esmės yra versijų dokumentai, kurie yra kitų raktų reikšmių rinkinių rinkiniai. Pusiau struktūriniai dokumentai saugomi tokiais formatais kaip JSON.
  3. Grafikų duomenų bazės yra kuriami su mazgais, ryšiais tarp natų ir mazgų savybėmis. Vietoj eilučių ir stulpelių lentelių ir griežtos SQL struktūros naudojamas lankstus grafiko modelis, kurį galima keisti daugelyje mašinų.

Pagrindiniai NoSQL grotuvai

Pagrindiniai NoSQL žaidėjai atsirado pirmiausia dėl juos priėmusių organizacijų. Kai kurios didžiausios NoSQL technologijos apima:

  • Dinamo: „Dinamo“ sukūrė Amazon.com ir yra ryškiausia „Key-Value NoSQL“ duomenų bazė. „Amazon“ reikėjo labai keičiamo dydžio paskirstytos platformos savo elektroninės prekybos įmonėms, todėl jie sukūrė „Dinamo“. „Amazon S3“ kaip saugojimo mechanizmą naudoja „Dinamo“.
  • Kasandra:Kasandra buvo atviro kodo „Facebook“ ir yra į stulpelius orientuota NoSQL duomenų bazė.
  • BigTable: „BigTable“ yra „Google“ patentuota į stulpelius 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 ima mokesčius, atsižvelgiant į naudojimą.
  • CouchDB:CouchDB kartu su MongoDB yra į atvirojo kodo dokumentus orientuotos NoSQL duomenų bazės.
  • Neo4J:Neo4j yra atvirojo kodo grafikų duomenų bazė.

Užklausa NoSQL

Daugumą kūrėjų domina klausimas, kaip pateikti užklausą NoSQL duomenų bazėje. Galų gale, duomenys, saugomi didžiulėje duomenų bazėje, niekam neduoda naudos, jei negalite jų atgauti ir parodyti galutiniams vartotojams ar interneto paslaugoms. NoSQL duomenų bazės nepateikia aukšto lygio deklaratyvios užklausos kalbos, tokios kaip SQL. Vietoj to, užklausos šiose duomenų bazėse yra susijusios su duomenų modeliu.

Daugelis NoSQL platformų leidžia naudoti RESTful sąsajas su duomenimis. Kitos pasiūlymo užklausų API. Yra sukurta keletas užklausų įrankių, kurie bando pateikti užklausą keliose NoSQL duomenų bazėse. Šie įrankiai paprastai veikia vienoje NoSQL kategorijoje. Vienas iš pavyzdžių yra SPARQL. SPARQL yra deklaratyvi užklausos specifikacija, sukurta grafų duomenų bazėms. Štai SPARQL užklausos, kuri nuskaito konkretaus tinklaraštininko URL, pavyzdys (su sutikimu IBM):

PREFIX foaf: 
PASIRINKITE ?url
NUO
KUR {
?bendradarbis foaf: vardas „Jon Foobar“ .
?bendraautoris foaf: tinklaraštis ?url .
}

NoSQL ateitis

Organizacijos, kurioms reikia didžiulių duomenų saugojimo poreikių, rimtai žiūri į NoSQL. Matyt, mažesnėse organizacijose ši koncepcija nesulaukia tiek daug dėmesio. Informacijos savaitės atlikta apklausa parodė, kad 44% verslo IT specialistų nėra girdėję apie NoSQL. Be to, tik 1% respondentų teigė, kad NoSQL yra jų strateginės krypties dalis. Akivaizdu, kad NoSQL turi savo vietą mūsų susietame pasaulyje, tačiau turės toliau tobulėti, kad įgytų masinį patrauklumą, kurį daugelis mano, kad galėtų turėti.