Iedereen kent inmiddels wel de kracht van data: performance kunnen meten, trends ontdekken, voorspellingen kunnen doen. Allemaal zeer waardevol. In dit blog bespreken we een essentiële tool om dit soort analyses snel uit te voeren: NoSQL (spreek uit: nosiekwol). Wat is het en wat levert het je op?
Zoals je waarschijnlijk wel weet, zit achter elke applicatie een database. En een sterke vrouw, maar dat laten we even buiten beschouwing. In de database worden op een gestructureerde manier gegevens vastgelegd: elke type gegevens (bijvoorbeeld boeken, genres, auteurs) wordt in een eigen tabel vastgelegd. Via relaties worden daarbij de onderlinge verbanden gelegd die je laten weten dat het boek The Hitchhiker's Guide to the Galaxy daadwerkelijk een Science Fiction roman is, geschreven door Douglas Adams.
Voor als je systeem niet meer vooruit te branden is
Toch heeft dit gestructureerde dataformat ook beperkingen en daar lopen steeds meer organisaties tegenaan. Je hoeft ook geen genie te zijn om te begrijpen dat het doorzoeken van immense hoeveelheden data, door steeds meer gebruikers, zijn grenzen kent. Zeker wanneer er grote volumes data worden verwerkt, zorgt de onderlinge afhankelijkheid tussen databronnen voor vertraging. Een extra database erbij, of meer processing power, is lang niet altijd de beste oplossing. Maar wat dan wel?
Versnellen met indexeringen versus NoSQL
Tragere databases, en daarmee dus alle applicaties die eraan gekoppeld zijn, worden nog wel eens geoptimaliseerd met behulp van bijvoorbeeld indexering: een soort inhoudsopgave waarmee de database kan terugvinden waar hij bepaalde gegevens heeft opgeslagen. Hiermee gaat het zoeken sneller. Echter, dit voordeel kan teniet gedaan worden doordat de database bij elke toevoeging de indexering moet bijwerken. Dat maakt de database dus weer trager.
Anders gezegd: de meeste databases kunnen wel een zoekassistent gebruiken. En die zijn er in de vorm van NoSQL databases.
Hoe werkt dat dan?
Vooropgesteld: er is niks mis met de gestructureerde opzet van data. Sterker nog: het is essentieel voor bijvoorbeeld de datakwaliteit binnen je applicatie. Maar voor het doorzoeken van grote volumes data is het fijn om een systeem te gebruiken dat daarvoor geoptimaliseerd is.
In de meeste gevallen wordt een NoSQL database voor deze specifieke toepassing naast de gestructureerde database geplaatst. De NoSQL database bevat als het ware een kopie van de database, maar dan ingericht in format dat is bedoeld voor snelle dataverwerking. Op deze manier werken beide databases effectief aan het doel dat ze dienen.
Elasticsearch, een NoSQL database, waar we bij Ambrero mee werken, haalt als het ware de hinderlijke en vertragende ‘joins’ uit de database. Joins zijn combinaties van records uit meerdere tabellen. Het resultaat zijn overzichten waarin verschillende aan elkaar gerelateerde gegevens bij elkaar zijn gezet. Bijvoorbeeld: het boek The Hitchhiker’s guide van Douglas Adams met het genre SF. Het lijkt een beetje op een zoekmachine als Google maar dan voor je eigen database.
En wat levert NoSQL je op?
Nou zul je je misschien afvragen wat NoSQL voor jou kan betekenen. Ga maar eens na binnen je organisatie wat er allemaal gemeten wordt en welke informatie je uit die data zou kunnen halen als die data altijd beschikbaar zou zijn. We zetten de belangrijkste voordelen op een rij:
- Supersnel zoeken uiteraard.
- De mogelijkheid om gegevens uit verschillende systemen te combineren.
- Inzichten, omdat je grote hoeveelheden informatie automatisch kunt verwerken.
- Schaalbaarheid: je bent niet langer afhankelijk van de complexe gegevensstructuren in je applicatie. Bovendien staat de NoSQL database los van de applicatie en kun je hem makkelijk op een andere omgeving draaien.
We hebben NoSQL toegepast bij de ontwikkeling van het klantenportaal voor Stichting Beter Leven keurmerk. Behalve zeer tevreden gebruikers leverde ons dit ook een Computable Award nominatie op.
Wil je weten wat de kansen zijn voor jouw organisatie? Neem dan vrijblijvend contact met ons op, we helpen je graag vooruit.