Video: Web Apps of the Future with React by Neel Mehta 2024
Verreweg de eenvoudigste van de NoSQL-databases (niet alleen SQL) in een big data-omgeving zijn die met het sleutel / waarde-paar (KVP) -model. KVP-databases vereisen geen schema (zoals RDBMS) en bieden grote flexibiliteit en schaalbaarheid.
KVP-databases bieden geen ACID-capaciteit (Atomicity, Consistency, Isolation, Durability) en vereisen implementeerders om na te denken over dataplaatsing, replicatie en fouttolerantie, aangezien ze niet uitdrukkelijk worden gecontroleerd door de technologie zelf. KVP-databases worden niet getypt. Als gevolg hiervan worden de meeste gegevens opgeslagen als tekenreeksen.
Sleutel | Waarde |
---|---|
Kleur | Blauw |
Libatie | Bier |
Held | Soldaat |
Dit is een zeer vereenvoudigde reeks toetsen en waarden. In een big data-implementatie zullen veel mensen verschillende ideeën hebben over kleuren, plengoffers en helden.
Sleutel | Waarde |
---|---|
FacebookUser12345_Color | Rood |
TwitterUser67890_Color | Bruin |
FoursquareUser45678_Libation | "Witte wijn" |
Google + User24356_Libation | "Droge martini met een twist " |
LinkedInUser87654_Hero | " Topverkoper " |
Naarmate het aantal gebruikers toeneemt, kan het een uitdaging zijn om nauwkeurige sleutels en gerelateerde waarden bij te houden. Als u de meningen van miljoenen gebruikers wilt bijhouden, kan het aantal sleutel / waarde-paren dat daarmee samenhangt, exponentieel toenemen. Als u de keuzes voor de waarden niet wilt beperken, biedt de generieke tekenreeksrepresentatie van KVP flexibiliteit en leesbaarheid.
Mogelijk hebt u extra hulp nodig bij het ordenen van gegevens in een database met sleutelwaarden. De meeste bieden de mogelijkheid om sleutels (en de bijbehorende waarden) te verzamelen in een verzameling. Collecties kunnen uit een aantal sleutel / waarde-paren bestaan en vereisen geen exclusieve controle over de afzonderlijke KVP-elementen.
Een veelgebruikte open source sleutel / waarde-paar-database wordt Riak genoemd. Het is ontwikkeld en ondersteund door een bedrijf genaamd Basho Technologies en wordt beschikbaar gesteld onder de Apache-softwarelicentie v2. 0.
Riak is een zeer snelle en schaalbare implementatie van een database met sleutelwaarden. Het ondersteunt een omgeving met grote volumes met snel veranderende gegevens, omdat deze licht van gewicht is. Riak is met name effectief bij realtime analyse van de handel in financiële diensten. Het gebruikt "buckets" als een organiserend mechanisme voor het verzamelen van sleutels en waarden.
Riak-implementaties zijn clusters van fysieke of virtuele knooppunten gerangschikt op een peer-to-peer-manier. Er bestaat geen hoofdknooppunt, dus het cluster is veerkrachtig en zeer schaalbaar.Alle gegevens en bewerkingen zijn verspreid over het cluster. Grotere clusters presteren beter en sneller dan clusters met minder knooppunten. Communicatie in het cluster wordt geïmplementeerd via een speciaal protocol met de naam Gossip. Gossip slaat statusinformatie over het cluster op en deelt informatie over buckets.
Riak heeft veel functies en maakt deel uit van een ecosysteem dat bestaat uit:
-
Parallelle verwerking: Met MapReduce ondersteunt Riak de mogelijkheid om query's in het cluster te ontbinden en opnieuw samen te stellen voor realtime analyse en berekening.
-
Koppelingen en koppelingen lopen: Riak kan worden geconstrueerd om een grafiekdatabase na te bootsen met behulp van koppelingen. Een koppeling kan worden gezien als een eenrichtingsverbinding tussen sleutel / waarde-paren. Door de links te volgen (volgen), krijgt u een kaart met relaties tussen sleutel / waarde-paren.
-
Zoeken: Riak Search heeft een fouttolerante, gedistribueerde functie voor het doorzoeken van volledige tekst. Emmers kunnen worden geïndexeerd voor een snelle oplossing van de waarde van sleutels.
-
Secundaire indexen: Ontwikkelaars kunnen waarden taggen met een of meer sleutelveldwaarden. De toepassing kan vervolgens de index opvragen en een lijst met overeenkomende sleutels retourneren. Dit kan erg handig zijn bij big data-implementaties omdat de bewerking atomair is en real-time gedrag ondersteunt.
Riak-implementaties zijn het meest geschikt voor
-
Gebruikersgegevens voor sociale netwerken, communities of gaming
-
Hoogvolume, mediarijke gegevensverzameling en opslag
-
Caching-lagen voor het verbinden van RDBMS- en NoSQL-databases
-
Mobiele applicaties die flexibiliteit en betrouwbaarheid vereisen