Skip to main content

Pregled NoSQL baza podataka

DORS/CLUC 2010 - Dobrica Pavlinušić : Kako napraviti Google od svoje zgrade s računalima? 1/3 (Travanj 2025)

DORS/CLUC 2010 - Dobrica Pavlinušić : Kako napraviti Google od svoje zgrade s računalima? 1/3 (Travanj 2025)
Anonim

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: Svjetski pohranjeni digitalni podaci mjere se u exabajtima. 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.

Složena 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 temelje se prvenstveno na Amazonovom Dynamo Paperu koji je napisan u 2007. Glavna ideja je postojanje hash table gdje postoji jedinstven ključ i pokazivač na određenu stavku podataka. Ove mapiranje obično prati mehanizme predmemorije kako bi se povećala učinkovitost.
    1. Obiteljske trgovine stupaca stvorene su za pohranu i obradu vrlo 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.
  2. Baza podatakanadahnuli su Lotus Notes i slični su trgovinama ključne 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.
  3. Baza podataka grafikonaizgrađeni su s čvorovima, odnosima između bilježaka i svojstvima č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:

  • Dinamo: Dynamo je stvorio Amazon.com i najistaknutiji je ključna vrijednost NoSQL baze podataka. Amazon je trebao vrlo skalabilnu distribuiranu platformu za svoje e-commerce tvrtke pa su razvili Dynamo. Amazon S3 koristi Dynamo kao mehanizam za pohranu.
  • Cassandra: Cassandra otvorena je od strane Facebooka i bazirana je na stupovima NoSQL baze podataka.
  • BigTable: BigTable je Googleova vlasnička baza podataka usmjerena prema stupcima. Google dopušta upotrebu BigTablea, ali samo za Google App Engine.
  • SimpleDB: SimpleDB je još jedna Amazon baza podataka. Koristi se za Amazon EC2 i S3, on je dio Amazon Web Services koji naplaćuje naknade ovisno o korištenju.
  • CouchDB: CouchDB zajedno s MongoDB su open source dokument orijentirane NoSQL baze podataka.
  • Neo4J: Neo4j je baza podataka open source grafikona.

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? UrlIZ 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.