Breng structuur aan in je data

De meest gebruikte vormen van dataopslag uitgelegd

  • Artikel
  • Data Engineering
collega's met elkaar in gesprek
Oskar-data-engineer
Oskar van den Berg
Data Engineer
7 min
02 Feb 2024

Er zijn veel verschillende vormen van dataopslag. In de praktijk worden een (relationele) database, een datawarehouse en een data lake het meest gebruikt én door elkaar gehaald. In dit artikel lees je wat ze inhouden en hoe je ze gebruikt.

Welke vormen van dataopslag zijn er?

In de praktijk worden deze drie vormen van dataopslag met meest gebruikt:

  • Een relationele database (doorgaans simpelweg een database genoemd, al zijn er ook andere vormen van databases) wordt vaak gebruikt voor operationele processen. Data in een relationele database is gestructureerd in een vast datamodel en wordt vaak opnieuw gebruikt door andere operationele processen. Daarom is het belangrijk dat de data nauwkeurig en betrouwbaar wordt overgeschreven.

  • Een datawarehouse is een opslagplek voor datadie niet (direct) door operationele systemen gebruikt wordt. Een datawarehouse heeft een gestructureerde manier van opslag, maar wordt gebruikt voor analytische doeleinden.

  • Een data lake heeft veel overeenkomsten met een datawarehouse, maar biedt meer vrijheid in de manier waarop je je data opslaat. Een data lake is in de basis een “gewone” bestandsopslag, waardoor verscheidene bestandstypen ondersteund worden. Een data lake heeft als enige van de drie opslagvormen geen ingebouwde engine om data te verwerken.
vergelijking dataopslag in een database - datawarehouse - datalake

Wat is een relationele database?

Een relationele database is opgebouwd volgens een relationeel datamodel. De data wordt opgeslagen in tabellen, met rijen en kolommen met een vaste structuur (het ‘schema’). Relationele databases zijn een traditionele database structuur.

De vaste structuur zorgt voor efficiëntie en consistentie, wat leidt tot een hoge betrouwbaarheid van de data. Data ophalen uit relationele databases gebeurt met Standard Query Language (SQL). Een ander kenmerk van relationele databases is dat ze door veel users tegelijk gebruikt kunnen worden.

De afkorting OLTP zie je vaak terugkomen bij een omschrijving van relationele databases. Deze afkorting staat voor ‘online transactional processing’. Het woord ‘transactie’ verklapt al dat relationele databases het sterkst zijn in het verwerken van gestructureerde data, zoals transacties van een winkel of webshop.

Wanneer een relationele database gebruiken?

  • Bij behoefte aan hoge nauwkeurigheid, zoals het verwerken van transacties of financiële data;
  • Bij kleinere gegevensvolumes (dus geen big data);
  • Als je makkelijk aanpassingen wilt kunnen maken;

Wanneer geen relationele database gebruiken?

  • Voor data-analyse zijn relationele databases vaak te langzaam; 
  • Als je grote datavolumes hebt: relationele databases zijn geen gedistribueerde databases en daardoor kunnen ze alleen verticaal schalen door meer opslag in de machine zelf toe te voegen;
  • Als je een flexibel schema nodig hebt;
  • Relationele databases zijn niet ontworpen om ongestructureerde gegevens te verwerken. Als je data verschillende formaten heeft (json, xml), kan een NoSQL database een beter alternatief zijn.

Wat is een data warehouse?

Een data warehouse is zeer geschikt voor data-analysedoeleinden. In een data warehouse wordt data uit verschillende bronnen ingeladen en samengevoegd. Een data warehouse werkt wel met een relationele structuur, maar kan allerlei data bevatten en is specifiek gestructureerd voor query’s en analyses.

Het ophalen van data gebeurt vaak in batches, niet telkens wanneer een transactie plaatsvindt in het bronsysteem, zoals vaak wel het geval is in een relationele database.

Data warehouses maken vaak gebruik van een ETL-pijpleiding (Extract, Transform, Load):

  • Extract – Data wordt opgehaald uit verschillende bronnen (data lake, database enz.)
  • Transform – Data uit verschillende bronnen wordt gecombineerd en getransformeerd tot een datamodel dat is geoptimaliseerd op basis van je doelen
  • Load – Data uit een data warehouse wordt vaak geladen in een BI- of dashboardingtool

Het datamodel voor een data warehouse moet worden ontworpen om het eenvoudig te maken voor gebruikers om met de data te werken ende prestaties van query's te verbeteren.

