NoSQL Pregled baza podataka

Sadržaj:

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: