NoSQL-i õpetus: mis on, NoSQL-i andmebaaside tüübid ja näide

Mis on NoSQL?

NoSQL Andmebaas on mitterelatsiooniline andmehaldussüsteem, mis ei vaja fikseeritud skeemi. See väldib liitumisi ja seda on lihtne skaleerida. NoSQL-i andmebaasi kasutamise peamine eesmärk on hajutatud andmehoidlad, millel on tohutud andmesalvestusvajadused. NoSQL-i kasutatakse suurandmete ja reaalajas veebirakenduste jaoks. Näiteks ettevõtted nagu Twitter, Facebook ja Google koguvad iga päev terabaite kasutajaandmeid.

NoSQL andmebaas tähistab "mitte ainult SQL" või "mitte SQL". Ehkki parem termin oleks "NoREL", sai NoSQL sellest kinni. Carl Strozz tutvustas NoSQL-i kontseptsiooni 1998. aastal.

Traditsiooniline RDBMS kasutab SQL-i süntaksit andmete salvestamiseks ja toomiseks täiendava ülevaate saamiseks. Selle asemel hõlmab NoSQL-i andmebaasisüsteem laia valikut andmebaasitehnoloogiaid, mis võivad salvestada struktureeritud, poolstruktureeritud, struktureerimata ja polümorfseid andmeid. Saame aru NoSQL-i kohta selle NoSQL-i andmebaasi õpetuse diagrammi abil:

NoSQL andmebaas

Miks NoSQL?

NoSQL-i andmebaaside kontseptsioon sai populaarseks selliste Interneti-hiiglaste seas nagu Google, Facebook, Amazonjne, kes tegelevad tohutute andmemahtudega. Süsteemi reageerimisaeg muutub aeglaseks, kui kasutate suurte andmemahtude jaoks RDBMS-i.

Selle probleemi lahendamiseks võiksime oma süsteeme laiendada, uuendades olemasolevat riistvara. See protsess on kallis.

Selle probleemi alternatiiviks on jaotada andmebaasi koormus mitmele hostile, kui koormus suureneb. Seda meetodit nimetatakse "mahutamiseks".

NoSQL

NoSQL-i andmebaas ei ole relatsiooniline, seega on see paremini skaleeritav kui relatsiooniandmebaasid, kuna need on loodud veebirakendusi silmas pidades.

NoSQL-i andmebaaside lühiajalugu

  • 1998 – Carlo Strozzi kasutas oma kerge ja avatud lähtekoodiga relatsiooniandmebaasi jaoks terminit NoSQL
  • 2000- Graafiline andmebaas Neo4j käivitatakse
  • 2004 – käivitatakse Google BigTable
  • 2005- CouchDB käivitatakse
  • 2007- Uurimistöö teemal Amazon Dünamo vabastatakse
  • 2008 – Facebooki avatud lähtekoodid Cassandra projekt
  • 2009 – mõiste NoSQL võeti uuesti kasutusele

NoSQL-i omadused

Mittesuhteline

  • NoSQL-i andmebaasid ei järgi kunagi relatsiooniline mudel
  • Ärge kunagi esitage tabeleid kindlate veergude kirjetega
  • Töötage iseseisvate agregaatide või BLOB-idega
  • Ei nõua objektide relatsiooniga kaardistamist ja andmete normaliseerimist
  • Ei mingeid keerulisi funktsioone, nagu päringukeeled, päringuplaneerijad, viidete terviklikkuse liitmised, ACID

Skeemivaba

  • NoSQL-i andmebaasid on kas skeemivabad või lõdvestunud skeemidega
  • Ärge nõudke andmete skeemi määratlust
  • Pakub heterogeenseid andmestruktuure samas domeenis
NoSQL-i omadused
NoSQL on skeemivaba