Tegenwoordig worden databewerkingen niet altijd meer uitgewerkt in het datawarehouse zelf, maar toegepast middels DBT. Dit is een techniek waarin alle bewerkingen los, en grotendeels agnostisch, van het data warehouse worden opgeslagen. Het heeft interessante features, zoals het automatisch uitvoeren van datakwaliteit tests en een snelle en intuïtieve manier van documenteren.

Ook stelt het je in staat om modellen en bewerkingen te hergebruiken. Je gebruikt echter nog steeds de query engine van het datawarehouse, en kan gebruiken maken van functionaliteiten zoals de web interface en user management.

Wanneer een data warehouse gebruiken?

  • Als je meerdere databronnen wilt combineren;
  • Als je behoefte hebt aan 1 centrale plek voor een single source of truth.
  • Bij behoefte aan betere performance voor analyses;
  • Als toegang tot data centraal geregeld moet worden; omdat alle data op één plek wordt opgeslagen;
  • Bij grote datavolumes;
  • Als je data hebt die gestructureerd kan worden.

Wanneer geen data warehouse gebruiken?

Een data warehouse is ontzettend krachtig en moderne clouddata warehouses zijn vaak ook erg kostenefficiënt. Je betaalt alleen voor wat je verbruikt. Toch zijn er situaties waarin een data warehouse niet de juiste oplossing is:

  • Operationele data, zoals transacties, kun je vaak beter kwijt in een relationele database.
  • Voor analyses over deze data kan een data warehouse wél de juiste oplossing zijn;
  • Als de data ongestructureerd is en niet in een strak schema past, zou bijvoorbeeld een data lake een beter alternatief kunnen zijn;
  • Als je data verschillende data formats heeft (json, xml), kunnen een data lake of een NoSQL database een beter alternatief zijn.
  • Bij analyse-doeleinden waarbij tijdigheid belangrijk is zoals real-time analyses.

Wat is een data lake?

Een data lake is een gecentraliseerde opslagplaats, waarin je zowel gestructureerde data als ongestructureerde data op kunt slaan. Data lakeszijn in staat om hele grote volumes dataen met uiteenlopende structuren op te slaan.

Een data lake is vergelijkbaar met een folder op de computer waarin allerlei bestanden opgeslagen kunnen worden(tekst,csv,json, foto’s, video’s, spraak etc.), zonder dat de gegevens eerst gestructureerd hoeven te worden.

Op data in een datalake kun je verschillende soorten analyses uitvoeren, dashboards en visualisaties maken. Ook kun je(big)dataprocessing toepassen en machine learning modellen draaien. Je hebt hiervoor echter wel een losse query engine nodig. De samenkomst van deze twee technieken wordt ook wel een data lake house genoemd.

Wanneer een data lake gebruiken?

  • Als je ongestructureerde gegevens wilt analyseren;
  • Als je grote datavolumes hebt;
  • Wanneer je de vrijheid wilt om te spelen met datasets en ad-hoc analyses te doen (vaak het geval bij Data Scientists);
  • Als je verwacht dat je usecase voor data-analyse in de toekomst nog gaat veranderen. Een data lake is goed geschikt om gegevens historisch op te slaan, voordat deze verwerkt worden in een gestructureerd datamodel;
  • Als je data wilt analyseren zonder deze in te voegen in een vooraf gedefinieerd schema. Met "schema-on-read" kun je query’s runnen op bestanden zonder vooraf een tabel aan te maken.

Wanneer geen data lake gebruiken?

Data lakes zijn flexibel en je kunt er veel mee, maar ze zijn niet altijd de juiste toepassing voor ieder vraagstuk.

  • Operationele data, zoals transacties, kun je vaak beter kwijt in een relationele database vanwege de toegankelijkheid van de data;
  • Data-analyse op gestructureerde data is soms eenvoudiger en sneller in een data warehouse, met een duidelijk gedefinieerd datamodel;
  • De ongestructureerde aard van het data lake vereist structuur aan de kant van de gebruiker om het overzicht te houden.

Data opslaan voor analytische doeleinden? Gebruik een datamodel

Als je data voor analytische doeleinden wilt verwerken in een data-infrastructuur, moet je de data opslaan. Dat gebeurt op een bepaalde manier. Dit is het datamodel waarin de data wordt opgeslagen.

Een datamodel kan veel vrijheid bevatten – denk bijvoorbeeld aan de opslag op een laptop, waarbij alle bestanden door elkaar kunnen staan – of juist veel orde bevatten – denk dan bijvoorbeeld aan een database, waarbij alle data in een vast schema wordt opgeslagen.

