NoSQL-i õpetus: NoSQL-i andmebaaside tüübid ja näited

⚡ Nutikas kokkuvõte

NoSQL on mitterelatsiooniline andmebaasihaldussüsteem, mis ei vaja fikseeritud skeemi, väldib liitumisi ja on kergesti skaleeritav. See ressurss selgitab, mis on NoSQL, miks see eksisteerib, selle ajalugu, funktsioone, nelja andmebaasi tüüpi, CAP-teoreemi, lõplikku järjepidevust ning selle eeliseid ja puudusi.

  • 📦 Määratlus: Mitterelatsiooniline, skeemivaba pood, mis on loodud suurte hajutatud andmekogumite jaoks.
  • 📈 Miks: Paljude hostide vahel skaleerimine käitleb suurandmeid kiiremini kui üles skaleerimine.
  • 🗂️ Neli tüüpi: Võtme-väärtuse, veeru-orienteeritud, graafi-põhine ja dokumendi-orienteeritud.
  • 🇧🇷 ÜPP teoreem: Hajutatud pood saab garanteerida ainult kahte neist: järjepidevuse, kättesaadavuse ja partitsioonitaluvuse.
  • 🔁 PÕHJUS: Põhimõtteliselt saadaval, pehme olek, lõplik järjepidevus koopiate vahel.

NoSQL-i õpetus

Mis on NoSQL?

NoSQL andmebaas on mitterelatsiooniline andmehaldussüsteem, mis ei vaja fikseeritud skeemi. See väldib liitmisi ja on hõlpsasti skaleeritav. NoSQL-i andmebaasi peamine eesmärk on hajutatud andmehoidlad, millel on tohutu suur andmesalvestusvajadus. 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”. Kuigi parem termin oleks „NoREL”, hakkas NoSQL levima. Carl Strozzi tutvustas NoSQL-i kontseptsiooni 1998. aastal.

Traditsiooniline SQL-süntaksit kasutab andmete salvestamiseks ja edasiseks analüüsiks. Selle asemel hõlmab NoSQL-i andmebaasisüsteem laia valikut andmebaasitehnoloogiaid, mis suudavad salvestada struktureeritud, poolstruktureeritud, struktureerimata ja polümorfseid andmeid. Vaatleme NoSQL-i selle NoSQL-i andmebaasi õpetuse diagrammi abil:

NoSQL andmebaas

Miks NoSQL?

NoSQL-i andmebaaside kontseptsioon muutus populaarseks selliste internetihiiglaste 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 andmebaasi koormuse jaotamine mitme hostile alati, kui koormus suureneb. Seda meetodit nimetatakse "väljaskaleerimiseks".

NoSQL

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

NoSQL-i andmebaaside lühiajalugu

  • 1998 – Carlo Strozzi kasutab oma kergekaalulise ja avatud lähtekoodiga relatsioonandmebaasi kohta terminit NoSQL.
  • 2000 – Graafi andmebaas Neo4j käivitatakse.
  • 2004 - Google BigTable on käivitatud.
  • 2005 - CouchDB käivitatakse.
  • 2007 – Uurimistöö teemal Amazon Dünamo lastakse lahti.
  • 2008 – Facebook avas lähtekoodi Cassandra projekti.
  • 2009 – Termin NoSQL võeti uuesti kasutusele.

NoSQL-i omadused

Mittesuhteline

  • NoSQL-i andmebaasid ei järgi kunagi relatsiooniline mudel.
  • Ära kunagi esita tabeleid, millel on fikseeritud veergudega ühetaolised kirjed.
  • Töötage iseseisvate agregaatide või BLOB-idega.
  • Objekti-relatsioonikaarti pole vajaping ja andmete normaliseerimine.
  • Puuduvad keerulised funktsioonid nagu päringukeeled, päringute planeerijad, viiteterviklikkuse ühendused või ACID.

Skeemivaba

  • NoSQL-i andmebaasid on kas skeemivabad või neil on leebemad skeemid.
  • Andmete skeemi mingit määratlust ei nõuta.
  • Pakkuda samas domeenis heterogeenset andmestruktuuri.
NoSQL-i omadused
NoSQL on skeemivaba

Lihtne API

  • Pakub hõlpsasti kasutatavaid liideseid andmete salvestamiseks ja päringute tegemiseks.
  • API-d võimaldavad madala taseme andmetega manipuleerimise ja valiku meetodeid.
  • Tekstipõhiseid protokolle kasutatakse enamasti koos HTTP REST-iga ja JSON-iga.
  • Enamasti ei kasutatud standardil põhinevat NoSQL päringukeelt.
  • Veebipõhised andmebaasid, mis töötavad internetipõhiste teenustena.

