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: |
|
|
SCENARIER: |
|
|
SKALA: |
|
|
DATAMODELL: |
|
|
|
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.