Pregled podatkovnih baz NoSQL

Akronim NoSQL je bil skovan leta 1998. Mnogi ljudje mislijo, da je NoSQL napačen izraz, ki je bil ustvarjen za zagon na SQL. V resnici je izraz ne samo SQL. Ideja je, da lahko obe tehnologiji sobivata in vsak ima svoje mesto. NoSQL gibanje je bilo v novicah v zadnjih nekaj letih, saj je veliko voditeljev Web 2.0 sprejelo NoSQL tehnologijo. Podjetja, kot so Facebook, Cvrkutati, Digg, Amazon, LinkedIn in Google, vsi uporabljajo NoSQL na tak ali drugačen način.

Razbijamo NoSQL, tako da jo lahko razložite svojemu CIO ali celo svojim sodelavcem.

NoSQL se je izognil potrebam

Shranjevanje podatkov: shranjeni digitalni podatki v svetu se merijo v eksabajtih. Exabyte je enaka milijardo gigabajtov (GB) podatkov. Po podatkih Internet.com je obseg shranjenih podatkov v letu 2006 znašal 161 exabytes. Le 4 leta kasneje v letu 2010 bo shranjena količina podatkov znašala skoraj 1.000 ExaBytes, kar pomeni več kot 500%. Z drugimi besedami, veliko podatkov je shranjenih na svetu in bo šele naprej še naprej naraščati.

Medsebojno povezani podatki: podatki še vedno postajajo bolj povezani. Ustvarjanje spleta, ki se pospešuje v hiperpovezavah, blogi imajo pingbacks in vsak večji sistem socialnega omrežja ima oznake, ki povezujejo stvari skupaj. Glavni sistemi so zgrajeni tako, da so medsebojno povezani.

Kompleksna struktura podatkov: NoSQL lahko brez težav obdeluje hierarhično vgrajene podatkovne strukture. Če želite v SQL uresničiti isto, boste potrebovali več relacijskih tabel z vsemi vrstami ključev.

Poleg tega obstaja razmerje med uspešnostjo in zahtevnostjo podatkov. Uspešnost se lahko razgradi v tradicionalnih RDBMS, saj shranjujemo velike količine podatkov, ki se zahtevajo v aplikacijah za socialno mreženje in semantični mreži.

Kaj je NoSQL?

Mislim, da en način za definiranje NoSQL-a je, da razmisli o tem, kaj ni.

To ni SQL in ni relacijsko. Kot navaja ime, to ni zamenjava za RDBMS, ampak jo pohvalite. NoSQL je zasnovan za distribuirane podatkovne sklade za zelo velike potrebe po podatkih. Razmislite o Facebooku s svojimi 500.000.000 uporabniki ali Twitterjem, ki zbira terabite podatkov vsak dan.

V podatkovni bazi NoSQL ni nobene fiksne sheme in nobenih povezav. RDBMS "pomnoži" s hitrejšo in hitrejšo strojno opremo in dodajanje pomnilnika. NoSQL, na drugi strani, lahko izkoristijo prednosti »povečevanja količine«. Menjanje se nanaša na širjenje bremena nad mnogimi blagovnimi sistemi. To je komponenta NoSQL-a, zaradi česar je poceni rešitev za velike zbirke podatkov.

Kategorije NoSQL

Trenutni NoSQL svet se ujema s štirimi osnovnimi kategorijami.

  1. Ključne vrednosti Trgovine temeljijo predvsem na amazonskem papirju Dynamo, ki je bil napisan leta 2007. Glavna ideja je obstoj razpršilne tabele, kjer je edinstven ključ in kazalec do določenega podatka. Te preslikave običajno spremljajo mehanizmi predpomnilnika, da bi povečali učinkovitost.
    Družinske trgovine stolpcev so bile ustvarjene za shranjevanje in obdelavo zelo velikih količin podatkov, ki so bili distribuirani na več računalnikih. Še vedno obstajajo ključi, vendar kažejo na več stolpcev. V primeru BigTable (Googlejev model NoSQL družine stolpcev) so vrstice označene s ključem vrstice s podatki, ki jih ta ključ razvrsti in shranjuje. Stolpci so urejeni po družini stolpcev.
  1. Datoteke s bazami podatkov so navdihnili Lotus Notes in so podobni trgovinam ključnih vrednosti. Model je v osnovi različica dokumentov, ki so zbirke drugih zbirk ključnih vrednosti. Polstrukturirani dokumenti so shranjeni v formatih, kot je JSON.
  2. Grafične baze s so zgrajene z vozlišči, razmerji med opombami in lastnostmi vozlišč. Namesto tabele vrstic in stolpcev ter toge strukture SQL je uporabljen fleksibilen grafični model, ki lahko meri na več računalnikih.

Glavni NoSQL igralci

Glavni akterji v sistemu NoSQL so se pojavili predvsem zaradi organizacij, ki so jih sprejele. Nekatere največje NoSQL tehnologije vključujejo:

Poizvedovanje NoSQL

Vprašanje, kako poizvedovati bazo podatkov NoSQL, je tisto, za kar se zanima večina razvijalcev. Navsezadnje podatki, shranjeni v ogromni podatkovni zbirki, nikomur ne pomagajo, če jih ne morete naložiti in jih prikazati končnim uporabnikom ali spletnim storitvam. Datoteke NoSQL ne zagotavljajo visokokakovostnega deklarativnega jezika poizvedbe, kot je SQL. Namesto tega je poizvedovanje teh baz podatkov specifično za podatkovni model.

Mnoge platforme NoSQL omogočajo RESTful vmesnikom do podatkov. Drugi API-ji za poizvedbo o ponudbi. Obstaja nekaj orodij za poizvedbe, ki so bili razviti, da poskušajo poizvedovati več baz podatkov NoSQL. Ta orodja običajno delujejo v eni sami kategoriji NoSQL. Primer je SPARQL. SPARQL je deklarativna specifikacija poizvedb, zasnovana za podatkovne baze grafov. Tukaj je primer poizvedbe SPARQL, ki pridobiva URL določenega spletnega dnevnika (IBM-ovega):

PREFIX folija:
SELECT? Url
IZ
KJE {
Prispevek foaf: ime "Jon Foobar".
prispevek foaf: weblog? url.
}

Prihodnost NoSQL

Organizacije, ki imajo velike potrebe po shranjevanju podatkov, resno gledajo na NoSQL. Očitno koncept v manjših organizacijah ne pridobiva toliko vleke. V raziskavi, ki jo je izvedel Informacijski teden, 44% poslovnih IT strokovnjakov ni slišalo za NoSQL. Poleg tega je le 1% anketirancev poročalo, da je NoSQL del njihove strateške usmeritve. Jasno je, da NoSQL ima svoje mesto v našem povezanem svetu, vendar se bo moral še naprej razvijati, da bi dobili množično pritožbo, za katero mnogi mislijo, da bi to lahko imela.