O prezentare generală a NoSQL

click fraud protection

Acronimul NoSQL a fost creat în 1998. Mulți oameni cred că NoSQL este un termen derogatoriu creat pentru a pătrunde în SQL. În realitate, termenul înseamnă Nu numai SQL. Ideea este că ambele tehnologii pot coexista și fiecare își are locul ei. Mișcarea NoSQL a fost în știri în ultimii câțiva ani, deoarece mulți dintre liderii Web 2.0 au adoptat o tehnologie NoSQL. Companii precum Facebook, Twitter, Digg, Amazon, LinkedIn și Google folosesc toate NoSQL într-un fel sau altul. Să defalcăm NoSQL, astfel încât să-l poți explica CIO sau chiar colegilor tăi.

baza de date MYSQL.

NoSQL a apărut dintr-o nevoie

Stocare a datelor: Datele digitale stocate din lume sunt măsurate în exaocteți. Un exaoctet este egal cu un miliard de gigaocteți (GB) de date. Conform Internet.com, cantitatea de date stocate adăugată în 2006 a fost de 161 exaocteți. Doar 4 ani mai târziu, în 2010, cantitatea de date stocate va fi de aproape 1.000 ExaBytes, ceea ce reprezintă o creștere de peste 500%. Cu alte cuvinte, există o mulțime de date stocate în lume și doar vor continua să crească.

Date interconectate: Datele continuă să devină mai conectate. Crearea web-ului promovată prin hyperlinkuri, blogurile au pingback-uri și fiecare sistem major de rețele sociale are etichete care leagă lucrurile. Sistemele majore sunt construite pentru a fi interconectate.

Structura complexă a datelor: NoSQL poate gestiona cu ușurință structurile de date imbricate ierarhice. Pentru a realiza același lucru în SQL, veți 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 web semantic.

Ce este NoSQL?

Cred că o modalitate de a defini NoSQL este să luați în considerare ceea ce nu este. Nu este SQL și nu este relațional. După cum sugerează și numele, nu este un înlocuitor pentru un RDBMS, ci îl complimentează. NoSQL este conceput pentru depozite de date distribuite pentru nevoi de date la scară foarte mare. Gândiți-vă la Facebook cu cei 500.000.000 de utilizatori ai săi sau la Twitter care acumulează Terabiți de date în fiecare zi.

Într-o bază de date NoSQL, nu există nicio schemă fixă ​​și nicio alăturare. Un RDBMS „crește” prin obținerea hardware din ce în ce mai rapidă și prin adăugarea de memorie. NoSQL, pe de altă parte, poate profita de „scaling out”. Scaling out se referă la distribuirea 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

Lumea actuală NoSQL se încadrează în 4 categorii de bază.

  1. Magazine cheie-valoare se bazează în primul rând pe Hârtia Dynamo de la Amazon care a fost scris în 2007. Ideea principală este existența unui tabel hash în care există o cheie unică și un pointer către un anumit element de date. Aceste mapări sunt de obicei însoțite de mecanisme de cache pentru a maximiza performanța.
    1. Column Family Stores au fost create pentru a stoca și procesa cantități foarte mari de date distribuite pe mai multe mașini. Mai există chei, dar indică mai multe coloane. În cazul lui BigTable (modelul Google Column Family NoSQL), rândurile sunt identificate printr-o cheie de rând cu datele sortate și stocate după această cheie. Coloanele sunt aranjate pe familii de coloane.
  2. Baze de date de documente au fost inspirate de notite Lotus și sunt similare cu magazinele cheie-valoare. Modelul este practic documente versiuni care sunt colecții ale altor colecții cheie-valoare. Documentele semi-structurate sunt stocate în formate precum JSON.
  3. Baza de date graficesunt construite cu noduri, relații între note și proprietățile nodurilor. În loc de tabele de rânduri și coloane și de structura rigidă a SQL, se folosește un model de grafic flexibil care se poate scala pe mai multe mașini.

Principalii jucători NoSQL

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

  • Dinam: Dynamo a fost creat de Amazon.com și este cea mai proeminentă bază de date NoSQL Key-Value. Amazon avea nevoie de o platformă distribuită extrem de scalabilă pentru afacerile lor de comerț electronic, așa că a dezvoltat Dynamo. Amazon S3 folosește Dynamo ca mecanism de stocare.
  • Cassandra:Cassandra a fost deschis de Facebook și este o bază de date NoSQL orientată pe coloane.
  • Masă mare: BigTable este baza de date proprietară Google, orientată pe coloane. Google permite utilizarea BigTable, dar numai pentru Google App Engine.
  • SimpleDB: SimpleDB este o altă bază de date Amazon. Folosit pentru Amazon EC2 și S3, face parte din Amazon Web Services care percepe taxe în funcție de utilizare.
  • CouchDB:CouchDB împreună cu MongoDB sunt baze de date NoSQL orientate spre documente open source.
  • Neo4J:Neo4j este o bază de date grafică open source.

Interogarea NoSQL

Întrebarea despre cum să interogăm o bază de date NoSQL este ceea ce interesează majoritatea dezvoltatorilor. La urma urmei, datele stocate într-o bază de date uriașă nu ajută la nimic nimănui dacă nu le poți prelua și arăta utilizatorilor finali sau serviciilor web. Bazele de date NoSQL nu oferă un limbaj de interogare declarativ de nivel înalt precum SQL. În schimb, interogarea acestor baze de date este specifică modelului de date.

Multe dintre platformele NoSQL permit interfețe RESTful pentru date. Alte API-uri de interogare a ofertei. Există câteva instrumente de interogare care au fost dezvoltate care încearcă să interogheze mai multe baze de date NoSQL. Aceste instrumente funcționează de obicei într-o singură categorie NoSQL. Un exemplu este SPARQL. SPARQL este o specificație de interogare declarativă concepută pentru bazele de date grafice. Iată un exemplu de interogare SPARQL care preia adresa URL a unui anumit blogger (din partea IBM):

PREFIX spuma: 
SELECTAȚI ?url
DIN
UNDE {
?contributor foaf: nume „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 primește atât de multă tracțiune în organizațiile mai mici. Într-un sondaj realizat de Information Week, 44% dintre profesioniștii IT de afaceri nu au auzit de NoSQL. În plus, 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 noastră conectată, dar va trebui să continue să evolueze pentru a obține atractivitatea în masă pe care mulți cred că l-ar putea avea.