Pregled NoSQL-a

click fraud protection

Akronim NoSQL skovan je 1998. godine. Mnogi ljudi misle da je NoSQL pogrdan izraz stvoren da se bocka po SQL-u. U stvarnosti, pojam znači ne samo SQL. Ideja je da obje tehnologije mogu koegzistirati i svaka ima svoje mjesto. NoSQL pokret je bio u vijestima u posljednjih nekoliko godina jer su mnogi od voditelja Web 2.0 usvojili NoSQL tehnologiju. Tvrtke kao što su Facebook, Twitter, Digg, Amazon, LinkedIn i Google koriste NoSQL na ovaj ili onaj način. Razložimo NoSQL tako da ga možete objasniti svom CIO-u ili čak svojim suradnicima.

MYSQL baza podataka.

NoSQL je proizašao iz potrebe

Pohrana podataka: Svjetski pohranjeni digitalni podaci mjere se u eksabajtima. Eksabajt je jednak milijardu gigabajta (GB) podataka. Prema Internet.com, količina pohranjenih podataka dodanih 2006. iznosila je 161 eksabajt. Samo 4 godine kasnije, 2010., količina pohranjenih podataka bit će gotovo 1000 ExaByte-a, što je povećanje od preko 500%. Drugim riječima, u svijetu se pohranjuje mnogo podataka i oni će samo nastaviti rasti.

Međusobno povezani podaci: Podaci i dalje postaju sve povezaniji. Stvaranje weba potaknuto hipervezama, blogovi imaju pingbackove i svaki veći sustav društvenih mreža ima oznake koje povezuju stvari. Glavni sustavi izgrađeni su tako da budu međusobno povezani.

Složena struktura podataka: NoSQL može lako rukovati hijerarhijskim ugniježđenim strukturama podataka. Da biste postigli istu stvar u SQL-u, trebat će vam više relacijskih tablica sa svim vrstama ključeva. Osim toga, postoji odnos između performansi i složenosti podataka. Izvedba se može pogoršati u tradicionalnom RDBMS-u jer pohranjujemo ogromne količine podataka potrebnih u aplikacijama društvenih mreža i semantičkom mrežom.

Što je NoSQL?

Pretpostavljam da je jedan od načina definiranja NoSQL-a razmotriti što on nije. To nije SQL i nije relacijski. Kao što ime sugerira, nije zamjena za RDBMS, već ga nadopunjuje. NoSQL je dizajniran za distribuirane pohrane podataka za vrlo velike potrebe podataka. Razmislite o Facebooku sa njegovih 500.000.000 korisnika ili Twitteru koji akumulira terabite podataka svaki dan.

U NoSQL bazi podataka ne postoji fiksna shema i nema spajanja. RDBMS se "povećava" dobivanjem sve bržeg hardvera i dodavanjem memorije. NoSQL, s druge strane, može iskoristiti prednosti "skaliranja". Skaliranje se odnosi na širenje opterećenja na mnoge robne sustave. Ovo je komponenta NoSQL-a koja ga čini jeftinim rješenjem za velike skupove podataka.

NoSQL kategorije

Trenutni NoSQL svijet se uklapa u 4 osnovne kategorije.

  1. Prodavaonice ključeva i vrijednosti temelje se prvenstveno na Amazonov Dynamo Paper koji je napisan 2007. Glavna ideja je postojanje hash tablice u kojoj postoji jedinstveni ključ i pokazivač na određenu stavku podataka. Ova mapiranja obično su popraćena mehanizmima predmemorije kako bi se maksimizirala izvedba.
    1. Obiteljske trgovine stupcem stvoreni su za pohranu i obradu vrlo velikih količina podataka raspoređenih na mnogo strojeva. Još uvijek postoje ključevi, ali pokazuju na više stupaca. U slučaju BigTable-a (Googleov NoSQL model obitelji stupaca), retke se identificira ključem retka s podacima sortiranim i pohranjenim po tom ključu. Stupci su raspoređeni po obitelji stupaca.
  2. Baze podataka dokumenata bili inspirirani Lotus Notes i slični su trgovinama ključ/vrijednost. Model su u osnovi dokumenti s verzijama koji su zbirke drugih zbirki ključ/vrijednost. Polustrukturirani dokumenti pohranjeni su u formatima poput JSON.
  3. Baza podataka grafikonas se grade s čvorovima, odnosima između bilješki i svojstvima čvorova. Umjesto tablica redaka i stupaca i krute strukture SQL-a, koristi se fleksibilni model grafa koji se može skalirati na mnogim strojevima.

Glavni NoSQL igrači

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

  • Dinamo: Dynamo je kreirao Amazon.com i najistaknutija je NoSQL baza podataka Key-Value. Amazonu je bila potrebna visoko skalabilna distribuirana platforma za svoje e-trgovine pa su razvili Dynamo. Amazon S3 koristi Dynamo kao mehanizam za pohranu.
  • Cassandra:Kasandra je otvorenog koda Facebook i predstavlja NoSQL bazu podataka orijentiranu na stupce.
  • BigTable: BigTable je Googleova vlasnička baza podataka orijentirana na stupce. 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, dio je Amazon Web Services koji naplaćuje naknade ovisno o korištenju.
  • CouchDB:CouchDB uz MongoDB su NoSQL baze podataka otvorenog koda orijentirane na dokumente.
  • Neo4J:Neo4j je open source baza podataka grafova.

Upit za NoSQL

Pitanje kako postaviti upit prema NoSQL bazi podataka zanima većinu programera. Uostalom, podaci pohranjeni u ogromnoj bazi podataka nikome ne donose nikakvu korist ako ih ne možete dohvatiti i pokazati krajnjim korisnicima ili web servisima. NoSQL baze podataka ne pružaju deklarativni jezik upita visoke razine kao što je SQL. Umjesto toga, ispitivanje ovih baza podataka je specifično za model podataka.

Mnoge NoSQL platforme dopuštaju RESTful sučelja za podatke. Ostali API-ji za upite ponude. Razvijeno je nekoliko alata za upite koji pokušavaju upiti više NoSQL baza podataka. Ovi alati obično rade u jednoj kategoriji NoSQL. Jedan primjer je SPARQL. SPARQL je specifikacija deklarativnog upita dizajnirana za baze podataka grafova. Evo primjera SPARQL upita koji dohvaća URL određenog blogera (ljubaznošću IBM):

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

Budućnost NoSQL-a

Organizacije koje imaju velike potrebe za pohranom podataka ozbiljno gledaju na NoSQL. Očigledno, koncept ne dobiva toliku vuču u manjim organizacijama. U istraživanju koje je proveo Information Week, 44% poslovnih IT stručnjaka nije čulo za NoSQL. Nadalje, samo 1% ispitanika izjavilo je da je NoSQL dio njihovog strateškog smjera. Jasno je da NoSQL ima svoje mjesto u našem povezanom svijetu, ali će se morati nastaviti razvijati kako bi dobio masovnu privlačnost za koju mnogi misle da bi mogao imati.