Hem Personliga finanser Hantera data i NoSQL - dummies

Hantera data i NoSQL - dummies

Innehållsförteckning:

Video: Rows Oriented Database versus Column Oriented Databases 2025

Video: Rows Oriented Database versus Column Oriented Databases 2025
Anonim

När du lyckats hantera nycklarna är du redo att utforma hur du lagrar data med NoSQL och se till att den är säker och alltid tillgänglig för arbetet du behöver göra.

Datatyper i viktiga värdebutiker

Viktiga butiker fungerar normalt som & ldquo; hinkar & rdquo; för binär data. Vissa databaser ger stark intern datatyping och till och med schema support. Andra ger helt enkelt praktiska hjälparfunktioner i sina klientdrivrutiner för serialisering av vanliga applikationsdatastrukturer till en nyckelvärdesbutik. Exempel är kartor, listor och sorterade uppsättningar.

Oracle NoSQL kan fungera i två lägen:

  • Enkel binär butik

  • Starkt strukturerat Avro schema stöd

Ett Avro schema är relaterat till ett relationsdatabasschema - verkställer en mycket stringent uppsättning av formatregler för JavaScript Object Notation (JSON) data lagrad i databasen, som illustreras här:

{användarnamn: & ldquo; afowler & rdquo;, sessionid: 13452673, sedan: 1408318745, tema: & ldquo; bluesky & rdquo;}

Du definierar ett Avro-schema med ett JSON-dokument. Detta är ett exempel på Avro-schemat för den lagrade data som visats tidigare:

{& ldquo; Typ & rdquo;: & ldquo; rekord & rdquo;, & ldquo; namespace & rdquo;: & ldquo; com. ex & rdquo;, & ldquo; namn & rdquo;: & ldquo; UserSession & rdquo;, & ldquo; fält & rdquo;: [{& ldquo; namn & rdquo;: & ldquo; användarnamn och rdquo;, & ldquo; Typ & rdquo;: [& ldquo; string & rdquo;, & rdquo; null & rdquo;]}, {& ldquo; namn & rdquo;: & ldquo; sessionid & rdquo;, & ldquo; Typ & rdquo;: & ldquo; int & rdquo;}, {& ldquo; namn & rdquo;: & ldquo; eftersom & rdquo;, & ldquo; Typ & rdquo;: & ldquo; lång & rdquo;}, {& ldquo; namn & rdquo;: & ldquo; tema & rdquo;, & ldquo; Typ & rdquo;: [& ldquo; string & rdquo;, & rdquo; null}]}}

Ett Avro-schema ger mycket starkt skrivning i databasen för när schemat är viktigt. I föregående exempel ser du strängdata, ett numeriskt sessions-ID, ett datum (millisekunder, sedan Unix Time Epox, som ett långt heltal) och en personaliseringsinställning för det tema som ska användas på webbplatsen.

Observera också att typ av användarnamn och tema har två alternativ - sträng och null, vilket är hur du instruerar Oracle NoSQL att nollvärden är tillåtna. Du kunde ha lämnat temat som en sträng och tillhandahöll en ytterligare konfigurationsparameter för & ldquo; default & rdquo;: & ldquo; Bluesky & rdquo;.

Andra NoSQL-databaser ger sekundära index på någon godtycklig egenskap med ett värde som har JSON-innehåll. Riak tillhandahåller till exempel sekundära index som baseras på dokumentpartitionering - i grunden indexeras en känd egenskap inom ett JSON-dokument med en typ.Detta möjliggör intervjufrågor (mindre än eller högre än) förutom enkla lika och inte lika jämförelser. Riak klarar av att tillhandahålla intervjufrågor utan ett stringent schema - bara enkel indexdefinition. Om data finns där läggs det till i indexet.

Replikera data

Lagring av flera kopior av samma data på andra servrar, eller till och med rack av servrar, hjälper till att säkerställa tillgängligheten av data om en server misslyckas. Serverfel händer huvudsakligen i samma kluster.

Du kan använda replika två huvudvägar:

  • Master-slave: Alla läser och skriver sker med mästaren. Slaver tar över och mottar endast förfrågningar om befälhavaren misslyckas.

Master-slave replikering används vanligtvis på ACID-kompatibla nyckelvärdesbutiker. För att möjliggöra maximal konsistens skrivs primäraffären till och alla replikor uppdateras innan transaktionen fullbordas. Denna mekanism kallas en tvåfas commit och skapar extra nätverk och behandlingstid på replikorna.

  • Master-master: Läser och skriver kan hända på alla noder som hanterar en nyckel. Det finns inget begrepp av en & ldquo; primär & rdquo; partition ägare.

Master-master-repliker är i regel ibland konsekventa, med klustret som utför en automatisk operation för att bestämma det senaste värdet för en nyckel och avlägsna äldre, vanliga värden.

I de flesta viktiga värdebutiker sker detta långsamt - vid läsningstid. Riak är undantaget här, eftersom det har en anti-entropitjänst som kontrollerar konsistens under normala operationer.

Versionsdata

För att aktivera automatisk konfliktlösning behöver du en mekanism för att indikera den senaste versionen av data. Eventuellt konsekventa viktiga värdebutiker uppnår konfliktlösning på olika sätt.

