Veel organisaties worstelen met de vraag in welke gevallen ze een van de nieuwe NoSQL-producten moeten gebruiken. In deze blog worden enkele eisen beschreven waaraan systemen moeten voldoen wil het gebruik van NoSQL-technologie nuttig zijn.
Deze blog richt zich voornamelijk op de volgende categorieën van NoSQL-producten: de key-value stores (zoals DynamoDB en Riak), de document stores (zoals CouchDB en MongoDB), de column-family stores (zoals Apache HBase en Cassandra), maar niet de graph stores. Deze drie categorieën NoSQL-producten verschillen in de manier waarop ze gegevens organiseren, welke gegevensstructuren ze ondersteunen, hoe ze hun transactiemechanismen geïmplementeerd hebben, enzovoorts. Zelfs binnen een categorie kunnen de producten zeer divers zijn. In feite, als alle individuele producten in detail vergeleken worden, dan is de enige overeenkomst dat ze tot de NoSQL-categorie behoren. Dit is dus geen homogene verzameling van producten zoals de SQL-producten dat wel zijn.
Ongeacht deze verschillen zijn de meeste het best toepasbaar bij het ontwikkelen van systemen die aan de volgende eisen voldoen:
Transactioneel: Het systeem moet transactioneel van aard zijn. De meeste NoSQL-producten zijn niet sterk in hun ondersteuning voor analyses en complexe rapportages. Ze ondersteunen hiervoor niet de juiste interne functionaliteit. Wel zijn ze buitengewoon goed in het uitvoeren van transacties. Dit is dan ook waar de kracht van de NoSQL-producten ligt.
Zware transactionele workload: Het systeem moet een groot aantal transacties en/of concurrent gebruikers ondersteunen. Het zou overdreven zijn om een transactioneel systeem met een NoSQL-product te ontwikkelen dat hooguit vijftig transacties per uur verwerkt. Dan is een traditionelere technologie meer op zijn plaats. NoSQL-producten zijn ontworpen voor het bouwen van systemen die big data manipuleren en een zware transactionele workload ondersteunen.
Single-record transacties: Eén van de technische redenen waarom NoSQL-producten een grote transactionele werklast aankunnen, is dat zij een eenvoudig concurrency-mechanisme ondersteunen dat weinig overhead kent. Dit mechanisme ondersteunt echter geen multi-tabel of multi-record transacties. Transacties zijn beperkt tot verwerken van één record in één tabel. Dit vereenvoudigt het concurrency-mechanisme en verbetert daardoor de transactionele schaalbaarheid. Het systeem moet dan wel met deze beperking kunnen werken.
‘Massive Data Ingestion’: Het systeem moet in staat zijn enorme hoeveelheden gegevens in een korte periode te laden. NoSQL-producten kunnen uitstekend omgaan met dergelijke hoeveelheden, waardoor zij geschikt zijn voor, bijvoorbeeld, weblog- en sensoromgevingen.
Eenvoudige rapportage: Het systeem hoeft uitsluitend eenvoudige queries uit te voeren, zoals point queries. Voorbeelden van point queries zijn: Zoek factuur AB457 of Zoek de omschrijving van product 5792. Dit soort queries zullen de transactionele werklast niet verstoren. De meeste NoSQL-producten hebben geen functionele eigenschappen voor het specificeren van complexe queries noch de benodigde optimalisatiemogelijkheden.
Dynamische gegevensstructuren: Voor sommige systemen is het noodzakelijk dat gegevensstructuren gemakkelijk gewijzigd kunnen worden. NoSQL-producten ondersteunen dynamische gegevensstructuren. Bij dynamische gegevensstructuren kunnen kolommen of elementen gemakkelijk toegevoegd of gewijzigd worden. Wanneer een nieuw record wordt toegevoegd en het bevat een nieuw element of nieuwe kolom, dan zal het NoSQL-product dit record verwerken zonder dat alle andere records in de tabel gereorganiseerd moeten worden.
Complexe gegevensstructuren: Sommige systemen zijn gemakkelijker te ontwerpen wanneer de gegevens die logisch bij elkaar horen ook bij elkaar opgeslagen zijn, ook als dat betekent dat de gegevensstructuren sterk gedenormaliseerd worden. NoSQL-producten zijn juist ontworpen om te werken met gedenormaliseerde structuren, zoals arrays, hiërarchieën, sets en repeating groups.
‘Smal’ gegevensmodel: Als het systeem een complex gegevensmodel vereist dat uit honderden tabellen en onderlinge relaties bestaat, dan is NoSQL niet de juiste keuze. NoSQL-producten functioneren goed als het gegevensmodel ‘smal’ is, of met andere woorden, als het niet uit te veel tabellen bestaat.
Uiteraard kunnen NoSQL-producten verschillen wat betreft de ondersteuning van deze vereisten. Zoals aangegeven is het een heterogene groep producten, maar hopelijk helpt deze blog organisaties bij, enerzijds, het beslissen of zij een NoSQL-product moeten en kunnen gebruiken voor het systeem dat zij willen ontwikkelen, en anderzijds bij het grofweg bepalen welk product de juiste keuze voor hen is.
7 november (online seminar op 1 middag)Praktische tutorial met Alec Sharp Alec Sharp illustreert de vele manieren waarop conceptmodellen (conceptuele datamodellen) procesverandering en business analyse ondersteunen. En hij behandelt wat elke data-pr...
11 t/m 13 november 2024Praktische driedaagse workshop met internationaal gerenommeerde trainer Lawrence Corr over het modelleren Datawarehouse / BI systemen op basis van dimensioneel modelleren. De workshop wordt ondersteund met vele oefeningen en pr...
18 t/m 20 november 2024Praktische workshop met internationaal gerenommeerde spreker Alec Sharp over het modelleren met Entity-Relationship vanuit business perspectief. De workshop wordt ondersteund met praktijkvoorbeelden en duidelijke, herbruikbare ...
26 en 27 november 2024 Organisaties hebben behoefte aan data science, selfservice BI, embedded BI, edge analytics en klantgedreven BI. Vaak is het dan ook tijd voor een nieuwe, toekomstbestendige data-architectuur. Dit tweedaagse seminar geeft antwoo...
De DAMA DMBoK2 beschrijft 11 disciplines van Data Management, waarbij Data Governance centraal staat. De Certified Data Management Professional (CDMP) certificatie biedt een traject voor het inleidende niveau (Associate) tot en met hogere niveaus van...
3 april 2025 (halve dag)Praktische workshop met Alec Sharp [Halve dag] Deze workshop door Alec Sharp introduceert conceptmodellering vanuit een non-technisch perspectief. Alec geeft tips en richtlijnen voor de analist, en verkent datamodellering op c...
10, 11 en 14 april 2025Praktische driedaagse workshop met internationaal gerenommeerde spreker Alec Sharp over herkennen, beschrijven en ontwerpen van business processen. De workshop wordt ondersteund met praktijkvoorbeelden en duidelijke, herbruikba...
15 april 2025 Praktische workshop Datavisualisatie - Dashboards en Data Storytelling. Hoe gaat u van data naar inzicht? En hoe gaat u om met grote hoeveelheden data, de noodzaak van storytelling en data science? Lex Pierik behandelt de stromingen in ...
Deel dit bericht