Home / BI en Datawarehousing / Data Warehouse – Waarom heb je er een nodig?
Waarom heb je een data warehouse nodig

Data Warehouse – Waarom heb je er een nodig?

Het woord “Data Warehouse” klinkt behoorlijk spannend! Het doet vermoeden dat het een ingewikkeld gebeuren is, een soort pakhuis of verzameling met data. Eigenlijk is een data warehouse een database net als alle andere “gewone databases”. Men noemt het een “warehouse” omdat je er meer in bewaart dan in een gewone database.

Wat is een database?

Een database is een soort bak waarin je gegevens kunt bewaren. Een database bestaat uit onder andere tabellen wat ook gelijk de belangrijkste onderdelen zijn van een database. Vergelijk een tabel voor het gemak met een excelsheet. Een tabel bevat namelijk ook rijen (records) en kolommen. Stel dat je een database hebt met personeelsgegevens. Er zal een tabel aanwezig zijn met het personeel. In deze tabel zijn alle medewerkers van een bedrijf aanwezig. Iedere medewerker is een record in de tabel medewerker met een aantal eigenschappen, de kolomwaarden. Denk hierbij aan naam, adres, telefoonnummer en geslacht.

Al deze tabellen bij elkaar vormen de database van het systeem. Deze tabellen zijn allemaal met elkaar verbonden met sleutels zodat je kunt herleiden wat bij elkaar hoort. Je zult niet alle informatie opslaan in een enkele tabel maar je zult de database gaan normaliseren, opsplitsen in meerdere tabellen. Meestal wordt hiervoor de 3e normaalvorm gebruikt. Wil je meer weten over het ontwerpen van databases dan kun je het beste dit boek of dit boek over modelleren en SQL aanschaffen.

Wat is een data warehouse?

Een data warehouse is ook een database. Het verschil met een gewone database is de architectuur en de opslag van data. In een personeelssysteem zul je voor iedere medewerker maar een record/rij bewaren met de gegevens van de medewerker. In een datawarehouse kun je meerdere versies gaan opslaan van de medewerker. Als een medewerker verhuist wil je misschien zijn oude adresgegevens bewaren. Een datawarehouse is er speciaal voor gemaakt om dit soort mutaties te bewaren. Daarnaast is het datamodel (de manier van ontwerpen van tabellen en relaties) speciaal ontwikkeld om met historische gegevens om te gaan of om informatie snel te kunnen rapporteren / eenvoudig te bewaren. Een datamodel van een data warehouse kan ook in een 3e normaalvorm worden ontworpen maar dit type model is niet erg geschikt om snelle rapporten op te bouwen. Meestal wordt ervoor gekozen om “achter” het data warehouse een extra database te zetten in de vorm van een “sterschema”.  Dit is ook een gewone database, alleen speciaal ontworpen om snelle rapporten op te kunnen bouwen. In een sterschema kun je gegevens redundant (dubbel) opslaan of bepaalde berekening van tevoren al opslaan zodat rapporten sneller laden. Het meeste bekende ontwerp hiervoor is het Kimball model.

Welke architectuur kies je voor een data warehouse

Door de jaren heen zijn er verschillende methodes (architecturen) ontstaan om een data warehouse / business intelligence oplossing te ontwerpen. Welke methode je uiteindelijk gaat gebruiken hangt af van wat het bedrijf nodig heeft. Een klassieke methode voor het ontwerpen van een data warehouse is de Kimball Methode. Ik raad je aan om het boek van Kimball aan te schaffen en door te nemen. Er staan veel praktijkvoorbeelden in over hoe je data kunt modelleren. Daarbij ligt de focus op het zo eenvoudig mogelijk kunnen rapporteren van informatie aan de eindgebruiker waar het uiteindelijk allemaal om draait. Als je niet goed in Engels bent zijn dit soort boeken lastig te lezen. Je kunt overwegen een gratis proefles nemen of een cursusje Engels voor beginners 🙂 Een ander goed boek om mee te beginnen is “Sterren en Dimensies” van Harm van der Lek. Het boek is uit 2000 maar alle informatie is nog steeds van toepassing en het is in het Nederlands geschreven, iets wat je niet heel vaak ziet bij technische boeken.

Momenteel leven we in 2016 en wordt er veel geschreven over Data Vault”. Dit is ook een manier om een data warehouse te modelleren. Data vault is er op gericht alle mutaties te bewaren onder het mom van “auditability and traceability”. Bedrijven die moeten voldoen aan de  Sarbanes-Oxley wetgeving zullen deze methode vaak gebruiken. Ik vraag mij af of dit voor de meeste bedrijven de juiste techniek van modelleren is. Ik denk dat de meeste bedrijven geen vereisten hebben om alle mutaties vanuit hun systemen te bewaren. Daarnaast vind ik het datamodel erg uitgebreid, je krijgt al snel honderden tabellen en laadprocessen. Elke tabel (entiteit) wordt opgesplits in hubs, links en satellites. Het is wel interessant materie. Ik hoop ooit nog een interessante BI opdracht te gaan doen zodat ik meer over data vault te weten kan komen en het ook kan toepassen in de praktijk.

Als je meer over data vault wilt leren dan raad ik je aan om artikelen en boeken over Dan Linstedt aan. Hij is de bedenker van Data Vault. Dan is ook op LinkedIn te vinden, hij reageert ook altijd op vragen als je die hebt. Dan heeft ook een goed boek geschreven waarin alle tips en truuks over Data Vault te lezen zijn.

Heb ik een data warehouse nodig?

Een goede vraag die je bij jezelf moet stellen is of je een data warehouse nodig hebt. Deze vraag is niet eenduidig te beantwoorden.  Het hangt ervanaf wat je wilt bereiken. Als je als bedrijf informatie wilt presenteren aan medewerkers is een data warehouse niet altijd noodzakelijk. Je kunt namelijk met Microsoft Reporting Services (gratis meegeleverd als je SQL Server al hebt, I love it ) leuke en krachtige rapportages ontwikkelen zonder een data warehouse. Je schrijft een SQL query direct op je systeem, de data komt dus “Real-time” uit je systeem. Dit werkt in de praktijk prima als je met niet teveel mensen tegelijk rapportages aan het openen bent en de rapportages niet te “ingewikkeld” zijn.

Een ander verhaal is het wanneer je:

  • grote hoeveelheden data moet ophalen en rapporteren
  • complexe berekeningen real-time moet uitvoeren
  • veel gebruikers tegelijk rapporten wilt openen
  • veel data over de tijd heen naast elkaar wilt zetten
  • gegevens uit meerdere databases wilt integreren of vergelijken
  • mutaties over de tijd wilt bewaren
  • SOX compliant moet zijn.
Als je als bedrijf een van bovenstaande uitdagingen hebt ontkom je er bijna niet aan om een data warehouse in te richten. Schrik niet teveel van het woord “Data Warehouse”! Zoals ik hierboven heb beschreven is het een gewone database. De uitdaging zit hem meestal in het afstemmen van definities en het integreren van gegevens. Daarnaast zul je de data in de database moeten laden. Dit hoeft niet heel ingewikkeld en duur te zijn met de tooling die Microsoft gratis bij zijn database levert, SSIS (Integration Services). Ga je voor een andere tool dan kost je het vaak veel geld.

About Ronald Kraijesteijn

Microsoft SQL Server and Business Intelligence consultant, MCITP Certified. If you need a BI specialist for a freelance job, please contact me!

Check Also

Aansturing ETL jobs binnen Datawarehouse

Om de ETL jobs van een datawarehouse te activeren kun je diverse manieren toepassen. Je …

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *