Ebook · Hoofdstuk 1 van 10

Inleiding tot Datawarehousing

Begrijp wat een datawarehouse is, hoe het zich verhoudt tot OLTP-systemen en data lakes, en waarom organisaties er één bouwen.

Wat is een datawarehouse?

15 min leestijd Beginner

Een datawarehouse (DWH) is een centrale opslagplaats van geïntegreerde data uit één of meer bronsystemen, geoptimaliseerd voor analyse en rapportage. De klassieke definitie komt van Bill Inmon (1992): "Een subject-oriented, integrated, time-variant, en non-volatile collectie van data, ter ondersteuning van management beslissingen."

Die vier eigenschappen vormen nog steeds de kern:

Kernidee

Een datawarehouse beantwoordt vragen als "hoeveel verkochten we vorig kwartaal per regio?" snel, terwijl een operationele database geoptimaliseerd is voor "hoeveel staat er nu in voorraad voor product X?". Dat verschil — analytische workload vs. transactionele workload — is de fundamentele reden waarom datawarehouses bestaan.

Korte geschiedenis

Datawarehousing als discipline ontstond in de jaren '80 toen bedrijven beseften dat hun operationele systemen ongeschikt waren voor analyses. De grote namen:

De technologie evolueerde mee: van Teradata-appliances en Oracle Exadata in de jaren '90, naar MPP-databases (Netezza, Vertica) in de jaren 2000, naar de cloud-revolutie sinds ongeveer 2013 met Redshift, gevolgd door BigQuery, Snowflake, Synapse en Microsoft Fabric.

OLTP vs. OLAP

De belangrijkste tegenstelling om te begrijpen is die tussen OLTP (Online Transaction Processing) en OLAP (Online Analytical Processing). Beide zijn databases, maar met fundamenteel andere workloads.

Eigenschap OLTP (operationeel) OLAP (analytisch)
DoelTransacties verwerkenVragen beantwoorden
QuerytypeVeel kleine, kortdurendWeinig grote, lang lopend
Data volumeGB tot TBTB tot PB
SchemavormGenormaliseerd (3NF)Gedenormaliseerd (star)
IndexenB-tree op primaire keysColumnstore, partitions
UpdatesRealtime, frequentBatch, periodiek
VoorbeeldPostgreSQL, SQL ServerSnowflake, BigQuery

Voorbeeld: dezelfde vraag, andere database

Stel je verkoopt online en wil weten: "Wat is de totale omzet per productcategorie in Q1 2026?"

In een OLTP-systeem zou die query er ruwweg zo uitzien:

-- OLTP: zware join over genormaliseerde tabellen
SELECT c.category_name, SUM(oi.quantity * oi.unit_price) AS revenue
FROM order_items oi
JOIN orders o          ON o.order_id = oi.order_id
JOIN products p        ON p.product_id = oi.product_id
JOIN categories c      ON c.category_id = p.category_id
WHERE o.order_date BETWEEN '2026-01-01' AND '2026-03-31'
  AND o.status = 'completed'
GROUP BY c.category_name
ORDER BY revenue DESC;

Op een datawarehouse met een star schema zou diezelfde vraag eenvoudiger en vele malen sneller zijn:

-- OLAP: gedenormaliseerd star schema, één join
SELECT p.category_name, SUM(f.revenue) AS revenue
FROM fact_sales f
JOIN dim_product p ON p.product_key = f.product_key
WHERE f.date_key BETWEEN 20260101 AND 20260331
GROUP BY p.category_name
ORDER BY revenue DESC;

Het verschil zit niet alleen in de query — het zit vooral in hoe de data is opgeslagen, geïndexeerd en gepartitioneerd. Een columnstore-engine leest alleen de drie kolommen die de query nodig heeft, slaat partitions met andere datums over, en aggregeert miljoenen rijen in seconden.

Datawarehouse vs. data lake vs. lakehouse

De moderne data-architectuur kent drie verwante concepten:

Praktische regel

Heb je voornamelijk gestructureerde data en BI-vragen? Een traditioneel datawarehouse is het meest pragmatisch. Werk je met grote hoeveelheden semi-gestructureerde data (JSON, logs) en machine learning? Een lakehouse-architectuur loont. Pure data lakes zonder governance laag (Delta/Iceberg) zijn inmiddels achterhaald — die werden vroeger "data swamps".

Waarom een datawarehouse bouwen?

Bedrijven investeren om vier hoofdredenen in een datawarehouse:

  1. Single source of truth — finance, marketing en operations gebruiken vaak verschillende cijfers voor "omzet". Een DWH dwingt één definitie af.
  2. Performance — analyses op operationele databases zetten productie onder druk en zijn traag. Een DWH offload de werkdruk.
  3. Historie — operationele systemen bewaren vaak alleen de huidige staat. Een DWH bewaart hoe de wereld er gisteren, vorige maand en vorig jaar uitzag.
  4. Integratie — data uit ERP, CRM, e-commerce, logistiek en marketing tools wordt gekoppeld op klant, product en tijd.