Lihtne API

  • Pakub hõlpsasti kasutatavaid liideseid pakutavate andmete salvestamiseks ja päringute tegemiseks
  • API-d võimaldavad madala taseme andmetega manipuleerimist ja valikumeetodeid
  • Tekstipõhised protokollid, mida kasutatakse enamasti HTTP REST-iga koos JSON-iga
  • Enamasti ei kasutata standardpõhist NoSQL-i päringukeelt
  • Veebipõhised andmebaasid, mis töötavad Interneti-poolsete teenustena

Levitatakse

  • Mitmeid NoSQL-i andmebaase saab käivitada hajutatud viisil
  • Pakub automaatse skaleerimise ja tõrkesiirde võimalusi
  • Sageli võib ACID-i kontseptsiooni skaleeritavuse ja läbilaskevõime tõttu ohverdada
  • Enamasti puudub sünkroonne replikatsioon hajutatud sõlmede vahel. Asünkroonne mitme peamise replikatsioon, peer-to-peer, HDFS-i replikatsioon
  • Tagab ainult lõpliku järjepidevuse
  • Jagatud ei midagi Architektuur. See võimaldab vähem koordineerimist ja suuremat jaotust.
NoSQL-i omadused
NoSQL on jagatud mitte midagi.

NoSQL-i andmebaaside tüübid

NoSQL andmebaasid jagunevad peamiselt nelja tüüpi: võtmeväärtuste paar, veerupõhine, graafikupõhine ja dokumendipõhine. Igal kategoorial on oma ainulaadsed atribuudid ja piirangud. Ükski ülalnimetatud andmebaas pole kõigi probleemide lahendamiseks parem. Kasutajad peaksid valima andmebaasi vastavalt oma tootevajadustele.

NoSQL-i andmebaaside tüübid:

  • Võtme-väärtuste paaripõhine
  • Veerule orienteeritud graafik
  • Graafikupõhine
  • Dokumendile orienteeritud

NoSQL-i andmebaaside tüübid

Põhiväärtuste paaril põhinev

Andmed salvestatakse võtme/väärtuse paaridena. See on loodud nii, et see talub palju andmeid ja suurt koormust.

Võtme-väärtuste paaride salvestusandmebaasid salvestavad andmeid räsitabelina, kus iga võti on kordumatu ja väärtus võib olla JSON, BLOB (Binary Large Objects), string jne.

Näiteks võib võtme-väärtuse paar sisaldada võtit, nagu „Veebisait”, mis on seotud väärtusega nagu „Guru99”.

Põhiväärtuste paaril põhinev

See on üks lihtsamaid NoSQL-i andmebaasi näiteid. Sellist NoSQL-i andmebaasi kasutatakse kogumina, sõnaraamatute, assotsiatiivsete massiivide jms kujul. Võtmeväärtuste poed aitavad arendajal salvestada skeemita andmeid. Need sobivad kõige paremini ostukorvi sisu jaoks.

Redis, Dynamo, Riak on mõned NoSQL-i näited võtmeväärtuste salvestamise andmebaasidest. Need kõik põhinevad AmazonDünamo paber.

Veerupõhine

Veergudele orienteeritud andmebaasid töötavad veergudel ja põhinevad Google'i BigTable'i paberil. Iga veergu käsitletakse eraldi. Üheveeruliste andmebaaside väärtused salvestatakse kõrvuti.

Veerupõhine NoSQL-i andmebaas

Veerupõhine NoSQL-i andmebaas

Need pakuvad suure jõudlusega koondamispäringuid, nagu SUM, COUNT, AVG, MIN jne, kuna andmed on veerus kergesti kättesaadavad.

Veerupõhiseid NoSQL-i andmebaase kasutatakse laialdaselt andmeladude haldamiseks, ärianalüüsi, CRM, raamatukogukaartide kataloogid,

HBase, Cassandra, HBase, Hypertable on veerupõhise andmebaasi NoSQL-i päringunäited.

Dokumendile orienteeritud

Dokumendile orienteeritud NoSQL DB salvestab ja hangib andmeid võtmeväärtuste paarina, kuid väärtuse osa salvestatakse dokumendina. Dokument salvestatakse JSON- või XML-vormingus. DB mõistab väärtust ja seda saab küsida.

Suhteline vs. Dokument

