NoSQL-opplæring: Hva er, typer NoSQL-databaser og eksempler

Hva er NoSQL?

NoSQL Database er et ikke-relasjonelt datastyringssystem, som ikke krever et fast skjema. Den unngår sammenføyninger, og er enkel å skalere. Hovedformålet med å bruke en NoSQL-database er for distribuerte datalagre med enorme datalagringsbehov. NoSQL brukes til Big data og sanntids nettapper. For eksempel samler selskaper som Twitter, Facebook og Google terabyte med brukerdata hver eneste dag.

NoSQL -database står for "Ikke bare SQL" eller "Ikke SQL." Selv om et bedre begrep ville være "NoREL", fanget NoSQL opp. Carl Strozz introduserte NoSQL-konseptet i 1998.

Tradisjonell RDBMS bruker SQL-syntaks til å lagre og hente data for ytterligere innsikt. I stedet omfatter et NoSQL-databasesystem et bredt spekter av databaseteknologier som kan lagre strukturerte, semistrukturerte, ustrukturerte og polymorfe data. La oss forstå om NoSQL med et diagram i denne NoSQL-databaseopplæringen:

NoSQL-database

Hvorfor NoSQL?

Konseptet med NoSQL-databaser ble populært blant Internett-giganter som Google, Facebook, Amazon, etc. som håndterer enorme mengder data. Systemets responstid blir treg når du bruker RDBMS for enorme mengder data.

For å løse dette problemet kan vi "skalere opp" systemene våre ved å oppgradere vår eksisterende maskinvare. Denne prosessen er dyr.

Alternativet for dette problemet er å distribuere databasebelastning på flere verter når belastningen øker. Denne metoden er kjent som "utskalering".

NoSQL

NoSQL-databasen er ikke-relasjonell, så den skalerer ut bedre enn relasjonsdatabaser ettersom de er designet med tanke på nettapplikasjoner.

Kort historie om NoSQL-databaser

  • 1998 - Carlo Strozzi bruker begrepet NoSQL for sin lette, åpen kildekode relasjonsdatabase
  • 2000- Grafdatabase Neo4j lanseres
  • 2004- Google BigTable lanseres
  • 2005- CouchDB lanseres
  • 2007- Forskningsoppgaven om Amazon Dynamo er utgitt
  • 2008- Facebooks åpne kilder Cassandra prosjekt
  • 2009- Begrepet NoSQL ble gjeninnført

Funksjoner i NoSQL

Ikke-relasjonelt

  • NoSQL-databaser følger aldri relasjonsmodell
  • Gi aldri tabeller med flate, faste kolonneposter
  • Arbeid med selvstendige aggregater eller BLOB-er
  • Krever ikke objektrelasjonell kartlegging og datanormalisering
  • Ingen komplekse funksjoner som spørringsspråk, spørringsplanleggere, referanseintegritetskoblinger, ACID

Skjemafri

  • NoSQL-databaser er enten skjemafrie eller har avslappede skjemaer
  • Ikke kreve noen form for definisjon av skjemaet til dataene
  • Tilbyr heterogene strukturer av data i samme domene
Funksjoner i NoSQL
NoSQL er skjemafri

Enkel API

  • Tilbyr brukervennlige grensesnitt for lagring og spørring av data
  • APIer tillater datamanipulering og utvalgsmetoder på lavt nivå
  • Tekstbaserte protokoller brukes mest med HTTP REST med JSON
  • Brukes for det meste ikke noe standardbasert NoSQL-spørringsspråk
  • Web-aktiverte databaser som kjører som internett-vendte tjenester

distribuert

  • Flere NoSQL-databaser kan kjøres på en distribuert måte
  • Tilbyr funksjoner for automatisk skalering og fail-over
  • Ofte kan ACID-konseptet ofres for skalerbarhet og gjennomstrømning
  • Stort sett ingen synkron replikering mellom distribuerte noder Asynkron Multi-Master-replikering, peer-to-peer, HDFS-replikering
  • Gir kun konsistens til slutt
  • Delte ingenting Architecture. Dette muliggjør mindre koordinering og høyere distribusjon.
Funksjoner i NoSQL
NoSQL er delt ingenting.

Typer NoSQL-databaser

NoSQL-databaser er hovedsakelig kategorisert i fire typer: Nøkkelverdi-par, Kolonneorientert, Grafbasert og Dokumentorientert. Hver kategori har sine unike egenskaper og begrensninger. Ingen av de spesifiserte databasene er bedre for å løse alle problemene. Brukere bør velge databasen basert på deres produktbehov.

