NoSQL-databaser

En oversigt over, hvordan du kommer i gang

Hvad er NoSQL-databaser?

NoSQL-databaser kaldes også "databaser uden relationer", "NoSQL-databaser" eller blot "non-SQL" for at fremhæve det faktum, at de kan håndtere store mængder hastigt skiftende ustrukturerede data på andre måder end en relationsdatabase (SQL) med rækker og tabeller.

NoSQL-teknologierne har eksisteret siden 1960'erne under forskellige navne og har nydt godt af en stigende popularitet, i takt med at datalandskabet har ændret sig, og udviklerne er nødt til at kunne håndtere enorme mængder forskellige data, der genereres fra cloudmiljøer, de sociale medier og big data.

Nye data og datatyper lige fra virale tweets fra berømtheder til livsvigtige oplysninger i elektroniske medicinske journaler genereres i et svimlende højt tempo. NoSQL-databaser hjælper udviklerne med hurtigt at oprette databasesystemer for at lagre nye oplysninger og gøre dem klar med det samme til søgning, konsolidering og analyse.

Fordelene ved NoSQL-databaser

NoSQL-databaser hjælper it-eksperter og udviklere med at håndtere de nye udfordringer, der er forbundet med den konstant voksende mængde datatyper og -modeller, og er meget effektive til at håndtere uforudsigelige data, ofte med lynhurtig forespørgselshastighed. De tilbyder også en problemfri databaseoverførsel til cloudmiljøet for eksisterende NoSQL-arbejdsbelastninger.

Udvikling med fleksibilitet for øje

Med muligheden for at reagere på ikke-planlagte situationer imødekommer NoSQL-databaser behovene i forbindelse med hyppige softwareudgivelser og er samtidig velegnede til hurtig og fleksibel appudvikling.

Fleksibel håndtering af data

NoSQL giver udviklerne en højere grad af frihed, hastighed og fleksibilitet til at ændre både skema og forespørgsler og på den måde imødekomme datakrav. Oplysninger, der er gemt som en samling, gør det let at foretage iterative forbedringer uden at skulle foretage skemadesign på forhånd.

Drift i enhver målestok

NoSQL-databaser tilbyder overbevisende driftsfordele og -besparelser, da det er muligt at skalere "ud" horisontalt eller tilføje billigere servere uden at skulle opgradere. De kan skaleres til at håndtere flere data eller rumme en enkelt stor database inden for en meget distribuerbar klynge servere.

Datamodeltyper med NoSQL-databaser

De fleste højtydende databaser uden relationer, som også nogle gange kaldes "ikke kun SQL", kan også håndtere meget strukturerede data – de er ikke kun begrænset til faste datamodeller som f.eks. relationsdatabaser (SQL).

De fire mest almindelige typer NoSQL-databaser er:

Nøgleværdi

Nøgleværdilagre parrer nøgler og værdier ved hjælp af en hashtabel. Nøgleværdityper er bedst, når en nøgle er kendt, og den tilknyttede værdi for nøglen er ukendt.

Dokument

Dokumentdatabaser udvider konceptet med nøgleværdidatabaser ved at organisere hele dokumenter i grupper, der kaldes samlinger. De understøtter indlejrede nøgleværdipar og muliggør forespørgsler på en hvilken som helst attribut i et dokument.

Kolonne

Databaser med kolonner, brede kolonner eller kolonnefamilier lagrer effektivt data og forespørger på tværs af rækker bestående af sparsomme data og er fordelagtige, når der forespørges på tværs af bestemte kolonner i databasen.

Graph

Databaser til grafiske afbildninger benytter en model, der er baseret på noder og grænser, for at repræsentere forbundne data, f.eks. relationer mellem mennesker i sociale netværk, og tilbyder forenklet lagring og navigation gennem komplekse relationer.

Sådan vælger du mellem relationsdatabaser (SQL) og databaser uden relation (NoSQL)

Ikke tilgængelig NoSQL eller database uden relation SQL eller relationel
Bedst til:
  • Håndtering af data uden relation eller store mængder ikke definerede eller hurtigt skiftende data.
  • Skemaagnostiske data eller skemadikterede af appen.
  • Apps, hvor ydeevne og tilgængelighed er vigtigere end en høj grad af konsekvens.
  • Apps, der altid er tilgængelige, og som servicerer brugere over hele verden.
  • Håndtering af relationsdata og data, som har logiske og diskrete krav, der kan identificeres på forhånd.
  • Skema, der skal vedligeholdes og holdes synkroniseret mellem appen og databasen.
  • Ældre systemer, der er udviklet til relationsstrukturer.
  • Apps, der kræver komplekse forespørgsler eller transaktioner over flere rækker.
Scenarier:
  • Mobilapps.
  • Analyser i realtid.
  • Indholdsstyring.
  • Personlig tilpasning.
  • IoT-apps.
  • Databaseoverførsel.
  • Regnskabs-, økonomi- og banksystemer.
  • Systemer til lagerstyring.
  • Systemer til transaktionsstyring.
Skalering:
  • Skalerer data horisontalt ved at sharde på tværs af servere.
  • Skalerer data vertikalt ved at øge serverbelastningen.
Datamodel:
  • Databasetyper: nøgleværdidatabaser, dokumentdatabaser, kolonnedatabaser eller databaser til grafisk afbildning.
  • Lagrer data ud fra databasetype.
  • Databasetype: Tabeller med rækker, der grupperes i relationer.
  • Bruger SQL (Structured Query Language).
  • Lagrer data som rækker i tabeller; relaterede data, der er lagret separat og forbundet til komplekse forespørgsler.
Ikke tilgængelig Få mere at vide om datamodeller uden relationer Få mere at vide om relationsdatamodeller

