Overslaan en naar de inhoud gaan

📅 Schrijf je in voor de Masterclass report design in Power BI

Bob
10-10-2022 - 15 min

Wat is een datawarehouse?

De data services schieten anno 2022 als paddenstoelen uit de grond. Als je tien jaar geleden wist wat een datawarehouse was dan had je voldoende achtergrond om te weten waar je terecht kon voor data vraagstukken binnen een organisatie. Al snel werd deze term de afgelopen jaren gevolgd door trendy termen als data lake, dataplatform en data hub. Maar wat betekenen al deze termen nu eigenlijk en hoe verhouden ze zich tot elkaar?

In deze editie van de serie #adatawhat kijk ik naar de term datawarehouse.

Inleiding

De term datawarehouse is al tientallen jaren oud. Veel organisaties maken gebruik van een datawarehouse, maar er zijn ook nog steeds heel veel organisaties bezig met de inrichting van een oplossing om inzichten te verkrijgen in data.

Tien jaar geleden was een datawarehouse de meest bekende inrichting van een dataplatform. Tegenwoordig kennen we met een data lake, data lakehouse, data hub en andere varianten steeds meer mogelijke inrichtingen voor een toekomstvast dataplatform. Toch zit het concept van datawarehousing in alle moderne oplossingen nog steeds verankerd: het verzamelen, transformeren en presenteren van data op een centrale plek voor de organisatie.

Historie

Al rond 1970 was het Bill Inmon die begon over het concept data warehousing om data uit operationele systemen te verzamelen ten behoeve van data gedreven beslissingen. Vanaf 1990 werd bij steeds meer organisaties gesproken over en gewerkt aan een datawarehouse, mede dankzij nieuwe boeken als Building the Data Warehouse (1992) door dezelfde Bill Inmon, gevolgd door The Data Warehouse Toolkit (1996) door Ralph Kimball.

De term datawarehouse is nauw verbonden aan business intelligence. Deze term werd vanaf halverwege de jaren '90 steeds gangbaarder en wordt gebruikt voor het verzamelen en analyseren van data op verschillende niveaus met als doel om beslissingen te kunnen nemen op basis van data.

Waar we nu een enorme versnelling zien in de hoeveelheid data die wordt opgeslagen, was dat 30 jaar geleden niet anders. Veel organisaties gingen over op digitale systemen en steeds meer data werd opgeslagen in databases, spreadsheets en andere oplossingen. Met de komst van het datawarehouse waren steeds meer organisaties in staat stappen te zetten op het gebied van business intelligence. Veel organisaties maakten gebruik van IT-dienstverleners en de rol van de business intelligence consultant was geboren.

Wat is een datawarehouse?

Maar wat is een datawarehouse dan eigenlijk? Allereerst de schrijfwijze, die in het Nederlands zonder spatie wordt geschreven: datawarehouse, terwijl in het Engels wel een spatie wordt geschreven: data warehouse. In Nederland lijken beide varianten door elkaar heen te worden gebruikt.

In basis is een datawarehouse een gegevensverzameling, geschikt voor het beantwoorden van terugkerende en in mindere mate ad-hoc vraagstukken. Data in een datawarehouse wordt periodiek bijgewerkt. Veel organisaties kiezen voor een verversing van één keer per nacht, zodat het datawarehouse altijd is bijgewerkt tot en met gisteren. Door vraagstukken te beantwoorden middels een datawarehouse worden bronsystemen niet belast met zware queries.

Een datawarehouse kent een aantal basiseigenschappen, waarvan de belangrijkste zijn dat het een centrale plek is waar data uit verschillende bronsystemen samenkomt, wordt opgeschoond en geïntegreerd. Daarnaast kenmerkt een datawarehouse zich door het opslaan van historie en het kunnen rangschikken van data over tijd.

Technisch gezien is een datawarehouse een relationale database of een combinatie van meerdere databases waarbij data volgens een vooraf afgestemde structuur wordt opgeslagen. Deze opslag vindt plaats in zogenoemde lagen, waarin ruwe onbewerkte data, historische data en functionele data voor de eindgebruiker worden gescheiden (zie ook paragraaf: hoe richt ik een datawarehouse in). Iedere laag kan op verschillende manieren worden ingericht. Vaak worden dergelijke keuzes gemaakt op basis van complexiteit van het applicatielandschap en de reeds aanwezige kennis bij de betrokken ontwikkelaars en architecten.

Het datawarehouse is doorgaans een tussenproduct voor een organisatie. Eindgebruikers worden vaak voorzien van dashboards, rapportages of datasets welke gevoed worden met data uit het datawarehouse.

De term datawarehouse is tegenwoordig minder populair. Met de komst van de cloud services zijn de mogelijkheden om data te kunnen verzamelen, analyseren en presenteren sterk toegenomen. Het concept datawarehouse is steeds vaker niet meer de enige oplossing voor organisaties met uitdagingen op het gebied van data. Wel zijn alle oplossingen gericht op het verzamelen, bewerken en presenteren van data. Met de groeiende hoeveelheid data en data consumenten wordt op technisch gebied echter ook steeds meer verwacht van de oplossing.

In mijn artikel wat is een data lake uit december 2021 keek ik al naar het verschil tussen een data lake en een datawarehouse. In één van mijn volgende artikelen kijk ik ook naar een combinatie van het gedachtengoed van beide: het datalakehouse.

Voor wie net gewend is aan de term datawarehouse, wees niet bang dat het niet meer aansluit bij een toekomstig dataplatform van je organisatie. Het gedachtengoed is nog steeds goud waard. De technische uitvoering kent echter opvallend meer scenario's en dus mogelijkheden dan vijf jaar geleden!

Single source of the truth

Een veel gehoorde term is dat een datawarehouse een single source of the truth is. Hiermee wordt bedoeld dat het datawarehouse de enige locatie in de organisatie is waar rekenregels (of business rules) zijn vastgelegd. Deze rekenregels zijn er bijvoorbeeld om te bepalen of een KPI is behaald. Omdat de definities vastgelegd zijn in het datawarehouse kunnen alle rapportages gebruik maken van dezelfde definitie. Het voorkomt dat er bijvoorbeeld meerdere Excel bestanden zijn die allemaal hun eigen definitie hanteren. Voor veel organisaties blijft het rapporteren over één definitie een grote uitdaging. Vaak blijkt dat dergelijke organisaties wel een datawarehouse hebben maar er niet optimaal gebruik van maken.

De inrichting van een datawarehouse

Een datawarehouse is voor veel organisaties hét centrale punt waar data uit vele applicaties samen komt. Dat vraagt om een goed georganiseerde oplossing. Hierboven noemde ik al dat de meeste datawarehouses zijn opgebouwd uit drie lagen. Iedere laag heeft een andere functie. Voor de meeste gebruikers zal de bovenste functionele laag (datamart) de interessantste zijn. Toch zie je steeds vaker dat bijvoorbeeld data analisten of data scientist ook op een historische laag van een datawarehouse inprikken om de gewenste dataset samen te stellen.

Ontwikkelaars van een datawarehouse noemen zich vaak business intelligence specialist of tegenwoordig steeds vaker data engineer. Veel organisaties hebben één of enkele van dergelijke specialisten in huis, maar wellicht nog vaker worden externe consultants ingezet om organisaties van de juiste oplossing te voorzien.

Om tot een succesvol datawarehouse te komen is het belangrijk om na te denken over de het modelleren en serveren van de data. Vergeet daarnaast niet om een productowner aan te wijzen om tot een succesvolle implementatie te komen.

Data modelleren. Er zijn vele manieren om je data in het datawarehouse te modelleren. Naast bekende concepten als snowflakesterschema (Kimball) en datavault (Linstedt) is er ook niets mis met het bedenken van een eigen opzet. Belangrijkste is om afspraken te maken over hoe te modelleren, zodat een krachtig en goed te beheren oplossing wordt ontwikkeld.

Om tot een juiste keuze te komen voor de inrichting van jouw datawarehouse is het belangrijk om te kijken naar de wensen vanuit de business, maar ook naar de te gebruiken tools. Zo werkt een tool als Microsoft Power BI het beste met een sterschema in een zogenoemd datamart.

Data serveren. Iedere organisatie kent meerdere type data consumenten. Niet iedere consument is gebaat bij dezelfde aanlevering van data. Veel gebruikers zijn geholpen met rapporten of dashboards ontwikkeld met programma's als Power BI of Tableau. Data wordt er doorgaans op een geaggregeerd niveau aangeboden, soms aangevuld met KPI's. Gebruikers kunnen zelf de aanwezige data analyseren over bijvoorbeeld tijd.