Levitatakse

  • Mitut NoSQL-i andmebaasi saab käivitada hajutatud viisil.
  • Pakub automaatset skaleerimist ja tõrkesiirde võimalusi.
  • Sageli võidakse ACID-kontseptsioon skaleeritavuse ja läbilaskevõime nimel ohverdada.
  • Hajutatud sõlmede vahel sünkroonset replikatsiooni enamasti ei toimu; asünkroonne mitme masteriga replikatsioon, peer-to-peer, HDFS-replikatsioon.
  • Ainult lõpliku järjepidevuse tagamine.
  • Jagatud-mitte-midagi arhitektuur. See võimaldab vähem koordineerimist ja suuremat hajutamist.
NoSQL-i omadused

NoSQL on jagatud mitte midagi.

NoSQL-i andmebaaside tüübid

NoSQL andmebaasid liigitatakse peamiselt nelja tüüpi: võtme-väärtuse paar, veerupõhine, graafipõhine ja dokumendipõhine. Igal kategoorial on oma unikaalsed atribuudid ja piirangud. Ükski ülalnimetatud andmebaasidest ei lahenda kõiki probleeme paremini. Kasutajad peaksid andmebaasi valima 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

Andmeid salvestatakse võtme/väärtuse paarides. See on loodud nii, et see suudaks hakkama saada suure hulga andmete ja suure koormusega. Võtme-väärtuse paaride salvestusandmebaasid salvestavad andmeid räsitabelina, kus iga võti on unikaalne 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 kõige põhilisemaid NoSQL-i andmebaasi näiteid. Sellist NoSQL-i andmebaasi kasutatakse koguna, sõnastike, assotsiatiivsete massiividena jne. Võtme-väärtuse salvestused aitavad arendajal salvestada skeemita andmeid. Need sobivad kõige paremini kaupluste jaoks.ping ostukorvi sisu.

Redis, Dynamo ja Riak on mõned NoSQL-i näited võtme-väärtuse salvestusega andmebaasidest. Need kõik põhinevad AmazonDünamo paber.

Veerupõhine

Veergudepõhised andmebaasid töötavad veergude alusel ja põhinevad BigTable'i artiklis GoogleIga veergu käsitletakse eraldi. Üheveeruliste andmebaaside väärtused salvestatakse üksteise järel.

Veerupõhine NoSQL-i andmebaas

Veerupõhine NoSQL-i andmebaas

Need pakuvad suurt jõudlust koondpäringute, näiteks SUM, COUNT, puhul. AVG, MIN jne, kuna andmed on veerus hõlpsasti kättesaadavad. Veergupõhiseid NoSQL-andmebaase kasutatakse laialdaselt andmeladude haldamiseks, ärianalüüsi, CRM ja raamatukogu kaardikataloogid.

HBase, Cassandraja Hypertable on veerupõhiste andmebaaside NoSQL-päringute näited.

Dokumendile orienteeritud

Dokumendipõhine NoSQL-i andmebaas salvestab ja hangib andmeid võtme-väärtuse paarina, kuid väärtuse osa salvestatakse dokumendina. Dokument salvestatakse JSON- või XML-vormingus. Andmebaas mõistab väärtust ja selle kohta saab päringuid esitada.

Suhteline vs. Dokument

Suhteline vs. Dokument

Sellel vasakpoolsel diagrammil näete ridu ja veerge ning paremal on meil dokumendiandmebaas, millel on JSON-iga sarnane struktuur. Relatsioonandmebaasi puhul peate teadma, millised veerud teil on jne. Dokumendiandmebaasi puhul on teil aga andmehoidla, näiteks JSON-objekt. Te ei pea seda defineerima, mis muudab selle paindlikuks.

Seda dokumenditüüpi kasutatakse enamasti sisuhaldussüsteemides, ajaveebiplatvormidel, reaalajas analüüsis ja e-kaubanduse rakendustes. Seda ei tohiks kasutada keerukate tehingute puhul, mis nõuavad mitut toimingut või päringuid erinevate koondstruktuuride vastu.

Amazon SimpleDB, CouchDB, MongoDB, Riak ja Lotus Notes on populaarsed dokumendipõhised süsteemid. DBMS-süsteemid.

Graafikupõhine

Graafitüüpi andmebaas salvestab nii üksusi kui ka nende üksuste vahelisi seoseid. Üksus salvestatakse sõlmena ja seos servadena. Serv annab seose sõlmede vahel. Igal sõlmel ja serval on unikaalne identifikaator.

Graafikupõhine

