NoSQL Pregled baza podataka

NoSQL Pregled baza podataka
NoSQL Pregled baza podataka
Anonim

Akronim NoSQL je skovan 1998. Mnogi ljudi misle da je NoSQL pogrdni izraz stvoren da bi se bockao po SQL-u. U stvarnosti, termin 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 lidera Web 2.0 usvojili NoSQL tehnologiju. Kompanije kao što su Facebook, Twitter, Digg, Amazon, LinkedIn i Google koriste NoSQL na ovaj ili onaj način. Hajde da razložimo NoSQL tako da to možete objasniti svom CIO-u ili čak svojim kolegama.

Image
Image

NoSQL proizašao iz potrebe

Skladištenje podataka: Svjetski pohranjeni digitalni podaci mjere se u eksabajtima. Eksabajt je jednak milijardu gigabajta (GB) podataka. Prema Internet.com, količina pohranjenih podataka koja je dodana 2006. bila je 161 eksabajt. Samo 4 godine kasnije, 2010., količina pohranjenih podataka iznosit će skoro 1.000 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 nastavljaju da postaju sve povezaniji. Kreiranje weba podstaknuto hiperlinkovima, blogovi imaju pingbackove i svaki veliki sistem društvenih mreža ima oznake koje povezuju stvari. Glavni sistemi su izgrađeni 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 veza između performansi i složenosti podataka. Performanse se mogu pogoršati u tradicionalnom RDBMS-u jer pohranjujemo ogromne količine podataka potrebnih u aplikacijama društvenih mreža i semantičkom webu.

Šta je NoSQL?

Pretpostavljam da je jedan od načina da se definiše NoSQL da se razmotri šta on nije. To nije SQL i nije relacioni. Kao što ime sugerira, nije zamjena za RDBMS, već ga nadopunjuje. NoSQL je dizajniran za distribuirane skladišta podataka za potrebe podataka vrlo velikih razmjera. Razmislite o Facebooku sa njegovih 500.000.000 korisnika ili Twitteru koji akumulira terabite podataka svaki dan.

U NoSQL bazi podataka, nema fiksne šeme i nema spajanja. RDBMS se "povećava" tako što dobija sve brži hardver i dodaje memoriju. NoSQL, s druge strane, može iskoristiti prednosti "skaliranja". Skaliranje se odnosi na raspoređivanje opterećenja na mnoge sisteme robe. 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. Prodavnice ključeva baziraju se prvenstveno na Amazonovom Dynamo Paperu koji je napisan 2007. Glavna ideja je postojanje hash tablice u kojoj postoji jedinstveni ključ i pokazivač na određenu stavku podataka. Ova mapiranja su obično praćena mehanizmima keš memorije kako bi se maksimizirale performanse.
  2. Porodične prodavnice kolona stvorene su za skladištenje i obradu veoma velikih količina podataka distribuiranih na mnogim mašinama. Još uvijek postoje ključevi, ali ukazuju na više kolona. U slučaju BigTable-a (Google-ov NoSQL model porodice kolona), redovi se identifikuju pomoću ključa reda sa podacima sortiranim i pohranjenim po ovom ključu. Kolone su raspoređene po porodici kolona.

  3. Baze podataka inspirisane su Lotus Notesom i slične su prodavnicama ključ/vrijednost. Model su u osnovi dokumenti s verzijama koji su kolekcije drugih kolekcija ključ/vrijednost. Polustrukturirani dokumenti su pohranjeni u formatima kao što je JSON.
  4. Graph Database-ovi su izgrađeni sa čvorovima, odnosima između nota i svojstvima čvorova. Umjesto tabela redova i kolona i krute strukture SQL-a, koristi se fleksibilni model grafa koji se može skalirati na mnogim mašinama.

Glavni NoSQL igrači

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

  • Dynamo: Dynamo je kreirao Amazon.com i predstavlja najistaknutiju NoSQL bazu podataka ključ-vrijednost. Amazonu je bila potrebna visoko skalabilna distribuirana platforma za svoje e-trgovine pa su razvili Dynamo. Amazon S3 koristi Dynamo kao mehanizam za skladištenje.
  • Cassandra: Cassandra je otvorenog koda Facebook-a i predstavlja NoSQL bazu podataka orijentisanu na kolone.
  • BigTable: BigTable je Google-ova vlasnička baza podataka orijentirana na stupce. Google dozvoljava korištenje BigTable-a, 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 zajedno sa MongoDB su NoSQL baze podataka otvorenog koda orijentisane na dokumente.
  • Neo4J: Neo4j je open source baza podataka grafova.

Upit za NoSQL

Pitanje kako postaviti upit u NoSQL bazu podataka je ono što zanima većinu programera. Na kraju krajeva, podaci pohranjeni u ogromnoj bazi podataka nikome ne donose dobro ako ih ne možete dohvatiti i pokazati krajnjim korisnicima ili web usluge. NoSQL baze podataka ne pružaju deklarativni jezik upita visokog nivoa kao što je SQL. Umjesto toga, upit za ove baze podataka je > PREFIX foaf:

SELECT ?url

FROM

WHERE {

?contributor foaf:name "Jon Foobar".

?contributor foaf:weblog ?url.

}

Budućnost NoSQL-a

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

Preporučuje se: