Nyckelvärdedatabaser avmystifierade - DATAVERSITET

Nyckelvärdedatabaser avmystifierade – DATAVERSITET

Källnod: 2943225
nyckelvärdesdatabasernyckelvärdesdatabaser

1966 levererades en DEC PDP-7-dator till Massachusetts General Hospital utan någon programmering. Sjukhuset hade investerat i en dator men hade inget sätt att köra den. Vid den här tiden fanns det mycket lite i vägen för programvarualternativ, operativsystem eller databasstöd. Sjukhuset hade dock tillgång till Massachusetts Institute of Technology (MIT), som låg tvärs över floden. MIT-teamet började från början och fortsatte med att designa "PÅSSJUKA” (Massachusetts Utility Multi-Programming System) som ett fleranvändaroperativsystem, en databas och ett språk, allt i ett. MUMPS använde ett nyckel-värdelager och flera andra funktioner som senare införlivades i NoSQL-datalager. Användningen och fokuseringen av nyckel-värde-strukturer utvecklades gradvis till enkla NoSQL-nyckel-värde-databaser.

Den här typen av databas sparar data som en grupp nyckel-värdepar, som består av två dataobjekt som är länkade. Länken mellan objekten är en "nyckel" (som "filnamn"), som fungerar som en identifierare för ett objekt i datan, och "värdet" som är den data (eller innehållet) som har identifierats.

Nyckelvärdedatabaser anses ofta vara den enklaste av de NoSQL databaser. Denna enkelhet gör butiker och databaser med nyckelvärden snabba, användarvänliga, portabla, skalbara och flexibla. De ursprungliga nyckel-värdesystemen var dock inte utformade för att tillåta forskare att filtrera eller kontrollera data som returneras från en förfrågan – de inkluderade inte en sökmotor. Det förändras när människor ändrar sina nyckel-värdesdatabaser.

Redis introducerade sin nyckel-värdedatabas i 2009:

"Den ursprungliga avsikten med Redis (eller något nyckel-värdelager) var att ha en speciell nyckel, eller identifierare, för varje enskild databit. Redis utökade snabbt detta koncept med datatyper, där en enda nyckel kunde referera till flera (även miljontals) datastycken. När moduler kom till ekosystemet sträcktes idén om en nyckel ännu längre eftersom en enda bit data nu kunde sträcka sig över flera nycklar (för ett RediSearch-index, till exempel). Så på frågan om Redis är en nyckel-värde-butik, svarar vi vanligtvis med "det härstammar från nyckel-värde-raden av databaser", men notera att det vid det här laget är svårt att motivera Redis som en nyckel-värde-butik ensam. ”

Även om många NoSQL-databaser fortsätter att innehålla nyckel-värdelager, kan nycklar också användas i relationsdatabaser. Den primära nyckeln som används för relationstabeller identifierar unikt varje post i tabellen. Vissa nycklar kan användas för att koppla (eller sammanfoga) data som är lagrade i en tabell till data i andra tabeller. Att lagra en primärnyckel på en rad i en annan tabell kallas en främmande nyckel. Det finns primärnyckel och främmande nyckel fel som bör undvikas

Hur nyckel-värdedatabaser fungerar

Nyckelvärdedatabaser upprättar inte ett specifikt schema. Traditionella relationsdatabaser fördefinierar sina strukturer i databasen, med hjälp av tabeller som innehåller fält med väldefinierade datatyper. Nyckel-värde-system, å andra sidan, behandlar data som en enda samling med nyckeln som representerar en godtycklig sträng – till exempel ett filnamn, hash eller enhetlig resursidentifierare (URI). Nyckel-värde butiker använder i allmänhet mycket mindre minne samtidigt som de sparar och lagrar samma mängd data, vilket i sin tur ökar prestandan för vissa typer av arbetsbelastningar.

"Rena" nyckel-värdesdatabaser använder inte ett frågespråk, men de erbjuder ett sätt att hämta, spara och radera data genom att använda de mycket enkla kommandona få, sätta, och radera. (Modifierade nyckel-värdedatabaser kan inkludera fulltextsökningar.) Att hämta data kräver en direkt begäranmetod för att kommunicera med datafilen. Det finns ingen sökning, inte heller en sökmotor. Om nyckeln inte är känd, finns det inget sätt att hitta den.

Användning av nyckel-värdedatabaser

Medan relationella databaser hanterar betalningstransaktioner ganska bra, de kämpar för att hantera stora volymer av samtidiga transaktioner. NoSQL-nyckel-värdedatabaser kan dock skalas efter behov och hantera extremt höga trafikvolymer per sekund, vilket ger service åt tusentals samtidiga användare.