Typer NoSQL-databaser:

  • Nøkkelverdi-parbasert
  • Kolonneorientert graf
  • Grafer basert
  • Dokumentorientert

Typer NoSQL-databaser

Nøkkelverdiparbasert

Data lagres i nøkkel/verdi-par. Den er designet på en slik måte å håndtere mye data og tung belastning.

Nøkkelverdi-parlagringsdatabaser lagrer data som en hashtabell der hver nøkkel er unik, og verdien kan være en JSON, BLOB(Binary Large Objects), streng, etc.

Et nøkkelverdi-par kan for eksempel inneholde en nøkkel som "Website" assosiert med en verdi som "Guru99".

Nøkkelverdiparbasert

Det er et av de mest grunnleggende NoSQL-databaseeksemplene. Denne typen NoSQL-database brukes som en samling, ordbøker, assosiative arrays osv. Nøkkelverdilagre hjelper utvikleren med å lagre skjemaløse data. De fungerer best for innhold i handlekurven.

Redis, Dynamo, Riak er noen NoSQL-eksempler på nøkkelverdilagerdatabaser. De er alle basert på Amazonsitt Dynamo-papir.

Kolonnebasert

Kolonneorienterte databaser fungerer på kolonner og er basert på BigTable-papir fra Google. Hver kolonne behandles separat. Verdier av enkeltkolonnedatabaser lagres sammenhengende.

Kolonnebasert NoSQL-database

Kolonnebasert NoSQL-database

De leverer høy ytelse på aggregeringsspørringer som SUM, COUNT, AVG, MIN osv. ettersom dataene er lett tilgjengelige i en kolonne.

Kolonnebaserte NoSQL-databaser er mye brukt til å administrere datavarehus, business intelligence, CRM, bibliotekskortkataloger,

HBase, Cassandra, HBase, Hypertable er NoSQL-spørringseksempler på kolonnebaserte databaser.

Dokumentorientert

Dokumentorientert NoSQL DB lagrer og henter data som et nøkkelverdipar, men verdidelen lagres som et dokument. Dokumentet lagres i JSON- eller XML-formater. Verdien forstås av DB og kan spørres.

Relasjonell vs. Dokument

Relasjonell vs. Dokument

I dette diagrammet til venstre kan du se at vi har rader og kolonner, og til høyre har vi en dokumentdatabase som har en lignende struktur som JSON. Nå for relasjonsdatabasen må du vite hvilke kolonner du har og så videre. For en dokumentdatabase har du imidlertid datalager som JSON-objekt. Du trenger ikke å definere hvilke som gjør den fleksibel.

Dokumenttypen brukes mest for CMS-systemer, bloggingplattformer, sanntidsanalyse og e-handelsapplikasjoner. Den skal ikke brukes for komplekse transaksjoner som krever flere operasjoner eller spørringer mot varierende aggregerte strukturer.

Amazon EnkelDB, CouchDB, MongoDB, Riak, Lotus Notes, MongoDB, er populære Dokumentopprinnelse DBMS-systemer.

Grafbasert

En graftypedatabase lagrer enheter samt relasjonene mellom disse enhetene. Entiteten lagres som en node med relasjonen som kanter. En kant gir et forhold mellom noder. Hver node og kant har en unik identifikator.

Grafbasert

Sammenlignet med en relasjonsdatabase der tabeller er løst koblet sammen, er en Graph-database en multirelasjonell. Traverserende forhold er raskt ettersom de allerede er fanget inn i DB, og det er ikke nødvendig å beregne dem.

Grafbasedatabase mest brukt for sosiale nettverk, logistikk, romlige data.

Neo4J, uendelig graf, OrientDB, FlockDB er noen populære grafbaserte databaser.

Spørringsmekanismeverktøy for NoSQL

Den vanligste datainnhentingsmekanismen er REST-basert henting av en verdi basert på nøkkel/ID med GET-ressurs

Document Store Database tilbyr vanskeligere søk ettersom de forstår verdien i et nøkkelverdi-par. For eksempel CouchDB lar deg definere visninger med MapReduce

Hva er CAP-teoremet?

CAP-teorem kalles også brewer's theorem. Den slår fast at det er umulig for et distribuert datalager å tilby mer enn to av tre garantier

  1. Konsistens
  2. Tilgjengelighet
  3. Partisjonstoleranse

Konsistens:

