Direct naar content

NoSQL

NoSQL Consultancy en beheer

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

NoSQL database beheer door OptimaData

Soorten NoSQL databases

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.

CAP-theorema overzicht

CAP Theorama overzichtDe 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.

NoSQL 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.

NoSQL database type selectie

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

NoSQL producten

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 NoSQL 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 NoSQL 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 NoSQL 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 NoSQL 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 helpen bij het bepalen welke NoSQL variant of Hybride oplossing het beste voor uw situatie werkt.

NoSQL Database beheer

Welke voorzieningen kunnen het best worden genomen om het systeem beschikbaar te houden? En dan niet alleen tijdens onfortuinlijke gebeurtenissen, maar ook tijdens upgrades, software releases en andere wijzigingen in de database omgeving? De beschikbare mogelijkheden veranderen in een snel tempo en de consultants van OptimaData kunnen een advies geven passend bij uw situatie en wensen.

Een QuickScan voor een goed beeld van uw omgeving met een set aanbevelingen voor optimale performance van uw huidige en toekomstbestendige database omgeving. Toepassen van best practices en performance tuning om het maximale rendement uit uw configuratie te halen. Regelmatige HealthChecks om een vinger aan de pols te houden in relatie tot vervuiling, groei van de database of hernieuwde datamodellering. Met database beheer middels de diensten Managed Consultancy of Managed Services bent u verzekerd van business continuity, database onderhoud en 24/7 support bij verstoringen of incidenten.

Interessante blogs

Alle blogs