Hvordan evaluerer jeg en NoSQL-database?

Vælg en datamodel

Mange NoSQL-databaser er orienteret mod samlinger – en samling data, som du interagerer med som en enhed. Dette gør dem til et fordelagtigt valg til moderne objektorienterede programmeringssprog. Når du vælger en NoSQL-database, er det en god ide at starte med at vælge en datamodel og derefter evaluere de NoSQL-databaser, der understøtter den, sammen med de programmeringssprog og SDK'er, som de enkelte databaser understøtter.

Få mere at vide om programmeringsmodeller og API'er

Afvej kompromiserne i forbindelse med konsekvens

Med de fleste NoSQL-databaser kan du vælge fra begge ender af et spektrum for konsekvens, fra en høj grad af konsekvens, hvor du får de nyeste data, men du måske skal vente, til mulig konsekvens, hvor du får et hurtigt svar, men hvor dataene kan være forældede. Der er mange NoSQL-databaser, der understøtter andre konsekvensniveauer, der typisk ligger midt mellem disse ekstremer. Vælg den NoSQL-database, der giver dig mest fleksibilitet og kontrol i konsekvensmodeller til dine behov.

Få mere at vide om konsekvens, tilgængelighed og partitionstolerance

Overvej en cloudløsning og databaseoverførsel

NoSQL-databaser er med deres distribuerede natur og horisontale skalerbarhed ideelle til cloudcomputing, selvom du kan finde mange NoSQL-databasesystemer, der er designet til at køre i det lokale miljø eller i hybride scenarier.

Når du evaluerer cloudmuligheder, bør du overveje følgende:

  • Understøttede datamodeller. Understøtter cloududbyderen alle de datamodeller, som du måske vil bruge?
  • Udrulning og drift. Hvor nemt kan du udrulle din database og replikere den i andre områder, hvis der er behov for det?
  • Geografisk tilstedeværelse. Hvor er cloududbyderens datacentre? Kan du placere dine data der, hvor du vil? Hvordan overholder du globale forordninger om beskyttelse af personlige oplysninger, f.eks. EU's GDPR?
  • Replikeringsmuligheder. Hvordan er processen til replikering af databasen til et andet geografisk område?
  • Skalerbarhed. Sikrer NoSQL-databaseressourcerne dig tilstrækkelig ydeevne samt skalerbarhed i forbindelse med vækst? Vil du kunne skalere op, ned eller horisontalt?
  • Høj tilgængelighed. Hvad sker der i tilfælde af en uventet fejl? Tilbyder tjenesten integreret høj tilgængelighed og it-katastrofeberedskab?
  • Serviceniveauer. Hvilke niveauer af tilgængelighed eller ventetidsgarantier tilbydes?
  • Økosystem. Er databasen tæt integreret med resten af cloudplatformen, og kan den hurtigt sammenstykkes for at skabe nye løsninger?

Måder at bruge NoSQL-databasesystemer på

Brug af datamodeller, der er baseret på NoSQL, er velegnet til virksomheder, der gerne vil udvikle mobilapps, webapps, IoT-apps og gamingapps, der kræver fleksible, skalerbare, højtydende og meget funktionelle databaser for at levere fantastiske brugeroplevelser – uanset om der er tale om gaming, e-handel, big data-analyser eller webapps i realtid m.m.

Distribuer dine apps globalt

Få flere brugere, uanset hvor i verden de befinder sig, med forbedret appydeevne, der skyldes høj tilgængelighed og et it-katastrofeberedskab.

Tilbyd oplevelser i realtid til kunderne

Levér personlig tilpasning, anbefalinger i realtid og en forbedret brugeroplevelse med NoSQL-databaserne.

Imødekom forskellige IoT-arbejdsbelastninger

Skalér øjeblikkeligt og elastisk for at håndtere vedvarende dataindtagelse, når der skrives mange data, med forbedret forespørgselsydeevne for IoT-apps.

Gør dine apps til e-handel endnu bedre

NoSQL er med sine fleksible skemaer og hierarkiske data velegnet til lagring af produktkatalogdata, hvor de forskellige produkter har forskellige attributter.

Aktivér gamere med nyt indhold

Levér personligt tilpassede oplevelser med indhold som f.eks. statistikker i spillet, integration med sociale medier og leaderboards. Lav ventetid og elastisk skalerbarhed understøtter spidsbelastninger i trafikken under spillanceringer eller spilturneringer.

Byg serveruafhængige apps

Skalér dataindtagelse, gennemløb og datamængder problemfrit med øjeblikkelig tilgængelighed, automatisk indeksering, stabile indtagelsesrater og stabil forespørgselsydeevne.

Få større viden fra big data

Implementer maskinel indlæring i stor målestok på tværs af store mængder hurtigt skiftende data, og få mere ud af dine analyser.

Overfør eksisterende NoSQL-arbejdsbelastninger til cloudmiljøet

Brug mindre tid på administration af en database i det lokale miljø ved at overføre til cloudmiljøet, mens du stadig benytter eksisterende værktøjer, drivere, biblioteker og SDK'er.

Introduktion til NoSQL og dataoverførsel til cloudmiljøet

Få mere at vide om, hvordan du udvikler dine apps med ny fleksibilitet og skalerbarhed til håndtering af dine databasesystemer og diverse datatyper samt en clouddatabaseoverførsel for eksisterende NoSQL-arbejdsbelastninger. Få en teknisk oversigt over Azure Cosmos DB til udviklere, og få mere at vide om indbygget understøttelse af NoSQL i en globalt distribueret og meget skalerbar databasetjeneste med flere modeller.

Få mere at vide om Azure Cosmos DB til NoSQL-data

Få mere at vide