Hoe meer vrijheid je toestaat in de manier van opslaan, hoe lastiger het is om de data later te verwerken voor analytische doeleinden. Het hebben van een goed doordacht en georganiseerd datamodel is cruciaal voor hoe de data later gebruikt kan worden. Query’s die eenvoudig en simpel hadden kunnen zijn, kunnen heel ingewikkeld worden als het datamodel niet goed is doordacht.

Datamodellering is geen vaststaand proces. Het is iteratief naarmate nieuwe eisen en gegevens worden ingevoerd. Flexibiliteit helpt als nieuwe informatie beschikbaar komt.

Het juiste datamodel voor jouw organisatie

Het datamodel voor een datawarehouse kan worden opgesteld door data architecten, data engineers, data modelleurs, en andere data professionals met verstand van data modelleren.

Elke vorm heeft zo zijn voor- en nadelen en er is geen one-size-fits-all, ook al willen sommige voorstanders van een typering dat wel doen geloven. Vaak liggen er onder de one-size-fits-all benaderingen aannames die in de praktijk onhaalbaar zijn. Hierbij is te denken aan goed gedefinieerde en weinig veranderlijke business datadefinities.

Analytics engineers zijn specialisten die zowel kennis hebben van het opstellen van een datamodel, als de implementatie ervan. Dit houdt in dat de professional de requirements voor het datamodel ophaalt bij de business, deze vervolgens verwerkt tot een model, en dit implementeert middels technieken zoals SQL en DBT.

Wat is een data-infrastructuur?

Achter een goed datamodel ligt een goede data-architectuur, waarin generieke richtlijnen zijn opgesteld over hoe een datamodel moet worden opgesteld. Deze generieke richtlijnen zijn in de meeste gevallen toereikend, maar specifieke data vraagt vaak ook om specifieke oplossingen.

Zolang er goed is nagedacht over waarom er een specifieke oplossing nodig is voor die data – en waarom er dus afgeweken wordt van de generiek voorgeschreven oplossing – kan dat prima passen binnen een volwassen data-architectuur.

Een architectuur wordt doorgaans opgezet door een solution architect. Zij kunnen de business context en functionele requirements omzetten naar een technisch ontwerp.

Hulp of advies nodig over de opslag van de data binnen jouw organisatie?

Onze data-experts denken graag met je mee! Plan een online meeting in om te sparren over jouw uitdagingen.

Dit is een artikel van Oskar

Oskar van den Berg is Data Engineer en Team Lead, en reeds 7 jaar werkzaam bij Digital Power. Met zijn werkervaring als Data Engineer binnen startup- en enterprise organisaties kan hij klanten op zowel technisch als strategisch niveau adviseren.

Oskar van den Berg

Data Engineeroskar.vandenberg@digital-power.com

Oskar schreef dit artikel samen met Dennis Dickmann, Data Engineer bij Digital Power.

1x per maand data insights, praktijkcases en een kijkje achter de schermen ontvangen?

Meld je aan voor onze maillijst en blijf 'up to data':

Dit vind je misschien ook interessant:

cloudmigratie

Cloudmigratie: hoe werkt dit in de praktijk?

Vroeger werd alle data van bedrijven lokaal opgeslagen in een on-premise omgeving. Steeds meer bedrijven migreren hun data-infrastructuur naar de cloud. Cloud computing maakt gebruik van servers die door cloud service providers als Amazon Web Services, Microsoft Azure en Google Cloud Platform worden beheerd en onderhouden. In dit artikel lees je de antwoorden op de vragen die je zult hebben als je een cloudmigratie overweegt.

Lees meer

Datakwaliteit: de basis voor effectief datagedreven werken

Dataprojecten moeten vaak snel resultaat opleveren. Het vakgebied is relatief nieuw en om draagvlak te creëren, moet eerst bewezen worden dat het waarde oplevert. Hierdoor bouwen veel organisaties data-oplossingen zonder dat er goed nagedacht wordt over de robuustheid ervan. Met datakwaliteit wordt hierbij vaak onvoldoende rekening gehouden. Wat zijn de risico’s als je datakwaliteit niet op orde is en hoe kun je het verbeteren? Je leest het antwoord op de belangrijkste vragen over datakwaliteit in dit artikel.

Lees meer
business managers in gesprek

Inzicht in de complete salesfunnel dankzij een datawarehouse met dbt

