Trace Id is missing
Gå til hovedinnhold

NoSQL-database - Hva er NoSQL?

En oversikt for å komme i gang

Hva er NoSQL-databaser?

NoSQL-databaser blir om hverandre referert til som "ikke-relasjonelle", "NoSQL DB-er" eller "ikke-SQL" for å fremheve det faktum at de kan håndtere enorme volumer av raskt skiftende, ustrukturerte data på andre måter enn en relasjonsdatabase (SQL) med rader og tabeller.

NoSQL-teknologier har eksistert siden 1960-tallet, under forskjellige navn, men nyter en økning i popularitet ettersom datalandskapet endres og utviklere må tilpasse seg for å håndtere det store volumet og det store utvalget av data generert fra skyen, mobilen, sosiale medier, og stordata.

Fra virale kjendis-tweets til livreddende informasjon i elektroniske journaler, genereres nye data og datatyper i et svimlende tempo. NoSQL-databaser har utviklet seg til å hjelpe utviklere til raskt å lage databasesystemer for å lagre den nye informasjonen og gjøre den lett tilgjengelig for søk, konsolidering og analyse.

Fordelene med NoSQL-databaser (NoSQL DB-er)

NoSQL-databaser hjelper IT-proffer og utviklere med å håndtere de nye utfordringene med stadig voksende mangfold av datatyper og modeller og er svært effektive til å håndtere uforutsigbare data, ofte med lynraske spørringshastigheter. De gir også en enkel databasemigrering til skyen for eksisterende NoSQL-arbeidsbelastninger.

Utvikle med smidighet

Med evnen til å reagere på uplanlagte situasjoner, imøtekommer NoSQL DB-er hyppige programvareutgivelsessykluser og er egnet for raskere og mer smidig apputvikling.

Håndter data med fleksibilitet

NoSQL gir utviklere mer frihet, hastighet og fleksibilitet til å endre både skjema og spørringer for å tilpasse seg datakravene. Informasjon som er lagret som et samlet aggregat gjør det enklere for raske iterative forbedringer – uten å måtte utføre skjemadesign på forhånd.

Operer i hvilken som helst skala

NoSQL-databaser kan gi uimotståelige driftsfordeler og besparelser med muligheten til å skalere "ut" horisontalt – eller legge til billigere servere uten å måtte oppgradere. De kan skaleres til å håndtere mer data eller ha en enkelt stor database med svært distribuerbare serverklynger.

Typer datamodeller med NoSQL-databaser

De fleste ikke-relasjonelle databaser med høy ytelse, noen ganger kalt «ikke bare SQL», kan også håndtere svært strukturerte data – de er bare ikke begrenset til faste datamodeller som relasjonsdatabaser (SQL).

 

De fire vanligste typene NoSQL-databaser er:

Nøkkelverdi

Nøkkelverdi lagrer parnøkler og verdier ved hjelp av en hash-tabell. Nøkkelverdityper er best når en nøkkel er kjent og den tilknyttede verdien for nøkkelen er ukjent.

Dokument

Dokumentdatabaser utvider konseptet med nøkkelverdidatabasen ved å organisere hele dokumenter i grupper kalt samlinger. De støtter nestede nøkkelverdi-par og tillater spørringer på alle attributter i et dokument.

Kolonner

Kolonne-, bred-kolonne- eller kolonnefamiliedatabaser lagrer effektivt data og spør på tvers av rader med sparsomme data og er fordelaktige når du spør på tvers av spesifikke kolonner i databasen.

Graph

Graph-databaser bruker en modell som er basert på noder og kanter for å representere sammenkoblede data (slik som relasjoner mellom personer i et sosialt nettverk) – og tilbyr forenklet lagring og navigering gjennom kompliserte relasjoner.

Hvordan velge mellom relasjonelle (SQL) og ikke-relasjonelle (NoSQL) databaser

NoSQL eller ikke-relasjonell SQL eller relasjonell

BEST FOR:

  • Håndtering av store, urelaterte, ubestemte eller raskt skiftende data.
  • Skjemaagnostiske data eller skjema diktert av appen.
  • Apper der ytelse og tilgjengelighet er viktigere enn sterk konsistens.
  • Alltid-på-apper som betjener brukere over hele verden.
  • Håndtering av data som er relasjonelle og har logiske og diskrete krav som kan identifiseres på forhånd.
  • Skjema som må vedlikeholdes og holdes synkronisert mellom appen og databasen.
  • Eldre systemer bygget for relasjonelle strukturer.
  • Apper som krever komplekse spørringer eller transaksjoner med flere rader.

SCENARIER:

  • Mobilapper.
  • Sanntidsanalyse.
  • Innholdsstyring.
  • Personalisering.
  • IoT-apper.
  • Databasemigrering.
  • Regnskaps-, finans- og banksystemer.
  • Lagerstyringssystemer.
  • Transaksjonsstyringssystemer.

SKALA:

  • Skalerer data horisontalt ved å fragmentere på tvers av servere.
  • Skalerer data vertikalt ved å øke serverbelastningen.

DATAMODELL:

  • Databasetyper: nøkkelverdi-, dokument-, kolonne- og grafdatabaser.
  • Lagrer data avhengig av databasetype.
  • Databasetype: tabeller med rader, gruppert i relasjoner.
  • Bruker Structured Query Language (SQL).
  • Lagrer data som rader i tabeller; relaterte data lagret separat og slått sammen for komplekse spørsmål.

Hvordan evaluerer jeg en NoSQL DB?

Velg en datamodell

Mange NoSQL-databaser er orientert mot aggregater – en samling av data som du samhandler med som en enhet. Dette gjør dem til en mye mer naturlig tilpasning for moderne, objektorienterte programmeringsspråk. Når du velger en NoSQL DB, vil du sannsynligvis starte med å velge en datamodell – og deretter evaluere NoSQL-databasene som støtter den, sammen med programmeringsspråkene og SDK-ene som hver database støtter.

Vei kompromissene med konsekvens

De fleste NoSQL DB-er lar deg velge fra hver ende av et konsistensspekter, fra sterk konsistens – hvor du får de nyeste dataene, men du må kanskje vente – til eventuell konsistens hvor du får en rask respons, men dataene kan være foreldet. Det er mange NoSQL-databaser som støtter andre konsistensnivåer som også faller mer i midten av disse ytterpunktene. Velg den NoSQL DB som gir deg mest fleksibilitet og kontroll i konsistensmodeller for dine behov.

Vurder sky- og databasemigreringen

Med sin distribuerte natur og horisontale skalerbarhet er NoSQL DB-er et ideelt valg for cloud computing, selv om du også kan finne mange NoSQL-databasesystemer designet for å kjøre lokalt eller i hybride scenarier.

Når du vurderer skyalternativene dine, bør du vurdere følgende:

  • Støttede datamodeller. Støtter skyleverandøren alle datamodellene du kanskje vil bruke?
  • Implementering og drift. Hvor enkelt kan du distribuere databasen din og replikere den til andre regioner, om nødvendig?
  • Geografisk tilstedeværelse. Hvor er skyleverandørens datasentre? Kan du legge dataene dine der du vil ha dem? Hvordan vil du holde deg i samsvar med globale personvernforskrifter, slik som EUs GDPR?
  • Enkel replikering. Hva er prosessen for å replikere databasen til en annen geografisk region?
  • Skalerbarhet. Lar NoSQL-databaseressursene deg sikre tilstrekkelig ytelse, samt skalere for vekst? Vil du være i stand til å skalere opp, ned eller horisontalt?
  • Høy tilgjengelighet. Hva vil skje i tilfelle en uventet feil? Tilbyr tjenesten innebygd høy tilgjengelighet og gjenoppretting etter katastrofe?
  • Tjenestenivåer. Hvilke nivåer av tilgjengelighets- eller latensgarantier tilbys?
  • Økosystem. Er databasen tett integrert med resten av skyplattformen og kan den settes raskt sammen for å lage nye løsninger?

Måter å bruke NoSQL-databasesystemer på

Å bruke datamodeller basert på NoSQL passer utmerket for bedrifter som ønsker å bygge mobil-, web-, tingenes Internett (IoT) og spillapper som krever fleksible, skalerbare, høyytelses- og svært funksjonelle databaser for å gi gode brukeropplevelser – enten det er spill, e-handel, stordata-analyse eller nettapper i sanntid og mer.

Distribuer appene dine globalt

Få flere brukere, uansett hvor de er i verden, med den forbedrede appytelsen fra høy tilgjengelighet og gjenoppretting etter katastrofe.

Tilby sanntids kundeopplevelser

Lever personalisering, sanntidsanbefalinger og forbedret brukeropplevelse med NoSQL DB-er.

Tilpass ulike IoT-arbeidsmengder

Skaler umiddelbart og elastisk for å håndtere vedvarende, skrivetungt datainntak med forbedret søkeytelse for IoT-apper.

Forbedre e-handelsappene dine

Med fleksible skjemaer og hierarkiske data er NoSQL godt egnet for lagring av produktkatalogdata der ulike produkter har ulike attributter.

Engasjer spillere med nytt innhold

Lever personlig tilpassede opplevelser med innhold som statistikk i spillet, integrering av sosiale medier og topplister. Lav ventetid og elastisk skalerbarhet støtter trafikkøkninger under spilllanseringer og turneringer.

Bygg serverløse apper

Skaler datainntak, gjennomstrømning og datavolumer sømløst med umiddelbar tilgjengelighet, automatisk indeksering, stabile inntakshastigheter og søkeytelse.

Få bedre innsikt fra stordata

Implementer maskinlæring i stor skala på tvers av raskt skiftende, store data og få mer ut av analysene dine.

Migrer eksisterende NoSQL-arbeidsbelastninger til skyen

Bruk mindre tid på å administrere en lokal database med en migrering til skyen, mens du fortsatt bruker eksisterende verktøy, drivere, biblioteker og SDK-er.

Kom i gang med NoSQL og databasemigrering til skyen

Lær hvordan du utvikler appene dine med ny smidighet, fleksibilitet og skalerbarhet i administrasjon av databasesystemer og ulike datatyper, samt en skydatabasemigrering for eksisterende NoSQL-arbeidsbelastninger. Få en teknisk oversikt over Azure Cosmos DB for utviklere  og finn ut mer om innebygd støtte for NoSQL i en globalt distribuert, massivt skalerbar og multimodellbasert databasetjeneste.

Finn ut mer om Azure Cosmos DB for NoSQL-data   
Mer informasjon