Riak använder en vektor-klockmekanism för att förutse vilken kopia som är den senaste. Andra viktiga värdebutiker använder enkla tidsstämplar för att indikera stalenhet. När konflikter inte kan lösas automatiskt skickas båda kopiorna av data till klienten. Konflikterande data som skickas till klienten kan uppstå i följande situation:

  1. Klient 1 skriver till replik A 'Adam: {likes: Cheese}'.

  2. Replica En kopia data till replika B.

  3. Klient 1 uppdaterar data på replik A till "Adam: {gillar: Ost, hatar: solljus} '.

    På den här tiden har replik A inte tillräckligt med tid för att kopiera de senaste data till replik B.

  4. Klient 2 uppdaterar data på replik B till 'Adam: {likes: Dogs, hates: kangaroos}'.

    Vid denna tidpunkt är replik A och replik B i konflikt och databasklustret kan inte automatiskt lösa skillnaderna.

En alternativ mekanism är att använda tidsstämplar och lita på att de anger de senaste uppgifterna. I en sådan situation är det sunt för applikationen att kontrollera att tidsstämplarna läser det senaste värdet innan du uppdaterar värdet.

De kontrollerar -kontrollen och ställer in -mekanismen, som i princip betyder 'Om den senaste versionen fortfarande är version 2, spara sedan min version 3'. Denna mekanism kallas ibland Read Match Update (RMU) eller Read Match Write (RMW). Denna mekanism är standardmekanismen som används av Oracle NoSQL, Redis, Riak och Voldemort.

Hantera data i NoSQL - dummies

Redaktörens val

Vad är en Java-karta? - dummies

Vad är en Java-karta? - dummies

Arrays och specialiserade listor gör det möjligt att utföra en fantastisk uppsättning uppgifter med Java. Det finns dock situationer där en Java-applikation behöver något som är mer relaterat till en databas, utan att egentligen ha allt databasbagage (som att behöva köpa en separat applikation). Till exempel kanske du vill kunna ...

Några få saker om Java Math - dummies

Några få saker om Java Math - dummies

Tro det eller inte, datorer - även de mest kraftfulla - Ha vissa begränsningar när det gäller att utföra matematiska beräkningar. Dessa begränsningar är vanligtvis obetydliga, men ibland slår de sig och biter på dig. Här är de saker du behöver se upp för när du gör matte i Java. Helhetsflöde Det grundläggande problemet ...

Vad är recursion i Java Programmering? - dummies

Vad är recursion i Java Programmering? - dummies

Rekursion är en grundläggande programmeringsteknik som du kan använda i Java, där en metod kallar sig för att lösa ett problem. En metod som använder denna teknik är rekursiv. Många programmeringsproblem kan lösas endast genom rekursion, och vissa problem som kan lösas med andra tekniker löses bättre genom rekursion. En av ...

Redaktörens val

4 Måste-inkludera i din blogg sidobardesign - dummies

4 Måste-inkludera i din blogg sidobardesign - dummies

Din bloggens sidofält är viktig fastighet som bör innehålla de element du vill ha mest. När du utformar din blogg sidofält kan du dra från en nästan oändlig lista över sidospårelement. Genom att välja noggrant vad som ska inkluderas (och vad som inte ska inkluderas) kan du ställa in din blogg från andra.

5 Användbara Wordpress Plugins - dummies

5 Användbara Wordpress Plugins - dummies

Om du bloggar på en självhävd plattform med WordPress-programvara, är det dags att anpassa din blogg med plug-ins - programvara som kan "anslutas" till din befintliga WordPress bloggprogramvara. Plug-ins gör det möjligt för dig att göra allt från funktionsbildspel i dina blogginlägg för att ansluta sociala medier till din webbplats. Här är fem användbara ...

7 Sätt att erövra Writer's Block som en Blogger - dummies

7 Sätt att erövra Writer's Block som en Blogger - dummies

Varje bloggare möter författarens block i ett tid eller annan. Om du är den typ av bloggare som sköter innehåll varje dag, kan författarens block vara stäverande. Kan du inte ta en paus för att få ditt skrivande mojo tillbaka? Prova en (eller flera) av dessa sju sätt att slå författarens block för att få dig tillbaka ...

Redaktörens val

10 Stora elektronikkomponentkällor - dummies

10 Stora elektronikkomponentkällor - dummies

Letar du efter några bra källor till dina elektroniska delar? Denna lista ger dig några fleråriga favoriter, både inom och utanför Nordamerika. Denna lista är inte uttömmande. Du hittar bokstavligen tusentals specialutbud för ny och begagnad elektronik. Plus, Amazon och eBay ger virtuella marknadsplatser för alla sorters säljare - ...

Elektronik Basics: Resistance - dummies

Elektronik Basics: Resistance - dummies

I elektronikvärlden är motståndet inte meningslöst. Faktum är att motstånd kan vara mycket användbart. Utan motstånd skulle elektronik inte vara möjligt. Elektronik handlar om att manipulera strömmen av ström, och ett av de mest grundläggande sätten att manipulera strömmen är att minska det genom resistans. Utan motstånd strömmar strömmen oreglerad och där ...

Digital elektronik: Så här installerar du BASIC Stamp Editor och Anslut till Stämpeldummorna

Digital elektronik: Så här installerar du BASIC Stamp Editor och Anslut till Stämpeldummorna

För att berätta för BASIC Stamp vad du vill göra i ditt digitala elektronikprojekt måste du programmera det. BASIC Stamp Windows Editor är den programvara som du använder på din dator för att skapa program som kan laddas ner till en BASIC Stamp-mikrokontroller. Denna programvara är tillgänglig gratis från Parallax webbplats. ...