In het afgelopen decennium zijn we overgestapt van rigide datawarehouses naar flexibele data lakes en, meer recentelijk, naar lakehouse-architecturen die beloven het beste van twee werelden te combineren.
Toch blijkt de overgang van de ene generatie dataplatforms naar de volgende moeilijker dan verwacht. Degenen die al aan deze reis begonnen zijn, ontdekken uitdagingen en herhalen fouten door oude ontwerppatronen mee te nemen naar nieuwe systemen.
Na meerdere organisaties te hebben geholpen bij het ontwerpen en schalen van moderne dataplatforms, heb ik gezien dat succes niet afhangt van tools, maar van discipline. Dit artikel is een praktische gids: hoe effectief over te stappen, wat te vermijden en hoe technische keuzes te vertalen naar meetbare bedrijfswaarde.
Als we terugkijken, begon de big data-beweging met een droom van onbeperkte opslag en eindeloos experimenteren. Rond het midden van de jaren 2010 begonnen bedrijven elk mogelijk logbestand, klik en transactie te verzamelen, ervan overtuigd dat volume alleen al inzicht zou brengen. In de praktijk creëerde deze overtuiging alleen maar meer complexiteit. Data lakes verschenen als de modieuze opvolger van warehouses, maar de meeste werden al snel data swamps, plekken waar informatie gemakkelijk binnenkwam maar zelden in bruikbare vorm terugkwam.
Tegen 2022 was de industrie volwassen geworden en waren de vragen begonnen te veranderen. Teams vragen niet langer hoeveel data ze kunnen opslaan, maar hoe ze kunnen vertrouwen op en gebruiken wat ze al hebben. De echte uitdaging vandaag is niet capaciteit maar governance, niet ingestie maar interpretatie.
De belangrijkste les hier is eenvoudig. Meer data verzamelen maakt een bedrijf niet datagedreven. Wat echt belangrijk is, is het begrijpen van de data, het handhaven van goede governance en het efficiënt gebruiken ervan.
Ik raad aan om eigenaarschap te definiëren voor elke dataset, duidelijke retentie- en kwaliteitsbeleid vast te stellen en engineering-inspanningen te richten op de data die direct bedrijfsbeslissingen ondersteunt. Zonder deze basis verandert zelfs het meest geavanceerde lakehouse uiteindelijk in een moderne swamp.
De opkomst van het lakehouse weerspiegelt precies deze verschuiving. In plaats van te kiezen tussen prestaties en flexibiliteit, combineert het lakehouse-model beide. In de kern gebruikt het goedkope cloudopslag in formaten zoals Delta of Iceberg, verrijkt met metadata en transactionele garanties. Het resultaat is een systeem dat net zoveel kost als een lake en zich gedraagt als een warehouse bij het bevragen.
Dit is belangrijk voor bedrijfsleiders omdat het de constante afweging verwijdert tussen goedkope opslag voor historische data en kostbare systemen voor live analytics. Ik stel altijd voor om je lakehouse te positioneren niet als vervanging voor al het andere, maar als een gedeelde basis die zowel traditionele analytics als machine learning in één omgeving mogelijk maakt.
In een lakehouse kan dezelfde omgeving een dashboard voor de CFO ondersteunen, een machine learning-model dat klantgedrag voorspelt, en een ad-hoc query van een productanalist. Data wordt niet langer gedupliceerd over systemen, wat governance eenvoudiger maakt en kostenoptimalisatie natuurlijk laat plaatsvinden.
Wanneer bedrijven overstappen van klassieke datawarehouses of data lakes naar een flexibelere lakehouse-architectuur, verloopt de overgang zelden soepel. Veel teams kopiëren bestaande structuren uit het oude warehouse naar de nieuwe omgeving zonder hun doel te heroverwegen. Het resultaat is het ontstaan van datasilo's, met andere woorden, fragmentatie. Eén versie van de data bevindt zich in het warehouse, een andere in het lake en een derde ergens daartussenin. Vermijd dit door schema's voor het lakehouse vanaf nul te herontwerpen. Modelleer data op basis van toegangspatronen en behoeften van gebruikers in plaats van legacy warehouse-logica.
Een ander terugkerend probleem is normalisatie. Wat bedoel ik daarmee? Warehouses zijn gebouwd op strikte, diep genormaliseerde structuren met tientallen onderling verbonden tabellen. Wanneer deze direct naar een lake worden gekopieerd, vereist elke query een woud van joins. Prestaties kelderen, ingenieurs geven de infrastructuur de schuld en het project verliest geloofwaardigheid. Denormaliseer in plaats daarvan waar het de prestaties helpt en plaats gerelateerde entiteiten dichter bij elkaar om shuffle te minimaliseren. Behandel prestatieontwerp als onderdeel van datamodellering, niet als een latere optimalisatie.
Governance en controle zijn cruciaal. In een data lake is er vaak weinig toezicht omdat teams direct met bestanden werken. In een warehouse gelden strikte regels zoals beveiliging op rijniveau, op rollen gebaseerde toegang en gedetailleerde audittrails. Een lakehouse moet een balans vinden door openheid te waarborgen zonder verantwoordingsplicht te verliezen. Je moet op rollen gebaseerde toegang en lineage tracking vanaf het allereerste begin implementeren. Governance werkt het beste wanneer het samen met het platform groeit en de basis van vertrouwen wordt.
Prestaties hangen ook af van slim ontwerp. Traditionele warehouses vertrouwen op automatische indexering, maar in lakehouses komt efficiëntie van partitionering of liquid clustering, caching en het kiezen van de juiste bestandsformaten voor analytics. Ik raad aan om partitioneringsstrategie en bestandsindeling te behandelen als eersteklas burgers in je architectuur.
Kostenoptimalisatie is een andere belangrijke belofte van het lakehouse, maar het komt niet automatisch. Hoewel cloudopslag goedkoop is en analytics naar behoefte kan op- of afschalen, worden deze voordelen vaak tenietgedaan door slecht dataontwerp en ongecontroleerde groei. Je moet actief de levenscyclus van datasets beheren en ongebruikte kopieën verwijderen. Als dit proces wordt genegeerd, zullen de cloudkosten in de loop van de tijd stilletjes toenemen.
Ik wil graag meer in detail ingaan op kostenoptimalisatie, omdat dit een van de belangrijkste voordelen van de lakehouse-architectuur is.
Een van de belangrijkste manieren waarop de lakehouse-architectuur kosten verlaagt, is door shuffle te minimaliseren, dat wil zeggen, de verplaatsing van data tussen systemen of verwerkingsknooppunten. Om dit te bereiken, ontwerp je data altijd zo dat gerelateerde entiteiten samen worden opgeslagen.
Door alle data op één plek te houden en gerelateerde entiteiten dicht bij elkaar op te slaan, elimineert het lakehouse de noodzaak voor overmatige joins en data-overdrachten. Wanneer we analytics uitvoeren, bijvoorbeeld bij het bouwen van een machine learning-model voor klantanalyse, kunnen we zowel historische als echte transactionele data gebruiken zonder deze tussen systemen te kopiëren of te verplaatsen.
Een ander belangrijk principe dat kostenoptimalisatie mogelijk maakt, is de ontkoppeling van opslag en berekening. Dataopslag en dataverwerking schalen onafhankelijk op basis van werkelijke vraag. We betalen alleen voor de resources die we gebruiken in plaats van grote systemen met vaste capaciteit te onderhouden. Opslag blijft goedkoop en schaalbaar, en rekenkracht kan worden verhoogd of verlaagd wanneer nodig. Deze flexibiliteit leidt tot lagere infrastructuurkosten en efficiëntere data-operaties. Begin altijd klein en laat autoscaling zijn werk doen. Monitor het gebruik en begrijp je workload-patronen voordat je je vastlegt op gereserveerde capaciteit.
Auto-scaling clusters helpen verder bij het beheersen van kosten. Een machine learning-workload heeft computerbronnen in de cloud nodig, virtuele machines met geheugen en verwerkingskracht vergelijkbaar met een gewone computer. In het verleden kochten of huurden bedrijven fysieke servers van tevoren en voerden processen uit op die vaste capaciteit. In de cloud betalen we voor berekening op basis van werkelijk gebruik, per tijdseenheid en per hoeveelheid resources. Ik raad sterk aan te beginnen met minimale clustergroottes, schalinggedrag te observeren en bovengrenzen in te stellen om ongecontroleerde kosten te voorkomen.
Laten we het hebben over de lakehouse-architectuur. In veel opzichten hangt het ontwerp af van hoe we het datamodel structureren. De meest voorkomende en effectieve aanpak is de gelaagde, of medallion, architectuur, waarbij elke laag een specifiek doel dient en verschillende soorten gebruikers en workloads ondersteunt.
— De eerste laag, vaak raw of bronze genoemd, is een directe kopie van de brondata. Het dient voornamelijk technische behoeften en wordt slechts voor een korte periode bewaard om snelle herverwerking mogelijk te maken wanneer nodig. Het moet worden behandeld als tijdelijke opslag.
— De tweede laag, of normalisatielaag, bevat opgeschoonde en gestructureerde data, soms gecombineerd met andere tabellen zoals gebruikers en bestellingen. Dit is waar machine learning-modellen vaak worden getraind. Het is best practice om datavalidatie en schema-afdwinging in deze fase te automatiseren. Het handhaven van consistentie is waardevoller dan het verwerken van grote volumes data.
— De laatste laag, bekend als de gold-laag, is waar geaggregeerde data zich bevindt. Dashboards en BI-tools zoals Tableau of Power BI maken doorgaans verbinding met deze laag om toegang te krijgen tot kant-en-klare metrieken en visualisaties. Toch kan niet alles vooraf worden berekend.
Elke laag heeft een doel en samen stellen ze zowel machine learning als business intelligence in staat te gedijen.
Je moet je lagenstrategie afstemmen op consumptiepatronen. Data scientists werken meestal met de silver-laag en executives verwachten antwoorden van de gold-laag. Flexibiliteit is de ware kracht van het lakehouse: het vermogen om meerdere doelgroepen te bedienen zonder meerdere afzonderlijke systemen te bouwen en te onderhouden.
Als ik vanaf nul zou ontwerpen, zou ik een paar dingen anders doen dan hoe de industrie in het verleden met data omging.
Hieronder staan de lessen die ik heb geleerd uit echte implementaties en wat ik nu aanbeveel.
Alles in één keer migreren is niet altijd optimaal. Bedrijven proberen vaak terabytes aan data naar een nieuw systeem te verplaatsen, om er vervolgens achter te komen dat niemand het gebruikt. Een beter pad is beginnen met één use case die duidelijke bedrijfswaarde levert, zoals een aanbevelingsengine, dynamische prijsstelling of een klantretentiemodel. Succes op dat gebied biedt zowel geloofwaardigheid als een blauwdruk voor opschaling.
Ik zou bedrijfsvereisten zo vroeg mogelijk naar technische vereisten vertalen. Als een rapport moet filteren op regio, impliceert die vereiste partitionering op regio op het opslagsniveau. Als analisten near real-time updates verwachten, stuurt dat beslissingen over indexering of caching aan. Zonder deze vertaling drijft technologie weg van bedrijfsdoelen en brokkelt vertrouwen af.
Ik zou technologie altijd afstemmen op de capaciteiten van de organisatie. Een bedrijf met een sterke engineeringcultuur kan de voorkeur geven aan open source-componenten en maximale controle. Een bedrijf met beperkte technische middelen kan beter worden gediend door beheerde diensten die SQL-interfaces blootleggen aan analisten. Er is geen universele oplossing, wat belangrijk is, is ambitie afstemmen op capaciteit.
Tot slot zou ik de aanname ter discussie stellen dat een lakehouse simpelweg een betere lake is. In werkelijkheid is het een ander paradigma. Het erft enkele kenmerken van zowel lakes als warehouses, maar is geen vervanging voor elk use case. Hoogfrequente transactionele workloads kunnen bijvoorbeeld nog steeds gespecialiseerde systemen vereisen. Het herkennen van deze grenzen voorkomt teleurstelling en zorgt ervoor dat het lakehouse wordt gebruikt waar het echt uitblinkt.


