NoSQL datu bāzu pārskats

1998. gadā tika izveidots akronīms NoSQL. Daudzi domā, ka NoSQL ir izņēmuma vārds, kas izveidots, lai SQL pievērstu uzmanību. Patiesībā šis jēdziens nozīmē ne tikai SQL. Ideja ir tāda, ka abas tehnoloģijas var pastāvēt līdzās, un katrai no tām ir sava vieta. Pēdējo gadu laikā NoSQL kustība ir bijusi ziņu ziņā, jo daudzi no Web 2.0 vadītājiem ir pieņēmuši NoSQL tehnoloģiju. Uzņēmumi, piemēram, Facebook, Čivināt, Digg, Amazon, LinkedIn un Google visi izmanto vienā vai otrā veidā NoSQL.

Izslēdzam NoSQL, lai jūs to varētu izskaidrot savam CIO vai pat saviem kolēģiem.

NoSQL radās no vajadzības

Datu uzglabāšana: pasaules uzglabātie ciparu dati tiek mērīti exabytes. Eksābaids ir vienāds ar vienu miljardu gigabaitu (GB) datu. Saskaņā ar Internet.com, 2006.gadā pievienoto datu apjoms bija 161 eksabaiti. Tikai 4 gadus vēlāk 2010.gadā, uzglabāto datu apjoms būs gandrīz 1000 ExaBytes, kas ir pieaugums par vairāk nekā 500%. Citiem vārdiem sakot, pasaulē ir daudz datu, un tas tikai turpinās pieaugt.

Savstarpēji saistīti dati: dati turpina kļūt saistāmāki. Tīmeklī izveidotais hipersaites saturs, emuāriem ir pingbacks, un ikviena liela sociālā tīkla sistēma piedāvā tagus, kas kopā sasaista lietas. Ir izveidotas lielas sistēmas, kas savstarpēji savienotas.

Kompleksa datu struktūra: NoSQL var viegli apstrādāt hierarhiskas ligzdotu datu struktūras. Lai veiktu to pašu SQL, jums vajadzētu vairākas relāciju tabulas ar visu veidu atslēgas.

Turklāt ir saistība starp veiktspēju un datu sarežģītību. Veiktspēja var pazemināties tradicionālajā RDBMS, jo mēs uzglabājam lielu datu apjomu, kas nepieciešams sociālo tīklu lietojumprogrammās un semantiskajā tīmeklī.

Kas ir NoSQL?

Es domāju, ka viens veids, kā definēt NoSQL, ir apsvērt, kas tas nav.

Tas nav SQL, un tas nav relāciju. Kā norāda nosaukums, tas neaizstāj RDBMS, bet to papildina. NoSQL ir paredzēts izplatītām datu veikaliem ļoti liela mēroga datu vajadzībām. Padomājiet par Facebook ar saviem 500 000 000 lietotājiem vai čivināt, kas katru dienu apkopo Terabits datus.

NoSQL datubāzē nav fiksētas shēmas un nav savienojumu. RDBMS "palielina", iegūstot ātrāku un ātrāku aparatūru un pievienojot atmiņu. NoSQL, no otras puses, var izmantot "mērogošanas" iespējas. Pielāgošana attiecas uz slodzes izplatīšanu daudzās preču sistēmās. Šī ir NoSQL sastāvdaļa, kas padara to par lētu risinājumu lielām datu kopām.

NoSQL kategorijas

Pašreizējā NoSQL pasaule iederas 4 pamatkategorijās.

  1. Galvenās vērtības Veikali galvenokārt balstās uz Amazon's Dynamo Paper, kas tika uzrakstīts 2007. gadā. Galvenā ideja ir tāda maiņas tabulas esamība, kurā ir unikāla atslēga un rādītājs konkrētam datu vienumam. Šādus kartējumus parasti papildina kešatmiņas mehānismi, lai palielinātu veiktspēju.
    Kolonnu ģimenes veikali tika izveidoti, lai uzglabātu un apstrādātu ļoti lielu daudzumu datu, kas tiek izplatīti daudzās iekārtās. Joprojām ir atslēgas, taču tās norāda uz vairākām slejām. BigTable gadījumā (Google kolonnu ģimenes NoSQL modelis) rindas identificē pēc rindas atslēgas ar datiem, kas ir sakārtoti un saglabāti ar šo taustiņu. Slejas tiek sakārtotas pēc kolonnu ģimenes.
  1. Dokumentu datubāzes tika iedvesmotas no Lotus Notes un ir līdzīgas galveno vērtību veikaliem. Modeļa pamatā ir versēti dokumenti, kas ir citu galveno vērtību kolekciju kolekcijas. Daļēji strukturētie dokumenti tiek saglabāti tādos formātos kā JSON.
  2. Diagrammas datu bāzes ir veidotas ar mezgliem, attiecībām starp piezīmēm un mezglu īpašībām. Rindu un kolonnu tabulu un stingras SQL struktūras vietā tiek izmantots elastīgs grafu modelis, kas var tikt izmantots daudzās mašīnās.

Major NoSQL spēlētāji

Galvenie NoSQL dalībnieki ir izveidojušies galvenokārt to organizāciju dēļ, kuras tās ir pieņēmušas. Daži no lielākajiem NoSQL tehnoloģijām:

NoSQL pieprasīšana

Jautājums par to, kā pieprasīt NoSQL datubāzi, ir tas, ko visvairāk izstrādātāji interesē. Galu galā, milzīgā datu bāzē glabātie dati neliek nevienam labu, ja jūs nevarat izgūt un parādīt to gala lietotājiem vai interneta pakalpojumiem. NoSQL datubāzes nenodrošina augsta līmeņa deklarējošo vaicājumu valodu, piemēram, SQL. Tā vietā šo datubāzu vaicājums ir specifisks datu modeli.

Daudzas NoSQL platformas ļauj izmantot RESTful saskarnes ar datiem. Citi piedāvājumu vaicājumu API. Ir izstrādāti vairāki vaicājumu rīki, kas mēģina pieprasīt vairākas NoSQL datubāzes. Šie rīki parasti darbojas vienā NoSQL kategorijā. Viens piemērs ir SPARQL. SPARQL ir deklaratīva vaicājuma specifikācija, kas paredzēta grafu datu bāzēm. Šeit ir piemērs SPARQL vaicājumam, kurā tiek ielādēts konkrēta emuāra vietrādis URL (pateicoties IBM):

PREFIX foaf:
SELECT? Url
FROM
KUR {
ieguldītājs foaf: nosaukums "Jon Foobar".
Ieguldītājs foaf: weblog? url.
}

NoSQL nākotne

Organizācijas, kurām ir milzīgas datu glabāšanas vajadzības, nopietni meklē NoSQL. Acīmredzot, koncepcija nesaņem tik daudz vilces mazākām organizācijām. Aptauja, ko veica Informācijas nedēļa, 44% no biznesa IT speciālistiem nav dzirdējuši par NoSQL. Turklāt tikai 1% respondentu ziņoja, ka NoSQL ir daļa no viņu stratēģiskā virziena. Skaidrs, ka NoSQL ir vieta mūsu saistītajā pasaulē, bet tai būs jāturpina attīstīties, lai iegūtu masveida apelāciju, ko daudzi domā, ka varētu būt.