NoSQL-i ülevaade

click fraud protection

Akronüüm NoSQL võeti kasutusele 1998. aastal. Paljud inimesed arvavad, et NoSQL on halvustav termin, mis on loodud SQL-i näppimiseks. Tegelikkuses tähendab see termin mitte ainult SQL-i. Idee seisneb selles, et mõlemad tehnoloogiad võivad koos eksisteerida ja mõlemal on oma koht. NoSQL-i liikumine on viimastel aastatel olnud uudistes, kuna paljud Web 2.0 juhid on kasutusele võtnud NoSQL-tehnoloogia. Sellised ettevõtted nagu Facebook, Twitter, Digg, Amazon, LinkedIn ja Google kasutavad ühel või teisel viisil NoSQL-i. Teeme NoSQL-i lahti, et saaksite seda oma CIO-le või isegi kaastöötajatele selgitada.

MYSQL andmebaas.

NoSQL tekkis vajadusest

Andmekogu: Maailma salvestatud digitaalseid andmeid mõõdetakse eksabaitides. Eksabait võrdub ühe miljardi gigabaidiga (GB) andmetega. Vastavalt Internet.com, oli 2006. aastal lisatud salvestatud andmete hulk 161 eksabaiti. Vaid 4 aastat hiljem, 2010. aastal, on salvestatud andmete hulk peaaegu 1000 Exabaiti, mis on rohkem kui 500%. Teisisõnu, maailmas salvestatakse palju andmeid ja see lihtsalt kasvab.

Ühendatud andmed: Andmed on jätkuvalt ühendatud. Veebi loomist soodustavad hüperlinkid, ajaveebidel on tagasisingid ja igal suuremal suhtlusvõrgustiku süsteemil on sildid, mis seovad asjad kokku. Peamised süsteemid on ehitatud omavahel ühendamiseks.

Keeruline andmestruktuur: NoSQL saab hõlpsasti käsitleda hierarhilisi pesastatud andmestruktuure. SQL-is sama asja saavutamiseks vajate mitut relatsioonitabelit igasuguste võtmetega. Lisaks on jõudluse ja andmete keerukuse vahel seos. Traditsioonilises RDBMS-is võib jõudlus halveneda, kuna salvestame tohutul hulgal andmeid, mida on vaja suhtlusvõrgustike rakendustes ja semantiline veeb.

Mis on NoSQL?

Ma arvan, et üks viis NoSQL-i määratlemiseks on kaaluda, mida see ei ole. See ei ole SQL ja see pole relatsiooniline. Nagu nimigi ütleb, ei asenda see RDBMS-i, vaid täiendab seda. NoSQL on mõeldud hajutatud andmehoidlate jaoks väga suuremahuliste andmevajaduste jaoks. Mõelge Facebookile oma 500 000 000 kasutajaga või Twitterile, mis kogub iga päev terabitte andmeid.

NoSQL-i andmebaasis pole fikseeritud skeemi ega liitumisi. RDBMS "suureneb", hankides üha kiirema riistvara ja lisades mälu. NoSQL seevastu saab "mahandamisest" ära kasutada. Vähendamine viitab koormuse jaotamisele paljudes kaubasüsteemides. See on NoSQL-i komponent, mis muudab selle odavaks lahenduseks suurte andmekogumite jaoks.

NoSQL-i kategooriad

Praegune NoSQL-maailm sobib nelja põhikategooriasse.

  1. Võtmeväärtuste poed põhinevad peamiselt Amazoni Dynamo Paper mis on kirjutatud 2007. Põhiidee on räsitabeli olemasolu, kus on unikaalne võti ja osuti konkreetsele andmeüksusele. Nende vastendustega kaasnevad jõudluse maksimeerimiseks tavaliselt vahemälumehhanismid.
    1. Veerg Perepoed loodi väga suurte andmemahtude salvestamiseks ja töötlemiseks, mis on jaotatud paljudele masinatele. Klahvid on endiselt olemas, kuid need osutavad mitmele veerule. BigTable'i (Google'i veerude perekonna NoSQL-i mudel) puhul identifitseeritakse read reavõtmega, mille andmed on selle võtmega sorteeritud ja salvestatud. Veerud on järjestatud veeruperekondade kaupa.
  2. Dokumentide andmebaasid olid inspireeritud Lotus Notes ja on sarnased võtmeväärtuste poodidega. Mudel on põhiliselt versioonitud dokumendid, mis on muude võtmeväärtuste kogude kogumid. Poolstruktureeritud dokumendid salvestatakse sellistes vormingutes nagu JSON.
  3. Graafiku andmebaass on üles ehitatud sõlmede, nootide vaheliste suhete ja sõlmede omadustega. Ridade ja veergude tabelite ning SQL-i jäiga struktuuri asemel kasutatakse paindlikku graafikumudelit, mida saab skaleerida paljudes masinates.

