NoSQL-databas – Vad är NoSQL?
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
NoSQL eller icke-relationella | SQL eller relationella | |
---|---|---|
PASSAR BÄST FÖR: |
|
|
SCENARIER: |
|
|
SKALA: |
|
|
DATAMODELL: |
|
|
|
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.
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.
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.