NoSQL-databaser

En översikt för att komma igång

Vad är NoSQL-databaser?

NoSQL-databaser kallas även ”icke-relationella”, ”NoSQL DB” och ”icke-SQL” för att framhäva det faktum att de kan hantera enorma volymer snabbt föränderliga, ostrukturerade data på andra sätt än en relationsdatabas (SQL) med rader och tabeller.

NoSQL-tekniker har funnits sedan 1960-talet, med olika benämningar, men har fått ett uppsving i och med ett förändrat landskap där utvecklare måste anpassa sig för att hantera de stora volymer och olika typer av data som genereras från molnet, mobila enheter, sociala medier och stordata.

Nya data och datatyper genereras i en rasande fart – från populära tweets av kändisar till livsavgörande information i elektroniska patientjournaler. NoSQL-databaser har utvecklats för att hjälpa utvecklare att snabbt skapa databassystem för lagring av ny information och lättillgänglig sökning, konsolidering och analys.

Fördelarna med NoSQL-databaser

Med NoSQL-databaser blir det enklare för IT-experter och utvecklare att hantera den aldrig sinande strömmen av nya datatyper och modeller. Databaserna är extremt effektiva på att hantera oförutsägbara data – ofta med blixtsnabb frågekörning – och förenklar databasmigreringen av befintliga NoSQL-arbetsbelastningar till molnet.

Smidig utveckling

Med möjligheten att svara på oväntade händelser lämpar sig NoSQL-databaser för frekventa programuppdateringar och kan bidra till snabbare och mer flexibel apputveckling.

Hantera data med hög flexibilitet

Med NoSQL har utvecklare stor frihet och flexibilitet att snabbt anpassa både scheman och frågor efter aktuella databehov. När information lagras som en aggregering blir det enklare att snabbt iterera förbättringar, utan föregående schemaarbete.

Skalning efter behov

NoSQL-databaser har intressanta driftfördelar och kostnadsbesparingar med möjligheten att skala ut horisontellt – eller att lägga till mindre kostsamma servrar utan krav på uppgradering. De kan skalas för att hantera större mängder data eller lagra en enskild, stor databas med kluster av servrar som kan distribueras med stor flexibilitet.

Typer av datamodeller med NoSQL-databaser

De flesta icke-relationella databaser med höga prestanda kan även hantera mycket strukturerade data, och är inte bara begränsade till fasta datamodeller som relationsdatabaser (SQL).

De fyra vanligaste typerna av NoSQL-databaser är:

Nyckelvärde

Nyckelvärde lagrar nyckel/värde-par med hjälp av en hash-tabell. Nyckel/värde-typer är bäst när en nyckel är känd och nyckelns associerade värde är okänt.

Dokument

Dokumentdatabaser utökar begreppet med nyckel/värde-databaser genom att ordna in hela dokument i grupper kallade samlingar. De har stöd för kapslade nyckel/värde-par och kan hantera frågor med alla attribut i ett dokument.

Kolumnbaserade

Kolumn-, bredkolumn- och kolumnseriedatabaser lagrar effektivt data och frågor över rader med utspridda data och passar bra vid frågekörning mot specifika kolumner i databasen.

Graph

Grafdatabaser använder en nod- och gränsmodell som representerar sammankopplade data, t.ex. relationer mellan personer i sociala nätverk, och förenklar lagringen och navigeringen i komplexa relationer.

Välj mellan relationella (SQL) databaser och icke-relationella (NoSQL) databaser

Inte tillgänglig NoSQL eller icke-relationella SQL eller relationella
Passar bäst för:
  • Hantering av stora, orelaterade, obestämda eller snabbt föränderliga data.
  • Schemaoberoende data eller appstyrda scheman.
  • Appar där prestanda och tillgänglighet har högre prioritet än hög konsekvens.
  • Appar som alltid är aktiva och tillgängliga för användare i hela världen.
  • Hantering av data som är relationell och som har logiska och diskreta krav som kan identifieras i förväg.
  • Schema som måste hanteras och synkroniseras mellan appen och databasen.
  • Äldre system byggda för relationella strukturer.
  • Appar som kräver komplex frågekörning eller transaktioner med flera rader.
Scenarier:
  • Mobilappar.
  • Analys i realtid.
  • Innehållshantering.
  • Användaranpassning.
  • IoT-appar.
  • Databasmigrering.
  • Redovisnings-, ekonomi- och banksystem.
  • Lagerhanteringssystem.
  • Transaktionshanteringssystem.
Skala:
  • Skalar data horisontellt genom horisontell partitionering mellan servrar.
  • Skalar data vertikalt genom att öka serverbelastningen.
Datamodell:
  • Databastyper: nyckelvärde-, dokument-, kolumn- och grafdatabaser.
  • Lagrar data beroende på databastyp.
  • Databastyp: tabeller med rader, grupperade i relationer.
  • Använder SQL (Structured Query Language).
  • Lagrar data som rader i tabeller. Relaterade data lagras separat och sammanfogas i komplexa frågor.
Inte tillgänglig Lär dig mer om icke-relationella datamodeller Lär dig mer om relationella datamodeller

Hur utvärderar jag en NoSQL-databas?

Välj en datamodell

Många NoSQL-databaser fungerar som aggregat – en samling data som du interagerar med som en enhet. Det innebär att de passar betydligt bättre för moderna, objektorienterade programmeringsspråk. När du väljer en NoSQL-databas vill du antagligen börja med att välja en datamodell, och sedan utvärdera de NoSQL-databaser som kan användas med modellen, samt de programmeringsspråk och SDK:er som respektive databas stöder.

Läs mer om programmeringsmodeller och API:er

Väg in nackdelarna med konsekvens

Med de flesta NoSQL-databaser kan du välja från endera ände av ett konsekvensspektrum – från mycket hög konsekvens, där du får allra senaste data, men kan behöva vänta, till eventuell konsekvens där du får snabba svar, men data kan vara inaktuella. Det finns många NoSQL-databaser som stöder andra konsekvensnivåer, som normalt ligger någonstans mittemellan dessa extremer. Välj den NoSQL-databas som ger bäst flexibilitet och kontroll i konsekvensmodeller som passar dina behov.

Lär dig mer om konsekvens, tillgänglighet och partitionstolerans

Tänk igenom moln- och databasmigreringen

NoSQL-databasernas stora distributionsmöjligheter och horisontella skalbarhet gör dem idealiska för molnbaserad databehandling. Men det finns också många NoSQL-databassystem som är utformade att köras lokalt eller i hybridscenarier.

Tänk på följande när du utvärderar dina molnalternativ:

  • Datamodeller som stöds. Har molnleverantören stöd för alla datamodeller som du vill använda?
  • Distribution och åtgärder. Hur enkelt kan du distribuera din databas och replikera den till andra regioner om det skulle behövas?
  • Geografisk närvaro. Var finns molnleverantörens datacenter? Kan du placera dina data där du vill? Hur säkerställer du efterlevnaden med globala bestämmelser om datasekretess, t.ex. GDPR inom EU?
  • Enkel replikering. Hur ser processen ut för att replikera databasen till ett annat geografiskt område?
  • Skalbarhet. Kan NoSQL-databasresurserna garantera adekvata prestanda och skalningsmöjligheter som låter dig växa? Kan du skala upp, ned eller ut?
  • Hög tillgänglighet. Vad händer om ett oväntat fel skulle inträffa? Har tjänsten inbyggd hög tillgänglighet och haveriberedskap?
  • Tjänstnivåer. Vilka garantier erbjuds vad gäller tillgänglighet och svarstider?
  • Ekosystem. Är databasen nära integrerad med resten av molnplattformen och kan den snabbt inkorporeras för att skapa nya lösningar?

Olika sätt att använda NoSQL-databassystem

Datamodeller baserade på NoSQL passar perfekt för företag som vill utveckla mobil-, webb-, IoT- och spelappar som kräver flexibla, skalbara, högeffektiva och mycket funktionella databaser för att leverera överlägsna användarupplevelser – oavsett om det gäller spel, e-handel, stordataanalys eller realtidsappar på webben.

Distribuera dina appar globalt

Få fler användare, oavsett var de finns, med bättre apprestanda med hög tillgänglighet och haveriberedskap.

Erbjud kundupplevelser i realtid

Leverera personanpassning, rekommendationer i realtid och förbättrad användarupplevelse med NoSQL-databaserna.

Hantera olika typer av IoT-arbetsbelastningar

Skala direkt och elastiskt för att hantera oavbruten datainmatning vid hög skrivbelastning med optimerade frågeprestanda för IoT-appar.

Förbättra dina e-handelsappar

Med flexibla scheman och hierarkiska data passar NoSQL perfekt för att lagra data i produktkataloger där olika produkter har olika attribut.

Engagera spelare med nytt innehåll

Leverera anpassade upplevelser med innehåll som inbäddad spelstatistik, integrering av sociala medier och resultattavlor. Korta svarstider och elastisk skalbarhet ger stöd för trafiktoppar under spellanseringar och turneringar.

Skapa serverlösa appar

Skala sömlöst datainmatning, dataflöde och datavolymer med direkt tillgänglighet, automatisk indexering, stabil inmatningshastighet och frågeprestanda.

Få bättre insikter från stordata

Implementera maskininlärning i stor skala för stora datavolymer och få ut mer från dina analyser.

Migrera befintliga NoSQL-arbetsbelastningar till molnet

Ägna mindre tid åt att hantera en lokal databas genom att migrera till molnet, och fortsätt att använda dina befintliga verktyg, drivrutiner, bibliotek och SDK:er.

Kom igång med NoSQL och databasmigrering till molnet

Lär dig hur du utvecklar appar som ger hög elasticitet, flexibilitet och skalbarhet i hanteringen av databassystem och olika typer av data, liksom smidig databasmigrering av befintliga NoSQL-arbetsbelastningar till molnet. Få en teknisk översikt över Azure Cosmos DB för utvecklare och lär dig mer om det inbyggda stödet för NoSQL i en globalt distribuerad, extremt skalbar databastjänst för flera datamodeller.

Lär dig mer om Azure Cosmos DB för NoSQL-data

Läs mer