Peamised NoSQL-mängijad

Suuremad tegijad NoSQL-is on esile kerkinud eelkõige tänu organisatsioonidele, kes on need kasutusele võtnud. Mõned suurimad NoSQL-tehnoloogiad hõlmavad järgmist:

  • Dünamo: Dynamo lõi Amazon.com ja see on silmapaistvaim võtmeväärtuse NoSQL-i andmebaas. Amazon vajas oma e-kaubanduse ettevõtete jaoks väga skaleeritavat hajutatud platvormi, nii et nad arendasid Dynamo. Amazon S3 kasutab salvestusmehhanismina Dynamo.
  • Cassandra:Cassandra oli avatud lähtekoodiga Facebook ja see on veerudele orienteeritud NoSQL-i andmebaas.
  • BigTable: BigTable on Google'i patenteeritud veergudele orienteeritud andmebaas. Google lubab BigTable'i kasutamist, kuid ainult Google App Engine'i jaoks.
  • SimpleDB: SimpleDB on veel üks Amazoni andmebaas. Kasutatakse Amazon EC2 ja S3 jaoks, see on osa Amazon Web Services'ist, mis nõuab kasutusest olenevalt tasusid.
  • CouchDB:CouchDB koos MongoDB-ga on avatud lähtekoodiga dokumendile orienteeritud NoSQL-andmebaasid.
  • Neo4J:Neo4j on avatud lähtekoodiga graafikute andmebaas.

Päringu esitamine NoSQL-ist

Küsimus, kuidas NoSQL-i andmebaasist päringuid teha, on see, millest enamik arendajaid huvitab. Hiiglaslikku andmebaasi salvestatud andmed ei tee ju kellelegi head, kui sa ei saa neid kätte saada ja lõppkasutajatele või veebiteenustele näidata. NoSQL-i andmebaasid ei paku kõrgetasemelist deklaratiivset päringukeelt nagu SQL. Selle asemel on nende andmebaaside päringute tegemine andmemudelispetsiifiline.

Paljud NoSQL-i platvormid võimaldavad andmetele RESTfuli liideseid. Muud pakkumise päringu API-d. On välja töötatud paar päringutööriista, mis proovivad teha päringuid mitmest NoSQL-i andmebaasist. Need tööriistad töötavad tavaliselt ühes NoSQL-kategoorias. Üks näide on SPARQL. SPARQL on deklaratiivne päringu spetsifikatsioon, mis on loodud graafikute andmebaaside jaoks. Siin on näide SPARQL-i päringust, mis otsib konkreetse blogija URL-i (loal IBM):

PREFIX foaf: 
VALI ?url
FROM
KUS {
?panustaja foaf: nimi "Jon Foobar" .
?contributor foaf: ajaveebi ?url .
}

NoSQL-i tulevik

Organisatsioonid, kellel on tohutud andmesalvestusvajadused, vaatavad tõsiselt NoSQL-i. Ilmselt ei saa see kontseptsioon väiksemates organisatsioonides nii palju tähelepanu. Teabenädala korraldatud uuringus ei ole 44% ettevõtete IT-spetsialistidest NoSQL-ist kuulnud. Lisaks teatas vaid 1% vastanutest, et NoSQL on osa nende strateegilisest suunast. On selge, et NoSQL-il on meie ühendatud maailmas oma koht, kuid see peab jätkama arenemist, et saavutada massiline atraktiivsus, mida paljud arvavad.