De drie lagen van een datawarehouse

Vrijwel elk datawarehouse — ongeacht het patroon — heeft een logische opbouw in drie lagen:

In de Microsoft Fabric en Databricks-wereld worden deze lagen ook wel Bronze / Silver / Gold genoemd (de "medallion architecture"). De namen verschillen, het concept is hetzelfde.

Wie werkt aan een datawarehouse?

Een datawarehouse-traject is geen one-man show. De typische rollen die je tegenkomt — al dan niet gecombineerd in één persoon bij kleinere organisaties:

De grenzen tussen deze rollen zijn fluide. In een mkb is "de data engineer" vaak alle bovenstaande rollen tegelijk. In een enterprise zijn het tien teams. Wat blijft: zonder duidelijke verantwoordelijkheid voor kwaliteit en definities — de data steward-rol — eindigt elk DWH op termijn als black box.

Eenvoudig Python-voorbeeld: tijdsregistratie

Een tijdsdimensie is vrijwel altijd de eerste tabel die je bouwt. Hier een minimaal Python-script dat een dimensie genereert van 2020 t/m 2030:

import pandas as pd

dates = pd.date_range("2020-01-01", "2030-12-31", freq="D")
dim_date = pd.DataFrame({
    "date_key":   dates.strftime("%Y%m%d").astype(int),
    "full_date":  dates,
    "year":       dates.year,
    "quarter":    dates.quarter,
    "month":      dates.month,
    "month_name": dates.month_name(locale="nl_NL"),
    "day":        dates.day,
    "weekday":    dates.day_name(locale="nl_NL"),
    "is_weekend": dates.weekday >= 5,
})

dim_date.to_csv("dim_date.csv", index=False)
print(f"{len(dim_date):,} datumrijen aangemaakt.")

De date_key als integer (YYYYMMDD) is een klassieke truc: het is sorteerbaar, joinbaar én leesbaar. Je ziet meteen of een record uit 2024 of 2026 komt.

Typische use cases — waar levert een DWH écht waarde?

Een datawarehouse is geen doel op zich. Concrete use cases die de investering rechtvaardigen:

Wanneer heb je geen datawarehouse nodig?

Niet elk bedrijf heeft een DWH nodig. Goede signalen dat je het (nog) niet hoeft te bouwen:

In dat geval volstaat vaak een read replica van je productie-database, of een direct-query rapportagetool. Een DWH bouwen "voor het geval dat" is duur en levert weinig op.

Key takeaways

  • Een datawarehouse is geoptimaliseerd voor analytische queries, niet voor transactionele.
  • OLTP en OLAP hebben fundamenteel verschillende ontwerpdoelen — verwar ze niet.
  • De drie lagen (staging / integratie / presentatie) komen in elk patroon terug.
  • Een lakehouse is de moderne convergentie van DWH en data lake.
  • Bouw alleen een DWH als historie, integratie of performance een echt probleem zijn.

Veelgestelde vragen

Wat is een datawarehouse?

Een centrale opslagplaats van geïntegreerde data uit één of meer bronsystemen, geoptimaliseerd voor analyse en rapportage. Inmon's klassieke definitie: subject-oriented, integrated, time-variant en non-volatile, ter ondersteuning van management beslissingen.

Wat is het verschil tussen OLTP en OLAP?

OLTP is geoptimaliseerd voor veel kleine transacties op een genormaliseerd schema (operationele databases). OLAP is geoptimaliseerd voor weinig grote analytische queries op gedenormaliseerde star schemas met columnstore-opslag (datawarehouses).

Wat is het verschil tussen een datawarehouse en een data lake?

Een DWH bewaart gestructureerde data met schema-on-write voor SQL en BI. Een data lake bewaart alle datatypes goedkoop op object storage met schema-on-read. Een lakehouse combineert beide via Delta Lake, Iceberg of Hudi.

Wanneer heb je een datawarehouse nodig?

Bij meerdere bronsystemen, behoefte aan historische analyses, en analytische queries die je productiedatabase belasten. Met één bron, kleine dataset en weinig vragen volstaat een read replica of een rapportagetool met direct query.

Wat is het verschil tussen Inmon en Kimball?

Inmon werkt top-down met een centraal genormaliseerd 3NF-warehouse waar marts uit worden afgeleid. Kimball werkt bottom-up met dimensionele star schemas per business proces. Beide zijn geldig — Kimball voor snelheid, Inmon of Data Vault voor enterprise-governance.

Wat zijn de drie lagen van een datawarehouse?

Staging/bronze (ruwe kopie), integratie/silver (opgeschoond en geharmoniseerd) en presentatie/gold (dimensionele modellen voor BI). Deze medallion-aanpak komt in vrijwel elk patroon terug.