Suhteline vs. Dokument

Sellel vasakpoolsel diagrammil näete, et meil on read ja veerud, ja paremal on meil dokumentide andmebaas, millel on JSON-iga sarnane struktuur. Nüüd peate relatsiooniandmebaasi jaoks teadma, millised veerud teil on ja nii edasi. Dokumendiandmebaasi jaoks on teil aga andmesalv, näiteks JSON-objekt. Te ei pea määratlema, mis muudab selle paindlikuks.

Dokumenditüüpi kasutatakse enamasti CMS-süsteemide, ajaveebiplatvormide, reaalajas analüütika ja e-kaubanduse rakenduste jaoks. Seda ei tohiks kasutada keeruliste tehingute jaoks, mis nõuavad mitut toimingut või päringuid erinevate koondstruktuuride vastu.

Amazon SimpleDB, CouchDB, MongoDB, Riak, Lotus Notes, MongoDB, on populaarsed Dokumendi päritolu DBMS-süsteemid.

Graafikupõhine

Graafiku tüüpi andmebaas salvestab olemid ja ka nende üksuste omavahelised suhted. Olem salvestatakse sõlmena, seosega servadena. Serv annab seose sõlmede vahel. Igal sõlmel ja serval on kordumatu identifikaator.

Graafikupõhine

Võrreldes relatsiooniandmebaasiga, kus tabelid on lõdvalt ühendatud, on Graphi andmebaas oma olemuselt multirelatsiooniline. Suhe läbimine on kiire, kuna need on juba DB-sse salvestatud ja neid pole vaja arvutada.

Graafilise baasi andmebaas, mida kasutatakse enamasti sotsiaalvõrgustike, logistika, ruumiandmete jaoks.

Neo4J, lõpmatu graafik, OrientDB, FlockDB on mõned populaarsed graafikupõhised andmebaasid.

Päringumehhanismi tööriistad NoSQL-i jaoks

Kõige tavalisem andmeotsingu mehhanism on väärtuse REST-põhine otsimine, mis põhineb selle võtmel/ID-l GET-ressursiga

Dokumendihoidla andmebaas pakub keerulisemaid päringuid, kuna nad mõistavad võtme-väärtuste paari väärtust. Näiteks CouchDB võimaldab MapReduce'iga vaateid määratleda

Mis on CAP teoreem?

CAP teoreemi nimetatakse ka pruuli teoreemiks. Selles öeldakse, et hajutatud andmesalvestisel on võimatu pakkuda rohkem kui kahte garantiid kolmest

  1. järjepidevus
  2. Kättesaadavus
  3. Jaotuse tolerants

Järjepidevus:

Andmed peaksid jääma järjepidevaks ka pärast toimingu sooritamist. See tähendab, et pärast andmete kirjutamist peaksid kõik tulevased lugemistaotlused neid andmeid sisaldama. Näiteks pärast tellimuse staatuse uuendamist peaksid kõik kliendid nägema samu andmeid.

Saadavus:

Andmebaas peaks olema alati kättesaadav ja tundlik. Sellel ei tohiks olla seisakuid.

Jaotuse tolerants:

Partition Tolerance tähendab, et süsteem peaks jätkama toimimist ka siis, kui serveritevaheline side ei ole stabiilne. Näiteks saab servereid jagada mitmeks rühmaks, mis ei pruugi omavahel suhelda. Siin, kui osa andmebaasist pole saadaval, ei mõjuta see alati teisi osi.

Lõplik järjepidevus

Mõiste "lõpulik järjepidevus" tähendab andmete koopiate olemasolu mitmes masinas, et tagada kõrge kättesaadavus ja skaleeritavus. Seega tuleb ühes masinas mis tahes andmeüksuses tehtud muudatused üle kanda teistele koopiatele.

Andmete replikatsioon ei pruugi toimuda hetkega, kuna mõnda koopiat värskendatakse kohe, teisi aga aja jooksul. Need koopiad võivad olla vastastikku, kuid aja jooksul muutuvad need järjepidevaks. Sellest ka nimi lõplik järjepidevus.

