Pregled NoSQL baza podataka

Akronim NoSQL skovao se 1998. Mnogi ljudi misle da je NoSQL ponižavajući pojam stvoren kako bi pokusao na SQL. U stvarnosti, pojam znači ne samo SQL. Ideja je da obje tehnologije mogu koegzistirati i svako ima svoje mjesto. NoSQL pokret je bio u vijestima u posljednjih nekoliko godina, budući da su mnogi vodeći čelnici Web 2.0 usvojili NoSQL tehnologiju. Tvrtke kao što su Facebook, Twitter, Digg, Amazon, LinkedIn i Google sve one koriste NoSQL na jedan ili drugi način.

Razbijamo NoSQL kako biste ga objasnili vašem CIO-u ili čak vašim suradnicima.

NoSQL nastao iz potrebe

Pohrana podataka: pohranjeni digitalni podaci u svijetu mjere se u egabajtima. Exabajt je jednak jedan milijardu gigabajta (GB) podataka. Prema Internet.com, količina pohranjenih podataka dodanih u 2006. bila je 161 exabajt. Samo 4 godine kasnije u 2010, količina pohranjenih podataka bit će gotovo 1000 ExaBytes što je porast od preko 500%. Drugim riječima, u svijetu je pohranjen velik broj podataka i samo će se nastaviti rasti.

Povezani podaci: podaci se i dalje povezuju. Stvaranje weba potaknutih hipervezama, blogovi imaju pingbacke i svaki veliki sustav društvene mreže ima oznake koje povezuju stvari zajedno. Glavni sustavi su izgrađeni da budu međusobno povezani.

Kompleksna struktura podataka: NoSQL lako može obraditi hijerarhijske ugniježđene strukture podataka. Da biste postigli istu stvar u SQL, trebali biste imati više relacijskih tablica sa svim vrstama ključeva.

Nadalje, postoji veza između performansi i složenosti podataka. Izvedba se može degradirati u tradicionalnom RDBMS-u jer pohranjujemo masivne količine podataka potrebnih u aplikacijama za društveno umrežavanje i semantičkom webu.

Što je NoSQL?

Pretpostavljam da jedan od načina da definiramo NoSQL jest razmotriti što nije.

Nije SQL i nije relacijski. Kao što ime sugerira, to nije zamjena za RDBMS, već ga pohvalno. NoSQL je dizajniran za distribuirane pohrane podataka za potrebe velikih podataka. Razmislite o Facebooku s 500.000.000 korisnika ili Twittera koji akumulira Terabits podataka svaki dan.

U NoSQL bazi podataka nema fiksne sheme i nema pridruživanja. RDBMS se "skalira" tako što brže i brže učvršćuje hardver i dodaje memoriju. NoSQL, s druge strane, može iskoristiti prednost "skaliranja". Skaliranje odnosi se na širenje tereta na mnogim robnim sustavima. To je sastavni dio NoSQL-a, što ga čini jeftinim rješenjem za velike skupove podataka.

NoSQL kategorije

Trenutni NoSQL svijet uklapa se u 4 osnovne kategorije.

  1. Ključevi vrijednosti Trgovine se temelje prvenstveno na Amazonovom Dynamo papiru koji je napisan u 2007. Glavna ideja je postojanje hash table gdje postoji jedinstveni ključ i pokazivač na određenu stavku podataka. Ove mapiranje obično prati mehanizme predmemorije kako bi se povećala učinkovitost.
    Obiteljske trgovine stupaca stvorene su za pohranu i obradu velikih količina podataka distribuiranih na mnogim strojevima. Još uvijek postoje tipke, ali ukazuju na više stupaca. U slučaju BigTable (Googleov stupac obitelji Column NoSQL), redovi se identificiraju pomoću ključa za red, s podacima koji su sortirani i pohranjeni tim ključem. Stupci su poredani po stupcu obitelji.
  1. Baza podataka dokumenata nadahnuta su Lotus Notes i slična su trgovinama ključnih vrijednosti. Model je u osnovi verzirani dokumenti koji su zbirke drugih ključnih vrijednosti zbirki. Polu-strukturirani dokumenti pohranjeni su u formatu kao što je JSON.
  2. Graf baze podataka s su izgrađene s čvorovima, odnosima između bilješki i svojstava čvorova. Umjesto tablica redaka i stupaca i krute strukture SQL, koristi se fleksibilni model grafikona koji se može mjeriti na mnogim strojevima.

Glavni NoSQL igrači

Glavni igrači NoSQL-a pojavili su se prvenstveno zbog organizacija koje su ih usvojile. Neke od najvećih NoSQL tehnologija uključuju:

Upit za NoSQL

Pitanje kako upitati NoSQL bazu podataka je ono što najviše zainteresirani za razvojne programere. Uostalom, podaci pohranjeni u ogromnoj bazi podataka nikome ne čine dobro, ako ih ne možete dohvatiti i prikazati krajnjim korisnicima ili web uslugama. NoSQL baze podataka ne daju visoki deklarativni jezik upita kao što je SQL. Umjesto toga, upite tih baza podataka specifično je za model podataka.

Mnoge NoSQL platforme omogućuju RESTful sučelja s podacima. Ostali API-je za upit. Postoji nekoliko alata za upite koji su razvijeni da pokušaju upitati više NoSQL baza podataka. Ovi alati obično rade po jednoj kategoriji NoSQL. Jedan primjer je SPARQL. SPARQL je deklarativna specifikacija upita koja je dizajnirana za baze podataka grafikona. Evo primjera SPARQL upita koji dohvaća URL određenog blogera (zahvaljujući IBM-u):

PREFIX foaf:
SELECT? Url
FROM
GDJE {
? suradnik foaf: ime "Jon Foobar".
? suradnik foaf: weblog? url.
}

Budućnost NoSQL-a

Organizacije koje imaju ogromne potrebe za pohranjivanjem podataka ozbiljno gledaju na NoSQL. Očigledno, koncept ne dobiva toliko vuče u manjim organizacijama. U anketi koju je provela Informacijski tjedan, 44% poslovnih IT profesionalaca nije čulo za NoSQL. Nadalje, samo 1% ispitanika izvijestilo je da je NoSQL dio njihovog strateškog smjera. Očito, NoSQL ima svoje mjesto u našem povezanom svijetu, ali će morati nastaviti razvijati kako bi dobili masovnu privlačnost koju mnogi misle da bi to moglo imati.