Nyckelvärde NoSQL-databaser kommer med inbyggd redundans, vilket gör att de kan hantera förlorade lagringsnoder utan problem. (Ibland, till exempel, kommer en "varukorg" att förlora artiklar.) Nyckel-värde-lager behandlar stora mängder data och ett konsekvent flöde av läs-/skrivoperationer för:

  • Sessionshantering: Erbjuder användare möjligheten att spara och återställa sessioner.
  • Användarpreferenser och profilbutiker: Personuppgifter om specifika användare.
  • Produktrekommendationer: Skräddarsydda varor som en kund kan vara intresserad av.
  • Kuponger, anpassade annonser: Anpassad och sedd av kunder i realtid.
  • Fungerar som en cache för regelbundet visade data som sällan uppdateras.

Nyckelvärdedatabaser används ofta för sessionshantering i webbapplikationer. De är bra på att hantera sessionens information för alla nya användarappar på smartphones och andra enheter.

Nyckelvärdesdatabaser kan också användas för massiva onlinespel för flera spelare och hanterar varje spelares session.

De
är mycket bra på att hantera kundvagnar för onlineköpare – fram till betalningstid.
Betalningstransaktioner och eventuella intäktsbokningar fungerar bättre med en relation
databas.

Som en av de enklaste NoSQL-databaserna kan nyckel-värde-databaser lätt skalas för syften med big data-forskning, samtidigt som de betjänar flera användare samtidigt.

Företag som säljer produkter över internet kämpar ofta med de olika volymerna av köpsäsongen före jul jämfört med resten av året. Frågan handlar om att betala för en infrastruktur skalad för julköpstoppen (och betala för den infrastrukturen för resten av året) eller att ta risken att inte klara av julruschen (och krascha i flera timmar). Förutsatt att en relationsdatabas hanterar normala året-runt-tjänster, hyr en molntjänst med en nyckel-värdesdatabas för julruschen ger en effektiv, relativt billig lösning.

Att välja rätt databas för din organisation

Olika nyckel-värde-databaser använder olika tekniker för att förbättra den grundläggande nyckel-värde-modellen. Vissa lagrar all sin data i RAM, medan andra arbetar med en kombination av SSD (solid state-enheter) och RAM. Ytterligare andra kombinerar stöd för roterande diskar och RAM.

Dessa databaser har utformats för att svara på de nya applikationer som har blivit tillgängliga för smartphones och andra enheter. Organisationer bör undvika att ersätta alla sina relationsdatabaser med NoSQL, särskilt för finansiella applikationer. Några populära nyckel-värde-databaser listas nedan:

  • Aerospike: En NoSQL-databas med öppen källkod som använder ett flash-optimerat minne.
  • Apache Cassandra: Ett distribuerat, gratis, öppen källkod, butik med breda kolumner, NoSQL-databashanteringssystem.
  • Amazon Dynamo DB: En helt hanterad egen NoSQL-databastjänst som erbjuds av Amazon.
  • Berkeley db: Ett grundläggande, högpresterande, inbäddat databaslagringsbibliotek med öppen källkod.
  • Soffa: Designad för affärskritiska applikationer, ger den fulltextsökningar, SQL-baserade frågor och analyser.
  • memcached: Snabbar upp webbplatser genom att cachelagra data och objekt i RAM för att minska antalet gånger en extern datakälla måste läsas. Gratis och öppen källkod.
  • Riak: Snabb, flexibel och skalbar, den är bra för att utveckla applikationer och arbeta med andra databaser och applikationer.
  • Redis: En databas, meddelandeförmedlare och minnescache. Den stöder hash, strängar, listor, bitmappar och HyperLogLog.

Generellt sett, hemligheten
till nyckel-värde databaser ligger i deras enkelhet och den resulterande hastigheten som
blir tillgänglig. Att hämta data kräver en direkt begäran (nyckel) för
objekt i minnet (värde), och det finns inget frågespråk. Uppgifterna kan vara
lagras på distribuerade system utan att oroa dig för var indexen finns,
datavolymen eller nätverksnedgångar. Vissa nyckel-värde-databaser använder flash
lagring och sekundära index i ett försök att tänja på gränserna för nyckel-värde-teknologi.

En nyckel-värde-databas är båda
lätt att bygga och skala. Det ger vanligtvis utmärkt prestanda och kan
optimeras för att passa en organisations behov. När en nyckel-värde databas är
modifierad med nya applikationer, finns det en ökad chans att systemet kommer att göra det
arbeta långsammare.

Bilden används under licens från Shutterstock.com

Tidsstämpel:

Mer från DATAVERSITET