Zephyrnet-logo

Sleutelwaardedatabases gedemystificeerd – DATAVERSITY

Datum:

sleutelwaardedatabasessleutelwaardedatabases

In 1966 werd een DEC PDP-7-computer zonder enige programmering afgeleverd bij het Massachusetts General Hospital. Het ziekenhuis had geïnvesteerd in een computer, maar kon deze niet gebruiken. Op dat moment waren er heel weinig software-opties, besturingssystemen of database-ondersteuning. Het ziekenhuis had echter wel toegang tot het Massachusetts Institute of Technology (MIT), dat aan de overkant van de rivier lag. Het MIT-team begon helemaal opnieuw en ging verder met het ontwerpen van “BOMMEN” (Massachusetts Utility Multi-Programming System) als een operationeel systeem voor meerdere gebruikers, een database en een taal, alles in één. MUMPS gebruikte een sleutelwaardearchief en verschillende andere functies die later in NoSQL-datastores werden opgenomen. Het gebruik en de focus van sleutelwaardestructuren evolueerden geleidelijk naar eenvoudige NoSQL-sleutelwaardedatabases.

Dit type database slaat gegevens op als een groep sleutel-waardeparen, die bestaan ​​uit twee gegevensitems die aan elkaar zijn gekoppeld. De link tussen de items is een “sleutel” (zoals “bestandsnaam”), die fungeert als identificatie voor een item binnen de gegevens, en de “waarde” die de gegevens (of inhoud) is die zijn geïdentificeerd.

Sleutel-waardedatabases worden vaak als de eenvoudigste van allemaal beschouwd NoSQL-databases. Deze eenvoud maakt sleutelwaardewinkels en databases snel, gebruiksvriendelijk, draagbaar, schaalbaar en flexibel. De oorspronkelijke sleutel-waardesystemen waren echter niet ontworpen om onderzoekers in staat te stellen de gegevens die uit een verzoek terugkeren, te filteren of te controleren; ze bevatten geen zoekmachine. Dat verandert naarmate mensen hun sleutelwaardedatabases aanpassen.

Redis introduceerde zijn sleutelwaardedatabase in 2009:

“De oorspronkelijke bedoeling van Redis (of welke sleutelwaardewinkel dan ook) was om voor elk afzonderlijk stukje gegevens een specifieke sleutel of identificatie te hebben. Redis breidde dit concept snel uit met gegevenstypen, waarbij een enkele sleutel kon verwijzen naar meerdere (zelfs miljoenen) stukjes gegevens. Toen er modules in het ecosysteem kwamen, werd het idee van een sleutel nog verder uitgebreid, omdat een enkel stuk gegevens nu meerdere sleutels kon omvatten (voor een RediSearch-index bijvoorbeeld). Wanneer we dus vragen of Redis een sleutel/waarde-archief is, antwoorden we meestal met 'het stamt af van de sleutel/waarde-regel van databases', maar merk op dat het op dit moment moeilijk is om Redis alleen als een sleutel-waarde-archief te rechtvaardigen. ”

Hoewel veel NoSQL-databases nog steeds sleutelwaardewinkels bevatten, kunnen sleutels ook worden gebruikt in relationele databases. De primaire sleutel die voor relationele tabellen wordt gebruikt, identificeert op unieke wijze elke record in de tabel. Sommige sleutels kunnen worden gebruikt om gegevens die in de ene tabel zijn opgeslagen, te verbinden (of samen te voegen) met de gegevens in andere tabellen. Het opslaan van een primaire sleutel in een rij in een andere tabel staat bekend als een externe sleutel. Er zijn primaire sleutels en externe sleutels fouten die vermeden moeten worden

Hoe sleutelwaardedatabases werken

Sleutelwaardedatabases stellen geen specifiek schema vast. Traditionele relationele databases definiëren hun structuren binnen de database vooraf, met behulp van tabellen die velden met goed gedefinieerde gegevenstypen bevatten. Sleutel-waardesystemen daarentegen behandelen gegevens als een enkele verzameling, waarbij de sleutel een willekeurige reeks vertegenwoordigt, bijvoorbeeld een bestandsnaam, hash of Uniform Resource Identifier (URI). Sleutelwaarde-winkels gebruiken over het algemeen veel minder geheugen terwijl dezelfde hoeveelheid gegevens worden opgeslagen en opgeslagen, waardoor de prestaties voor bepaalde soorten werklasten toenemen.

“Zuivere” sleutelwaardedatabases gebruiken geen zoektaal, maar bieden wel een manier om gegevens op te halen, op te slaan en te verwijderen met behulp van zeer eenvoudige opdrachten krijgen, zetten, en verwijderen. (Gewijzigde sleutelwaardedatabases kunnen zoekopdrachten in de volledige tekst bevatten.) Het ophalen van gegevens vereist een directe aanvraagmethode voor communicatie met het gegevensbestand. Er is geen zoekfunctie en er is ook geen zoekmachine. Als de sleutel niet bekend is, is er geen manier om deze te vinden.

Gebruik van sleutelwaardedatabases

Terwijl relationele databases betalingstransacties redelijk goed afhandelen, hebben ze moeite met het verwerken van grote hoeveelheden gelijktijdige transacties. NoSQL-sleutelwaardedatabases kunnen echter naar behoefte worden geschaald en kunnen extreem hoge verkeersvolumes per seconde verwerken, waardoor service wordt geboden aan duizenden gelijktijdige gebruikers.