Onze consultants boeken de opdrachten die ze oppakken voor onze klanten in ons ERP AFAS. Als CRM gebruiken we HubSpot. Hierin zien we alle informatie die voorafgaand aan het tekenen van een samenwerkingsovereenkomst relevant is. Wanneer we een deal sluiten, gaat alle informatie uit HubSpot automatisch naar AFAS. HubSpot wordt dus vooral gebruikt voor het proces voordat we een samenwerking aangaan, AFAS juist voor de fase daarna. We wilden de inzet van onze mensen strakker plannen en onze financiële forecasts verbeteren. Daarom besloten we de data uit beide bronnen te koppelen en een datawarehouse op te zetten.

Lees meer

Wat is machine learning operations (MLOps)?

Het in productie nemen van machine learning modellen blijkt in de praktijk een complexe taak. MLOps helpt organisaties die zelf modellen willen ontwikkelen en onderhouden bij het borgen van de kwaliteit en continuïteit. Lees dit artikel en krijg antwoord op de meest gestelde vragen over dit onderwerp.

Lees meer

Webinar: Data Governance

In dit webinar bespreken we het maturity model dat we toepassen om de volwassenheid van verschillende dimensies van data governance te kwantificeren. Daarnaast geven we concrete stappen en implementatietips om te beginnen met het leveren van toegevoegde waarde door datamanagement.

Lees meer
elevator

20% minder klachten dankzij datagedreven onderhoudsrapportages

Een belangrijk onderdeel van de bedrijfsvoering van Otis is het onderhoud van hun liften. Om dit goed te timen en klanten proactief te informeren over de status van hun lift, wilde Otis continue monitoring inzetten. Ze zagen veel potentie in predictive maintenance en onderhoud op afstand.

Lees meer
potatoes

Waardevolle inzichten uit Microsoft Dynamics 365

Agrico is een coöperatie van aardappeltelers. Zij telen aardappels voor verschillende doeleinden zoals consumptie en het planten van toekomstige oogsten. Deze aardappels worden wereldwijd geëxporteerd via verschillende dochterondernemingen. Alle logistieke en operationele data wordt opgeslagen in hun ERP-systeem Microsoft Dynamics 365. Omdat dit systeem met zijn vele features erg complex is, is de data niet direct geschikt om te gebruiken voor rapportages. Agrico vroeg ons te helpen hun ERP-data inzichtelijk te maken en duidelijke rapportages te ontwikkelen.

Lees meer

Kubernetes-based event-driven autoscaling met KEDA: een praktische gids

In dit Engelstalige artikel beginnen we met een uitleg van wat Kubernetes Event Driven Autoscaling (KEDA) inhoudt. Vervolgens richten we een lokale ontwikkelomgeving in die het mogelijk maakt om KEDA te demonstreren met behulp van Docker en Minikube. Daarna leggen we het scenario uit dat geïmplementeerd zal worden om KEDA te demonstreren, en doorlopen we dit scenario stap voor stap. Aan het einde van het artikel heeft de lezer een duidelijk beeld van wat KEDA is en hoe hij of zij zelf een architectuur met KEDA kan implementeren.

Lees meer

AWS (Amazon Web Services) versus GCP (Google Cloud Platform) voor Apache Airflow

In dit Engelstalige artikel maken we een vergelijking tussen Cloud Composer en MWAA. Dit zal je helpen de overeenkomsten, verschillen en factoren te begrijpen die je moet overwegen bij de keuze voor een cloudoplossing. Weet dat er andere goede opties zijn als het gaat om het hosten van een beheerde airflow-implementatie, zoals Microsoft Azure. De twee die in dit artikel worden vergeleken, zijn gekozen vanwege mijn praktijkervaring met beide beheerde diensten en hun respectievelijke ecosystemen.

Lees meer
Analisten werken in GA4

De overstap van Universal Analytics 360 naar Google Analytics 4 en het stroomlijnen van de data-analyse

Momenteel zijn er veel ontwikkelingen rondom Google Analytics. Denk hierbij aan de privacy van gebruikers (AVG) en de uitfasering van Universal Analytics. Ook voor Miele X stond GA4 op de agenda als onderdeel van grotere plannen voor een privacyvriendelijker en leveranciersonafhankelijke manier van dataverzameling. Ze vroegen ons hen te ondersteunen bij de overgang van Universal Analytics 360 op GA4.

Lees meer
people working together

Het all-round profiel van de moderne data engineer

Sinds de opkomst van big data zijn veel elementen van de moderne datastack de verantwoordelijkheid geworden van data engineers. Wat zijn deze elementen en hoe moet je je datateam samenstellen?

Lees meer