PÕHJUS: Bpõhimõtteliselt Asaadaval, Ssageli, Eventuaalne järjepidevus

  • Põhimõtteliselt tähendab kättesaadavus, et DB on CAP teoreemi kohaselt kogu aeg saadaval
  • Pehme olek tähendab isegi ilma sisendita; süsteemi olek võib muutuda
  • Lõplik järjepidevus tähendab, et süsteem muutub aja jooksul järjepidevaks

Lõplik järjepidevus

NoSQL-i eelised

  • Saab kasutada esmase või analüütilise andmeallikana
  • Suurandmete võimekus
  • Pole ühtegi ebaõnnestumispunkti
  • Lihtne replikatsioon
  • Pole vaja eraldi vahemälukihti
  • See tagab kiire jõudluse ja horisontaalse mastaapsuse.
  • Saab käsitleda struktureeritud, poolstruktureeritud ja struktureerimata andmeid võrdse mõjuga
  • Objektorienteeritud programmeerimine, mida on lihtne kasutada ja paindlik
  • NoSQL-i andmebaasid ei vaja spetsiaalset suure jõudlusega serverit
  • Toetage peamisi arendaja keeli ja platvorme
  • Lihtne rakendada kui RDBMS-i kasutamine
  • See võib olla võrgurakenduste peamise andmeallikana.
  • Käsitseb suurandmeid, mis haldab andmete kiirust, mitmekesisust, mahtu ja keerukust
  • Exceli hajutatud andmebaasi ja mitme andmekeskuse operatsioonide puhul
  • Välistab vajaduse andmete salvestamiseks konkreetse vahemälukihi järele
  • Pakub paindlikku skeemikujundust, mida saab hõlpsasti muuta ilma seisakuid või teenust katkestamata

NoSQL-i puudused

  • Standardireeglid puuduvad
  • Piiratud päringuvõimalused
  • RDBMS andmebaasid ja tööriistad on suhteliselt küpsed
  • See ei paku traditsioonilisi andmebaasivõimalusi, nagu järjepidevus, kui korraga tehakse mitu tehingut.
  • Kui andmemaht suureneb, on unikaalsete väärtuste säilitamine keeruline, kuna võtmed muutuvad keeruliseks
  • Ei tööta nii hästi relatsiooniandmetega
  • Õppimiskõver on uute arendajate jaoks jäik
  • Avatud lähtekoodiga valikud pole ettevõtete jaoks nii populaarsed.

kokkuvõte

  • NoSQL on mitterelatsiooniline DMS, mis ei vaja fikseeritud skeemi, väldib liitumisi ja mida on lihtne skaleerida
  • NoSQL-i andmebaaside kontseptsioon sai populaarseks selliste Interneti-hiiglaste seas nagu Google, Facebook, Amazonjne, kes tegelevad tohutute andmemahtudega
  • Aastal 1998 – Carlo Strozzi kasutas oma kerge ja avatud lähtekoodiga relatsiooniandmebaasi jaoks terminit NoSQL.
  • NoSQL-i andmebaasid ei järgi kunagi relatsioonimudelit, need on kas skeemivabad või lõdvestunud skeemidega
  • Neli tüüpi NoSQL-i andmebaasi on 1). Võtme-väärtuste paaripõhine 2). Veerule orienteeritud graafik 3). Graafikupõhine 4). Dokumendile orienteeritud
  • NOSQL suudab töödelda struktureeritud, poolstruktureeritud ja struktureerimata andmeid võrdse mõjuga
  • CAP-teoreem koosneb kolmest sõnast Järjepidevus, Kättesaadavus ja Partition Tolerance
  • BASE tähistab Bpõhimõtteliselt Asaadaval, Ssageli, Eventuaalne järjepidevus
  • Mõiste "lõpulik järjepidevus" tähendab andmete koopiate olemasolu mitmes masinas, et tagada kõrge kättesaadavus ja skaleeritavus
  • NOSQL pakkuda piiratud päringuvõimalusi