Dan zijn er ook gebruikers die data analyseren via bijvoorbeeld Excel. De analysis service oplossing van Microsoft is daarbij een mooie oplossing als toevoeging bovenop je datawarehouse. Door het maken van een tabular model, wat kan met onder andere Azure Analysis Services of Power BI worden gebruikers in staat gesteld een connectie te maken met een voorgedefinieerde dataset via een draaitabel in Excel. Steeds vaker worden dit soort analyses ook gemaakt met Power BI.

Als laatste zijn er ook nog gebruikers van datasets. Gebruikers die het liefste tabellen of bestanden hebben met data waarop analyses gemaakt kunnen worden. Het zijn vaak data analisten of data scientists die hier behoefte aan hebben. Afhankelijk van je oplossing zou je deze gebruikers leesrechten op je datawarehouse kunnen geven. Het is ook mogelijk om na te denken over een datahub, waarin je data uit je datawarehouse in datasets beschikbaar stelt.

Datawarehouse of niet?

Een datawarehouse is misschien niet meer de meeste hippe term. Met de komst van cloud services is het aantal mogelijke inrichtingen voor een toekomstvast dataplatform sterk gegroeid. Is een datawarehouse dan eigenlijk nog wel de juiste stap voor jouw organisatie? Het antwoord op deze vraag is niet zo eenvoudig. Daarnaast is het slechts een term waarvan de invulling op vele mogelijke manieren kan worden gedaan. Microsoft hernoemde in 2019 hun product Azure SQL Datawarehouse naar Azure Synapse Analytics. Toch kun je daar nog altijd een nagenoeg klassiek datawarehouse in ontwikkelen.

In basis is een dataplatform voor nagenoeg iedere organisatie een waardevolle toevoeging. Voor kleine organisaties met weinig complexe techniek kan een tool als Microsoft Power BI prima volstaan als dataplatform. Er kan data in worden verzameld, bewerkt en gevisualiseerd.

Wanneer er iets meer complexiteit bij komt kijken is het interessant om een andere vorm van een dataplatform te overwegen. Als we kijken naar de mogelijkheden bij Microsoft dan kom je uit op Azure Synapse Analytics met daarbinnen meerdere opties zoals Serverless en Dedicated SQL Pools. Een ander alternatief is om gebruik te maken van een meer klassiekere Azure SQL Database en hier een gelaagde inrichting te kiezen. In alle gevallen kun je spreken van een datawarehouse, de manier van opslaan van data verschilt echter aanzienlijk.

Kortom, een datawarehouse is voor heel veel organisaties nog steeds een waardevolle investering. Denk daarbij echter wel na over een moderne inrichting.

Datawarehouse vs Datalakehouse

Een nieuwe term is datalakehouse, maar wat is het verschil met een datawarehouse? Het gedachtegoed is hetzelfde. Data wordt verzameld, historisch vastgelegd, getransformeerd en voorzien van business logica. Waar een datawarehouse bestaat uit één of meerdere databases wordt in een datalakehouse architectuur de data opgeslagen in een data lake. De term datalakehouse is dan ook ontstaan vanuit het gedachtengoed van een datawarehouse en de nieuwe mogelijkheden met een datalake.

In één van mijn volgende edities van #adatawhat bekijk ik het concept datalakehouse uitgebreider.

De implementatie

De implementatie van een datawarehouse klinkt wellicht als iets omvangrijks. Met een gedegen aanpak ben je echter goed in staat om snel stappen te zetten. Zelf hanteren wij bij Creates altijd het 'denk groot, start klein' principe. Eerst een vuurtoren bepalen door op basis van gesprekken en onderzoek de architectuur van het gewenste dataplatform te schetsen. Vervolgens in kleine stappen naar de beoogde mijlpalen werken.

Eén van de sleutels tot succes is het betrekken van de toekomstige gebruikers van je nieuwe datawarehouse. Wanneer er gekozen wordt van een agile aanpak om tot de realisatie te komen, dan kunnen er al snel eerste resultaten worden gedeeld met toekomstige gebruikers. Door ze al snel toegang te geven tot de eerste data krijgen ze vertrouwen in het product en ontvang je snel feedback om bij te kunnen sturen. Daarnaast heb je bij dergelijke implementaties altijd een aantal ambassadeurs van je oplossing nodig. Mensen die enthousiast zijn over je product en het gebruik er van. Dit helpt enorm om je nieuwe datawarehouse zo breed mogelijk in te zetten en als organisaties écht stappen te kunnen zetten in meer datagedreven te werk te gaan.

Over de schrijver

Bob

Bob has passion for data and creates awesome Business Intelligence solutions.

LinkedIn