Dataene skal forbli konsistente selv etter at en operasjon er utført. Dette betyr at når data er skrevet, bør enhver fremtidig leseforespørsel inneholde disse dataene. For eksempel, etter å ha oppdatert ordrestatusen, skal alle klientene kunne se de samme dataene.

Tilgjengelighet:

Databasen skal alltid være tilgjengelig og responsiv. Den skal ikke ha noen nedetid.

Partisjonstoleranse:

Partisjonstoleranse betyr at systemet skal fortsette å fungere selv om kommunikasjonen mellom serverne ikke er stabil. For eksempel kan serverne deles inn i flere grupper som kanskje ikke kommuniserer med hverandre. Her, hvis en del av databasen er utilgjengelig, er andre deler alltid upåvirket.

Eventuell konsistens

Begrepet "eventuell konsistens" betyr å ha kopier av data på flere maskiner for å få høy tilgjengelighet og skalerbarhet. Endringer som gjøres til et dataelement på én maskin må derfor overføres til andre replikaer.

Datareplikering vil kanskje ikke være øyeblikkelig ettersom noen kopier vil bli oppdatert umiddelbart mens andre etter hvert. Disse kopiene kan være gjensidige, men etter hvert blir de konsistente. Derav navnet til slutt konsistens.

UTGANGSPUNKT: Basisk Atilgjengelig, Ssier ofte, Eeventuell konsistens

  • I utgangspunktet betyr tilgjengelig at DB er tilgjengelig hele tiden i henhold til CAP-teoremet
  • Myk tilstand betyr selv uten en inngang; systemtilstanden kan endres
  • Eventuell konsistens betyr at systemet vil bli konsistent over tid

Eventuell konsistens

Fordeler med NoSQL

  • Kan brukes som primær eller analytisk datakilde
  • Big Data-kapasitet
  • Ingen enkelt feilpunkt
  • Enkel replikering
  • Ikke behov for separat hurtigbufferlag
  • Det gir rask ytelse og horisontal skalerbarhet.
  • Kan håndtere strukturerte, semistrukturerte og ustrukturerte data med lik effekt
  • Objektorientert programmering som er enkel å bruke og fleksibel
  • NoSQL-databaser trenger ikke en dedikert høyytelsesserver
  • Støtt nøkkelspråk og plattformer for utviklere
  • Enkel å implementere enn å bruke RDBMS
  • Den kan fungere som den primære datakilden for nettbaserte applikasjoner.
  • Håndterer store data som styrer datahastighet, variasjon, volum og kompleksitet
  • Utmerker seg på distribuert database- og multidatasenterdrift
  • Eliminerer behovet for et spesifikt cachinglag for å lagre data
  • Tilbyr et fleksibelt skjemadesign som enkelt kan endres uten nedetid eller tjenesteavbrudd

Ulemper med NoSQL

  • Ingen standardiseringsregler
  • Begrensede søkemuligheter
  • RDBMS databaser og verktøy er relativt modne
  • Den tilbyr ingen tradisjonelle databasefunksjoner, som konsistens når flere transaksjoner utføres samtidig.
  • Når datavolumet øker er det vanskelig å opprettholde unike verdier ettersom nøkler blir vanskelige
  • Fungerer ikke like bra med relasjonsdata
  • Læringskurven er stiv for nye utviklere
  • Åpen kildekode-alternativer, så ikke så populært for bedrifter.

Sammendrag

  • NoSQL er et ikke-relasjonelt DMS, som ikke krever et fast skjema, unngår sammenføyninger og er lett å skalere
  • Konseptet med NoSQL-databaser ble populært blant Internett-giganter som Google, Facebook, Amazon, etc. som håndterer enorme mengder data
  • I 1998 brukte Carlo Strozzi begrepet NoSQL for sin lette, åpen kildekode relasjonsdatabase
  • NoSQL-databaser følger aldri relasjonsmodellen, den er enten skjemafri eller har avslappede skjemaer
  • Fire typer NoSQL-database er 1). Nøkkelverdi-parbasert 2). Kolonneorientert graf 3). Grafer basert 4). Dokumentorientert
  • NOSQL kan håndtere strukturerte, semistrukturerte og ustrukturerte data med lik effekt
  • CAP-teoremet består av tre ord konsistens, tilgjengelighet og partisjonstoleranse
  • BASE står for Basisk Atilgjengelig, Ssier ofte, Eeventuell konsistens
  • Begrepet "eventuell konsistens" betyr å ha kopier av data på flere maskiner for å få høy tilgjengelighet og skalerbarhet
  • NoSQL tilbyr begrensede søkemuligheter