O privire de ansamblu asupra bazelor de date NoSQL

Acronimul NoSQL a fost inventat în 1998. Mulți oameni cred că NoSQL este un termen derogatoriu creat pentru a răspunde la SQL. În realitate, termenul înseamnă nu numai SQL. Ideea este că ambele tehnologii pot coexista și fiecare își are locul. Mișcarea NoSQL a fost în știri în ultimii ani, deoarece mulți dintre liderii Web 2.0 au adoptat o tehnologie NoSQL. Companiile cum ar fi Facebook, Twitter, Digg, Amazon, LinkedIn și Google folosesc toate noștri într-un fel sau altul.

Să descompunem NoSQL astfel încât să puteți explica-o CIO-ului dvs. sau chiar colegilor dumneavoastră.

NoSQL a apărut dintr-o necesitate

Stocarea datelor: datele digitale stocate în lume sunt măsurate în exabyte. Un exabyte este egal cu un miliard de gigabytes (GB) de date. Potrivit Internet.com, cantitatea de date stocate în 2006 a fost de 161 exabyte. Doar 4 ani mai târziu în 2010, cantitatea de date stocate va fi de aproape 1.000 de ExaBytes, ceea ce reprezintă o creștere de peste 500%. Cu alte cuvinte, există o mulțime de date care sunt stocate în lume și va continua să crească.

Date interconectate: datele continuă să devină mai conectate. Crearea site-ului încurajată în hiperlegături, bloguri are pingback-uri și fiecare sistem de rețea socială majoră are etichete care leagă lucrurile împreună. Sistemele majore sunt construite pentru a fi interconectate.

Structura complexă a datelor: NoSQL poate gestiona ușor structurile de date imbricate ierarhic. Pentru a realiza același lucru în SQL, ai avea nevoie de mai multe tabele relaționale cu tot felul de chei.

În plus, există o relație între performanță și complexitatea datelor. Performanța se poate degrada într-un RDBMS tradițional, deoarece stocăm cantitățile masive de date necesare în aplicațiile de rețele sociale și în web-ul semantic.

Ce este NoSQL?

Cred că un mod de a defini NoSQL este să ia în considerare ce nu este.

Nu este SQL și nu este relațional. După cum sugerează și numele, nu este un înlocuitor pentru RDBMS, ci îl complimentează. NoSQL este proiectat pentru stocarea datelor distribuite pentru nevoile de date la scară foarte mare. Gândiți-vă la Facebook cu cei 500.000.000 de utilizatori sau Twitter care acumulează Terabiți de date în fiecare zi.

Într-o bază de date NoSQL, nu există nicio schemă fixă ​​și nicio conexiune. Un RDBMS se "scaldă" prin obținerea unui hardware mai rapid și mai rapid și prin adăugarea de memorie. NoSQL, pe de altă parte, poate profita de "scalare". Scalarea se referă la răspândirea sarcinii pe multe sisteme de mărfuri. Aceasta este componenta NoSQL care o face o soluție ieftină pentru seturi de date mari.

Categorii NoSQL

Actuala lume NoSQL se încadrează în 4 categorii de bază.

  1. Valorile-cheie Magazinele se bazează în primul rând pe hârtia dinamică Amazon, care a fost scrisă în 2007. Ideea principală este existența unui tabel hash în care există o cheie unică și un indicator pentru un anumit element de date. Aceste mapări sunt de obicei însoțite de mecanisme de cache pentru a maximiza performanța.
    Familiile Magazine de tip Column au fost create pentru a stoca și procesa cantități foarte mari de date distribuite pe mai multe mașini. Există încă chei, dar indică mai multe coloane. În cazul modelului BigTable (modelul familiei NoSQL din familia Google), rândurile sunt identificate printr-o cheie rând cu datele sortate și stocate de această cheie. Coloanele sunt aranjate în funcție de familia coloanelor.
  1. Baza de date a documentelor a fost inspirată de Lotus Notes și este similară magazinelor cheie-valoare. Modelul este în esență documente versiuni care sunt colecții de alte colecții cheie-valoare. Documentele semi-structurate sunt stocate în formate precum JSON.
  2. Graficele bazei de date sunt construite cu noduri, relațiile dintre note și proprietățile nodurilor. În loc de tabele de rânduri și coloane și de structura rigidă a SQL, se utilizează un model grafic flexibil, care poate fi scalat pe multe mașini.

Jucătorii NoSQL majori

Principalii jucători din NoSQL au apărut în primul rând din cauza organizațiilor care le-au adoptat. Unele dintre cele mai mari tehnologii NoSQL includ:

Interogarea NoSQL

Întrebarea despre interogarea unei baze de date NoSQL este ceea ce majoritatea dezvoltatorilor sunt interesați. La urma urmei, datele stocate într-o bază de date imensă nu fac pe nimeni deloc dacă nu îl puteți recupera și-l arăta utilizatorilor finali sau serviciilor web. Bazele de date NoSQL nu oferă o limbă de interogare declarativă la nivel înalt, cum ar fi SQL. În schimb, interogarea acestor baze de date este specifică modelului de date.

Multe dintre platformele NoSQL permit interfața RESTful cu datele. Alte interfețe API pentru interogări oferite. Există câteva instrumente de interogare care au fost dezvoltate care încearcă să interogheze mai multe baze de date NoSQL. Aceste instrumente lucrează de obicei într-o singură categorie NoSQL. Un exemplu este SPARQL. SPARQL este o specificație declarativă de interogare concepută pentru baze de date grafice. Iată un exemplu de interogare SPARQL care preia adresa URL a unui anumit blogger (prin amabilitatea lui IBM):

PREFIX foaf:
SELECT? Url
De la
UNDE {
Contributor foaf: numele "Jon Foobar".
Contributor foaf: weblog? url.
}

Viitorul NoSQL

Organizațiile care au nevoi masive de stocare a datelor se uită serios la NoSQL. Aparent, conceptul nu este obtinerea atat de mult tractiune in organizatiile mai mici. Într-un sondaj realizat de Informația săptămânală, 44% dintre profesioniștii din domeniul IT din domeniul afacerilor nu au auzit de NoSQL. Mai mult, doar 1% dintre respondenți au raportat că NoSQL face parte din direcția lor strategică. În mod clar, NoSQL își are locul în lumea conectată, dar va trebui să continue să evolueze pentru a obține recursul în masă pe care mulți îl cred că ar putea-o avea.