NoSQL-databases met sleutelwaarde worden geleverd met ingebouwde redundantie, waardoor ze zonder problemen verloren opslagknooppunten kunnen verwerken. (Soms raakt een ‘winkelwagentje’ bijvoorbeeld artikelen kwijt.) Sleutelwaarde-winkels verwerken grote hoeveelheden gegevens en een consistente stroom van lees-/schrijfbewerkingen voor:

  • Sessiebeheer: Gebruikers de mogelijkheid bieden om sessies op te slaan en te herstellen.
  • Gebruikersvoorkeuren en profielopslag: Persoonlijke gegevens over specifieke gebruikers.
  • Product aanbevelingen: Gepersonaliseerde items waarin een klant mogelijk geïnteresseerd is.
  • Coupons, aangepaste advertenties: Aangepast en in realtime bekeken door klanten.
  • Fungeert als cache voor regelmatig bekeken gegevens die zelden worden bijgewerkt.

Sleutelwaardedatabases worden vaak gebruikt voor sessiebeheer in webapplicaties. Ze doen het goed in het beheren van de sessie-informatie voor alle nieuwe gebruikersapps op smartphones en andere apparaten.

Sleutel/waarde-databases kunnen ook worden gebruikt voor grootschalige online games voor meerdere spelers, waarbij de sessie van elke speler wordt beheerd.

Ze
zijn erg goed in het beheren van winkelwagentjes voor online kopers – tot het moment van betaling.
Betalingstransacties en eventuele omzetboekingen werken beter met een relationeel systeem
database.

Als een van de eenvoudigste NoSQL-databases kunnen sleutelwaardedatabases eenvoudig worden geschaald voor doeleinden van big data-onderzoek, terwijl ze tegelijkertijd meerdere gebruikers bedienen.

Bedrijven die producten via internet verkopen, hebben vaak moeite met de verschillende volumes van het koopseizoen vóór Kerstmis ten opzichte van de rest van het jaar. De kwestie gaat over het betalen voor een infrastructuur die is aangepast voor de kerstaankooppiek (en het betalen voor die infrastructuur voor de rest van het jaar) of het risico nemen dat je de kerstdrukte niet aankunt (en urenlang crasht). Ervan uitgaande dat een relationele database het hele jaar door normale diensten afhandelt, kan het huren van een Cloud service met een sleutelwaardedatabase voor de kerstdrukte biedt een efficiënte, relatief goedkope oplossing.

De juiste database voor uw organisatie kiezen

Verschillende sleutelwaardedatabases gebruiken verschillende technieken om het basissleutelwaardemodel te verbeteren. Sommigen slaan al hun gegevens op RAM, terwijl anderen werken met een combinatie van SSD's (Solid State Drives) en RAM. Weer anderen combineren ondersteuning voor roterende schijven en RAM.

Deze databases zijn ontworpen om in te spelen op de nieuwe toepassingen die beschikbaar zijn gekomen voor smartphones en andere apparaten. Organisaties moeten vermijden dat al hun relationele databases worden vervangen door NoSQL, vooral voor financiële toepassingen. Hieronder vindt u enkele populaire sleutelwaardedatabases:

  • Aerospike: Een open-source NoSQL-database die gebruikmaakt van een voor flash geoptimaliseerd geheugen.
  • Apache Cassandra: Een gedistribueerd, gratis, open source NoSQL-databasebeheersysteem met brede kolommen.
  • Amazon DynamoDB: een volledig beheerde eigen NoSQL-databaseservice die wordt aangeboden door Amazon.
  • Berkley DB: Een eenvoudige, krachtige, ingebedde, open-source databaseopslagbibliotheek.
  • Bankstel: Het is ontworpen voor bedrijfskritische toepassingen en biedt zoekopdrachten in volledige tekst, op SQL gebaseerde zoekopdrachten en analyses.
  • memcached: Versnelt websites door gegevens en objecten in het RAM-geheugen op te slaan, waardoor het aantal keren dat een externe gegevensbron moet worden gelezen, wordt verminderd. Gratis en open source.
  • Riak: Snel, flexibel en schaalbaar, het is goed voor het ontwikkelen van applicaties en het werken met andere databases en applicaties.
  • Redis: Een database, berichtenmakelaar en geheugencache. Het ondersteunt hashes, strings, lijsten, bitmaps en HyperLogLog.

Over het algemeen het geheim
sleutelwaardedatabases ligt in hun eenvoud en de resulterende snelheid
Wordt beschikbaar. Voor het ophalen van gegevens is een direct verzoek (sleutel) voor de
object in het geheugen (waarde), en er is geen querytaal. De gegevens kunnen zijn
opgeslagen op gedistribueerde systemen zonder zorgen over waar indexen zich bevinden,
het gegevensvolume of netwerkvertragingen. Sommige sleutelwaardedatabases gebruiken flash
opslag- en secundaire indexen in een poging om de grenzen van sleutelwaardetechnologie te verleggen.

Een sleutel-waardedatabase is beide
eenvoudig te bouwen en te schalen. Het biedt doorgaans uitstekende prestaties en kan
worden geoptimaliseerd om aan de behoeften van een organisatie te voldoen. Wanneer een sleutelwaardedatabase dat is
aangepast met nieuwe toepassingen, is de kans groter dat het systeem dat zal doen
langzamer werken.

Afbeelding gebruikt onder licentie van Shutterstock.com

spot_img

Laatste intelligentie

spot_img