Võrreldes relatsioonandmebaasiga, kus tabelid on omavahel lõdvalt seotud, on graafiandmebaas oma olemuselt mitmerelatsioonne. Seoste läbimine on kiire, kuna need on juba andmebaasis salvestatud ja neid pole vaja arvutada. Graafibaasil andmebaase kasutatakse enamasti sotsiaalsete võrgustike, logistika ja ruumiandmete jaoks.

Neo4J, lõpmatu graafik, OrientDBja FlockDB on mõned populaarsed graafipõhised andmebaasid.

Päringumehhanismi tööriistad NoSQL-i jaoks

Kõige levinum andmete hankimise mehhanism on REST-põhine väärtuse hankimine selle võtme/ID põhjal GET-ressursi abil.

Dokumendihoidlate andmebaasid pakuvad keerulisemaid päringuid, kuna nad mõistavad võtme-väärtuse paari väärtust. Näiteks CouchDB võimaldab vaadete defineerimist MapReduce'i abil.

Mis on CAP teoreem?

CAP-teoreemi nimetatakse ka Breweri teoreemiks. See väidab, et hajusandmehoidlal on võimatu pakkuda rohkem kui kahte kolmest garantiist:

  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õplik järjepidevus” tähendab andmete koopiate olemasolu mitmes masinas, et saavutada kõrge käideldavus ja skaleeritavus. Seega tuleb ühes masinas mis tahes andmeüksuses tehtud muudatused edastada ka teistele koopiatele.

Andmete replikatsioon ei pruugi toimuda hetkega, kuna mõned koopiad uuendatakse kohe, teised aga aja jooksul. Need koopiad võivad olla vastastikku vastuolulised, kuid aja jooksul muutuvad nad järjepidevaks. Sellest ka nimi lõplik järjepidevus.

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

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

Lõplik järjepidevus

NoSQL-i eelised

  • Saab kasutada primaarse või analüütilise andmeallikana.
  • Suurandmete võimekus.
  • Pole ühtegi ebaõnnestumise kohta.
  • Lihtne replikatsioon.
  • Eraldi vahemälukihi järele pole vajadust.
  • See tagab kiire jõudluse ja horisontaalse mastaapsuse.
  • Suudab võrdselt tõhusalt käsitleda struktureeritud, poolstruktureeritud ja struktureerimata andmeid.
  • Objektorienteeritud programmeerimine, mida on lihtne kasutada ja mis on paindlik.
  • NoSQL-i andmebaasid ei vaja spetsiaalset suure jõudlusega serverit.
  • Toetage peamisi arendajakeeli ja platvorme.
  • Lihtsam rakendada kui RDBMS-i kasutamine.
  • See võib olla võrgurakenduste peamise andmeallikana.
  • Töötleb suurandmeid, mis omakorda haldab andmete kiirust, mitmekesisust, mahtu ja keerukust.
  • Suurepärane hajutatud andmebaaside ja mitme andmekeskuse toimingute puhul.
  • Kõrvaldab vajaduse andmete salvestamiseks spetsiaalse vahemälukihi järele.
  • Pakub paindlikku skeemi, mida saab hõlpsalt muuta ilma seisakuid või teenuse katkemist tekitamata.

NoSQL-i puudused

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

KKK

NoSQL-i andmebaasid käsitlevad tehisintellekti ja suurandmete torujuhtmete toottavaid suuri, mitmekesiseid ja kiiresti muutuvaid andmeid. Nende paindlik skeem ja horisontaalne skaleerimine sobivad treeningandmete, logide ja reaalajas funktsioonide salvestamiseks hajutatud klastrites.

Jah. Mitmed NoSQL-i andmebaasid, näiteks MongoDB ja Elasticsearch toetavad nüüd vektorvälju ja sarnasuse otsingut. See võimaldab tehisintellekti rakendustel salvestada manuseid dokumentide kõrvale semantilise otsingu ja soovitusfunktsioonide jaoks.

SQL-andmebaasid on relatsioonilised, fikseeritud skeemiga ning kasutavad tabeleid, ridu ja ühendusi. NoSQL-andmebaasid on mitterelatsioonilised, kasutavad paindlikke skeeme ja skaleeruvad horisontaalselt, salvestades andmeid dokumentide, võtmeväärtuste, veergude või graafikutena.

Väldi NoSQL-i, kui vajad tugevaid ACID-tehinguid, keerukaid liitmisi või ranget andmete terviklikkust, näiteks panganduses. Küpsed relatsioonandmebaasid saavad sellistel juhtudel paremini hakkama mitme kirje järjepidevuse ja standardiseeritud päringutega.

Võta see postitus kokku järgmiselt: