Den simpleste af NoSQL-databaser (ikke kun SQL) I et stort datamiljø er de der anvender nøgleværdiparet (KVP) -modellen. KVP-databaser kræver ikke et skema (som RDBMS'er) og giver stor fleksibilitet og skalerbarhed.
KVP-databaser tilbyder ikke ACID (Atomicity, Consistency, Isolation, Durability) og kræver, at implementatorer tænker på datapladsering, replikering og fejltolerance, da de ikke udtrykkeligt styres af teknologien selv. KVP-databaser er ikke skrevet. Som et resultat lagres de fleste data som strenge.
Nøgle | Værdi |
---|---|
Farve | Blå |
Libation | Øl |
Helt | Soldat |
Dette er et meget forenklet sæt nøgler og værdier. I en stor dataimplementation vil mange individer have forskellige ideer om farver, libations og helte.
Nøgle | Værdi |
---|---|
FacebookUser12345_Color | Rød |
TwitterUser67890_Color | Brunish |
FoursquareUser45678_Libation | "Hvidvin" |
Google + User24356_Libation | "Tørret martini med et twist " |
LinkedInUser87654 < | " Top sales performer " |
Da antallet af brugere øges, kan du holde øje med nøjagtige nøgler, og relaterede værdier kan være udfordrende. Hvis du har brug for at holde øje med meningerne fra millioner af brugere, kan antallet af nøgleværdipar, der er forbundet med dem, øges eksponentielt. Hvis du ikke ønsker at begrænse valg for værdierne, giver den generiske strengrepræsentation af KVP fleksibilitet og læsbarhed.
Du kan få brug for yderligere hjælp til at organisere data i en nøgledata database. De fleste tilbyder muligheden for at samle nøgler (og deres beslægtede værdier) i en samling. Samlinger kan bestå af et hvilket som helst antal nøgleværdipar og kræver ikke eksklusiv kontrol af de enkelte KVP-elementer.
En meget udbredt open source-nøgleværdipar database kaldes Riak. Den er udviklet og understøttet af et firma kaldet Basho Technologies og er gjort tilgængeligt under Apache Software License v2. 0.
Riak er en meget hurtig og skalerbar implementering af en nøgledata database. Det understøtter et højt volumen miljø med hurtig skiftende data, fordi den er letvægt. Riak er særligt effektiv i real-time analyse af handel med finansielle tjenesteydelser. Det bruger "spande" som en organiseringsmekanisme til samlinger af nøgler og værdier.
Riak implementeringer er klynger af fysiske eller virtuelle noder arrangeret i peer-to-peer mode. Ingen master node eksisterer, så klyngen er elastisk og meget skalerbar.Alle data og operationer er fordelt på tværs af klyngen. Større klynge udfører bedre og hurtigere end klynger med færre noder. Kommunikation i klyngen implementeres via en speciel protokol kaldet Gossip. Sladder gemmer statusoplysninger om klyngen og deler oplysninger om skovle.
Riak har mange funktioner og er en del af et økosystem, der består af følgende:
-
Parallelbehandling: Ved hjælp af MapReduce understøtter Riak en evne til at dekomponere og omsætte forespørgsler på tværs af klyngen til real-time analyse og beregning.
-
Links og link walking: Riak kan konstrueres til at efterligne en grafdatabase ved brug af links. Et link kan betragtes som en envejsforbindelse mellem nøgleværdipar. Walking (følger) linkene vil give et kort over forhold mellem nøgleværdipar.
-
Søg: Riak Search har en fejltolerant, distribueret fuldtekstsøgningskapacitet. Skovle kan indekseres for hurtig opløsning af værdi til nøgler.
-
Sekundære indekser: Udviklere kan tagge værdier med en eller flere nøglefeltværdier. Ansøgningen kan derefter søge indekset og returnere en liste over matchende nøgler. Dette kan være meget nyttigt i store data implementeringer, fordi operationen er atomisk og vil understøtte realtidsadfærd.
Riak-implementeringer passer bedst til
-
Brugerdata til sociale netværk, fællesskaber eller spil
-
Højt volumen, medierig dataindsamling og lagring
-
Cachelag for tilslutning af RDBMS- og NoSQL-databaser
-
Mobile applikationer, der kræver fleksibilitet og pålidelighed