Direct technisch advies?
035 369 0304
dba@optimadata.nl
Home > NoSQL

NoSQL Consultancy en beheer

OptimaData levert consultancy, training en beheer diensten leveren voor NoSQL database platformen.

De term NoSQL staat voor Not Only SQL en wordt gebruikt voor een nieuw en steeds populairder type database-systemen die in meerdere opzichten afwijken van hun klassieke relationele tegenhangers. Het concept NoSQL is het eenvoudigst uiteen te zetten met behulp van het CAP-theorema. In dit theorema kan een database-systeem altijd een van de volgende eigenschappen hebben:

  • Consistency (consistentie): alle nodes in een cluster bevatten op ieder moment dezelfde data
  • Availability (beschikbaarheid): aan elk verzoek wordt gegarandeerd voldaan, ook als delen van de cluster offline zijn
  • Partition tolerance (partitietolerantie): een netwerkstoring tussen twee of meer nodes in een cluster of tussen clusters leidt niet tot downtime voor gebruikers. De andere nodes of clusters blijven online en zijn in staat alle verzoeken af te handelen.

De meeste NoSQL-systemen passen in de twee categorieën Availability en Partition tolerance. Met de eigenschap Consistency is het anders gesteld: in plaats van consistentie biedt NoSQL eventual consistency ofwel uiteindelijke consistentie.

Database-systemen die men beschouwt als consistent voldoen vaak aan het eerdergenoemde ACID-principe: Atomiciteit, Consistentie, Geïsoleerd, Duurzaamheid. Uiteindelijk consistente database-systemen zijn gebaseerd op het BASE-principe:

  • Basically Available: het systeem is 24/7 beschikbaar
  • Soft State: het is niet noodzakelijk dat het systeem voortdurend op ieder tijdstip consistent is: niet alle nodes in een cluster bevatten op ieder moment dezelfde data
  • Eventually Consistent (uiteindelijk consistent): ook al is het systeem of de cluster niet op ieder tijdstip consistent, er is de garantie dat het systeem of de cluster op een bepaald tijdstip consistent zal zijn ofwel dat alle nodes dezelfde data zullen bevatten.

In software-ontwikkeling bepalen allereerst de verwachte prestatie-eisen de keuze van een datastore: de geschatte belasting van het systeem, de maximale en gemiddelde aantallen gelijktijdige gebruikers, de vermoedelijke datavolumes en de duur van de periode waarin de gegevens beschikbaar moeten zijn. Een tweede stap bestaat uit een analyse van de aard en het gebruik van de gegevens en de functionaliteit van de applicatie: raadplegen de gebruikers alleen gegevens of rapporteren ze ook? Is er sprake van transacties? Worden gegevens online verwerkt?

De selectie van een NoSQL-database hangt af van verschillende factoren die niet per se aan schaalbaarheid zijn gerelateerd:

  • De verhouding tussen lees- en schrijfhandelingen: sommige systemen zijn beter geschikt voor meer schrijfhandelingen, andere juist voor meer leeshandelingen
  • De complexiteit van het datamodel
  • De eisen aan de infrastructuur: sommige NoSQL-systemen vereisen additionele control servers voor het configureren van modes voor hoge beschikbaarheid en replicatie.
  • De vraag of een tijdelijke caching-layer volstaat of dat er een volledige persistentie layer nodig is 
  • De vraag welke types gegevens worden opgeslagen: documenten, ongestructureerde data, hiërarchische gegevens, gegevens die kunnen worden gemodelleerd met behulp van graph theory elementen of met behulp van XML

Het aantal NoSQL-producten groeit snel. Daardoor kan het lastig zijn een keuze uitsluitend te baseren op vooraf geformuleerde eisen. Er zijn vele vergelijkbare oplossingen en de verschillen zijn soms subtiel. Alle details verdienen zorgvuldige aandacht – van de API en de beschikbaarheid van support tot en met de kenmerken van de community. NoSQL data stores zijn in te delen in de volgende categorieën:

Key/value stores
Deze databases maken efficiënte data-opslag mogelijk. In vergelijking met meer geavanceerde databases zijn ze zeer beperkt omdat ze slechts op een manier toegang tot de data (value) bieden. Andere wegen vereisen extern beheer, bijvoorbeeld via Lucene of via een index die door de applicatie wordt beheerd.

Voorbeelden: Riak, Redis, Memcached

BigTable databases
Deze databases zijn ook bekend als record-georiënteerd, databases in tabelvorm of als wide-column stores. De term BigTable is populair geworden door Googles BigTable-implementatie. Net als relationele databases bestaat een Big Table database uit meerdere tabellen, die ieder een set aan te roepen rijen bevatten. Elke rij bestaat uit een reeks waarden die zijn te beschouwen als kolommen.

Voorbeelden: Azure Tafels, HBase, Cassandra

Document databases
Deze databases zijn ook wel bekend als document-georiënteerde databases. Ze zijn ontwikkeld voor de optimale opslag van en toegang tot documenten, als tegengesteld aan een structuur van rijen of records. Document databases zijn schemaloos.

Voorbeelden: CouchDB, MongoDB, Terrastore

Grafische databases
In deze databases worden de gegevens opgeslagen in grafiekachtige structuren, in plaats van in lineaire lijsten of in key/valueparen. Ze zijn bijzonder geschikt voor sociale netwerken en bieden een natuurlijk model voor de relaties tussen de gebruikers.

Voorbeelden: Neo4j, BrightstarDB, GraphBase

OptimaData kan je helpen bij het bepalen welke NoSQL variant of Hybride oplossing het beste voor uw situatie werkt.


 

Klik hieronder voor onze verschillende diensten op NoSQL. Wij bieden consultancy, trainingen en staffing diensten op dit platform.

NoSQL vacatures

NoSQL trainingen

NoSQL services

NoSQL ontwerp