Yleiskatsaus NoSQL-tietokannoista

Lyhennys NoSQL on suunniteltu vuonna 1998. Monet ajattelevat, että NoSQL on poikkeuksellinen termi, joka luotiin SQL: n pokeille. Todellisuudessa termi tarkoittaa ei vain SQL: tä. Ajatuksena on, että molemmat teknologiat voivat olla rinnakkaisia ​​ja niillä kaikilla on paikka. NoSQL-liike on ollut viime vuosina uutisissa, sillä monet Web 2.0 -johtajat ovat ottaneet käyttöön NoSQL-teknologian. Yritykset, kuten Facebook, Twitter, Digg, Amazon, LinkedIn ja Google, käyttävät NoSQLä tavalla tai toisella.

Let's break down NoSQL, jotta voit selittää sen CIO: lle tai jopa työtovereillemme.

NoSQL nousi tarpeesta

Data Storage: Maailman tallennettu digitaalinen data mitataan exabytes. Exabyte on yhtä kuin miljardi gigatavua (GB). Internet.comin mukaan vuonna 2006 lisätyn tallennetun tiedon määrä oli 161 exabytettä. Vain 4 vuotta myöhemmin vuonna 2010 tallennettujen tietojen määrä on lähes 1000 ExaByteä, mikä on yli 500%: n lisäys. Toisin sanoen maailmassa on paljon tietoa, ja se vain kasvaa jatkuvasti.

Yhteenliitetyt tiedot: Data yhdistyy edelleen. Hyperlinkkeihin kehitettyjen web-sivujen luominen, blogeissa on pingbackit ja kaikilla tärkeillä sosiaalisen verkoston järjestelmillä on tunnisteet, jotka sitovat asioita yhteen. Suuret järjestelmät on rakennettu yhdistämään toisiinsa.

Monimutkainen tietorakenne: NoSQL pystyy käsittelemään hierarkkisia sisäkkäisiä tietorakenteita helposti. Jotta sama asia voidaan suorittaa SQL: ssä, tarvitset useita relaatiotaulukoita kaikenlaisilla avaimilla.

Lisäksi suorituskyvyn ja tiedon monimutkaisuuden välillä on suhde. Suorituskyky voi heikentyä perinteisessä RDBMS-järjestelmässä, kun säilytetään sosiaalisten verkostoitumisovellusten ja semanttisen verkon tarvitsemia valtavia määriä tietoja.

Mikä on NoSQL?

Luulen, että yksi tapa määritellä NoSQL on pohtia mitä se ei ole.

Se ei ole SQL ja se ei ole relaatiotieto. Kuten nimestäkin ilmenee, se ei korvaa RDBMS: ää, vaan onnittelee sitä. NoSQL on suunniteltu hajautettuihin datamyymälöihin erittäin suurille tietotarpeille. Ajattele Facebookia sen 500 000 000 käyttäjää tai Twitterä, joka kerää tietoja Terabitsistä joka päivä.

NoSQL-tietokannassa ei ole kiinteää kaavaa eikä yhtään liittymää. RDBMS "laskeutuu" nopeammin ja nopeammin laitteiston avulla ja lisäämällä muistia. NoSQL voi toisaalta hyödyntää "skaalautumista". Skaalaus tarkoittaa kuorman leviämistä monille hyödykkeiden järjestelmille. Tämä on NoSQL: n komponentti, joka tekee siitä edullisen ratkaisun suurille datasetille.

NoSQL-luokat

Nykyinen NoSQL-maailma sopii neljään perusluokkaan.

  1. Avainarvot-myymälät perustuvat ensisijaisesti Amazonin vuonna 2007 kirjoitettuun Dynamo Paperiin . Pääajatus on olemassa hash-taulukko, jossa on ainutlaatuinen avain ja osoitin tietylle tietylle aineelle. Näihin kartoituksiin liittyy yleensä välimuistomekanismeja suorituskyvyn maksimoimiseksi.
    Sarakkeen perhekaupat luotiin tallentamaan ja käsittelemään erittäin suuria määriä tietoja, jotka on jaettu useille koneille. Avaimia on vielä, mutta ne viittaavat useisiin sarakkeisiin. BigTable-tapauksessa (Googlen sarakkeen perheen NoSQL-malli) rivit tunnistetaan rivi-avaimella, jonka tiedot lajitellaan ja tallennetaan tällä avaimella. Sarakkeet on järjestetty sarakeryhmittäin.
  1. Asiakirjatietokannat ovat Lotus Notesin innoittamia ja vastaavat avainarvomahdollisuuksia. Malli on pohjimmiltaan versiotut asiakirjat, jotka ovat muiden avainarvokokoelmien kokoelmia. Puolstrukturoidut dokumentit tallennetaan esimerkiksi JSON-muodossa.
  2. Kaaviotietokannat rakennetaan solmuilla, solmujen välisten suhteiden ja solmujen ominaisuuksien avulla. Rivien ja sarakkeiden taulukoiden sijasta ja SQL: n jäykästä rakenteesta käytetään joustavaa kaaviomallia, joka voi skaalata monissa koneissa.

Major NoSQL -soittimet

NoSQL: n tärkeimmät toimijat ovat syntyneet pääasiassa niiden hyväksymien organisaatioiden vuoksi. Jotkut suurimmista NoSQL-tekniikoista ovat:

Querying NoSQL

Kysymys siitä, miten kysyä NoSQL-tietokantaa on se, mitä useimmat kehittäjät ovat kiinnostuneita. Lopulta, valtava tietokantaan tallennetut tiedot eivät tee ketään mitään hyvää, jos et voi hakea ja näyttää sen loppukäyttäjille tai verkkopalveluille. NoSQL-tietokannat eivät tarjoa korkean tason deklaratiivista kyselykieltä kuten SQL. Sen sijaan näiden tietokantojen kysely on datamallispesifistä.

Monet NoSQL-alustoista mahdollistavat RESTful-rajapinnat datalle. Muut tarjouspyyntö-sovellusliittymät. On kehitetty useita kyselyvälineitä, jotka yrittävät kysellä useita NoSQL-tietokantoja. Nämä työkalut toimivat yleensä yhden SingleSQL-luokan sisällä. Yksi esimerkki on SPARQL. SPARQL on selittävä kyselyspesifikaatio, joka on suunniteltu kaavion tietokantoihin. Tässä on esimerkki SPARQL-kyselystä, joka hakee tietyn bloggerin URL-osoitteen (IBM: n hyväksi):

PREFIX foaf:
SELECT? Url
FROM
MISSÄ {
avustaja foaf: nimi "Jon Foobar".
? avustaja foaf: weblog? url.
}

NoSQL: n tulevaisuus

Organisaatiot, joilla on massiiviset tallennustarpeet, katsovat vakavasti NoSQL: stä. Ilmeisesti konsepti ei saa yhtä paljon vetovoimaa pienemmissä organisaatioissa. Tietopäivän suorittamassa kyselyssä 44% yritysten IT-ammattilaisista ei ole kuullut NoSQL: stä. Lisäksi vain 1% vastaajista ilmoitti, että NoSQL on osa strategista suuntaa. On selvää, että NoSQL: llä on paikka yhteydellisessä maailmassamme, mutta sen täytyy kehittyä edelleen, jotta saisimme massamuutoksen, jota monet ajattelevat voivansa.