M365Con 2027 – gratis online conferentie · 11–22 Jan 2027 · 120 sessions→ m365con.net

Blog · Mirko Peters

Lakehouse-architectuur onder de knie krijgen: bronze, silver en gold in Microsoft Fabric

By ·

Welkom terug bij de companionblog van de podcast! In onze laatste aflevering duiken we diep in de praktijk van machine learning engineering binnen de Micro…

Automatically translated with AI from the original post. Read the English original

▶ BLOGMastering LakehouseArchitecture: Bronze,…M365.FM
Titelbild: Mastering Lakehouse Architecture: Bronze, Silver, and Gold in Microsoft Fabric

Welkom terug bij de podcast-begeleidingsblog! In onze laatste aflevering zijn we diep ingegaan op de praktijk van machine learning-engineering binnen het Microsoft-ecosysteem. Heb je nog niet geluisterd? Bekijk dan zeker Build Machine Learning Models in Microsoft Fabric. Vandaag bouwen we verder op die concepten en kijken we hoe het structureren van je data met een medallion-architectuur binnen een Microsoft Fabric Lakehouse de absolute basis vormt van een succesvolle, schaalbare machine learning-operatie.

Productieklare machine learning-modellen bouw je niet alleen door het juiste algoritme te kiezen of hyperparameters af te stellen. Heel vaak hangt het succes van je voorspellende modellen af van datakwaliteit, reproduceerbare pipelines en robuuste governance. Laten we uitzoeken hoe je de baas wordt over je Lakehouse-architectuur met Microsoft Fabric.

Architectuur in een oogopslag

Bij het ontwerpen van een end-to-end data- en machine learning-platform in Microsoft Fabric is het cruciaal om de datastroom te begrijpen. Alles begint in OneLake, de gedeelde opslaglaag. Vanuit daar wordt de data naar een Lakehouse geleid, waar ze door bronze, silver en gold Delta-tabellen stroomt.

Voor de rekenkracht geven Fabric-notebooks data scientists toegang tot een vooraf geïnstalleerde data science-stack op basis van Spark, Python en R. Experimenttracking verloopt naadloos via ingebouwde MLflow-runs, die metrics, parameters en artefacten vastleggen zonder externe trackingservers. Zodra modellen getraind zijn, gaan ze naar het gedeelde register, compleet met versiebeheer, goedkeuringen en volledige data-lineage. Tot slot worden modellen beschikbaar gesteld via beheerde batchjobs of realtime HTTP-endpoints, die consumenten zoals Power BI, Power Apps en eigen API-clients voeden.

Lakehouse: beheers de input, houd de controle

De kernfilosofie van een Lakehouse is de flexibiliteit van een data lake combineren met de betrouwbaarheid van een datawarehouse. Om dit goed te laten werken, moet je je data in afzonderlijke lagen structureren.

Leg je tabellen in lagen

  • Bronze: Dit is je laag voor ruwe ingestie. Data komt hier binnen volgens schema-on-read-principes en blijft onveranderlijk voor audit en herverwerking.
  • Silver: In deze laag wordt data opgeschoond, getypeerd en samengevoegd. PII wordt geminimaliseerd en eerste kwaliteitscontroles worden afgedwongen.
  • Gold: De goldlaag bevat feature-klare aggregaties, gebouwd op heldere, gedocumenteerde datacontracten die je machine learning-modellen direct kunnen gebruiken.

Toegang op basis van doel

Gebruik rolgebaseerd toegangsbeheer op werkruimteniveau in combinatie met toegangscontrolelijsten op tabelniveau. Geef data scientists leestoegang tot silver- en goldtabellen en beperk schrijftoegang specifiek tot featuretabellen en experimentmappen.

Kwaliteitsbewaking van data

Implementeer strikte verwachtingen voor not-null-beperkingen, waardebereiken en referentiële integriteit. Wanneer rijen deze controles niet doorstaan, stuur je ze direct naar een _quarantine-tabel, zodat je downstream-pipelines niet stilzwijgend falen of beschadigde data inladen.

Feature store lite

Behandel herbruikbare features als goldtabellen, bijvoorbeeld feat_customer_rolling_90d, en voorzie ze van een YAML-datawoordenboek zodat je team begrijpt wat elke feature representeert.

Notebooks zonder gedoe

Samen coderen kan snel chaotisch worden als ontwikkelaars met verschillende omgevingen werken. Fabric biedt vooraf geïnstalleerde kernels, waaronder pandas, PySpark, scikit-learn en PyTorch, zodat iedereen vanuit exact dezelfde basis werkt.

Hanteer een gestructureerde projectindeling die verkennende notebooks, scripts voor featureengineering, trainingsroutines voor modellen en configuratiebestanden van elkaar scheidt. Leg reproduceerbaarheid vast in code in plaats van te vertrouwen op handmatige klikken in de UI. Lees vanuit je Lakehouse via Spark SQL, schrijf je definitieve features als Delta-tabellen en zaai altijd kleinere ontwikkelsampletabellen, zodat je team snel kan itereren zonder te wachten op zware queries over de volledige dataset.

Track alles met MLflow (ingebouwd)

Handmatig bijhouden van modelexperimenten leidt tot resultaten die je niet kunt reproduceren. Door de ingebouwde MLflow-integratie in Fabric te gebruiken, zorg je voor vergelijkbaarheid tussen runs, volledige controleerbaarheid en eenvoudig terugdraaien wanneer een nieuw gedeployd model slechter presteert.

Log alle hyperparameters, evaluatiemetrieken en getrainde modelartefacten rechtstreeks in je trainingsscripts. Geef je runs contextuele metadata mee, zoals het dataventster, de versies van de featureset en de code-commit-hashes, en koppel je trainingstabellen aan specifieke Delta-snapshotversies.

Registry, goedkeuringen en lineage

Een model van experimenteren naar productie brengen mag nooit een kwestie van gokken zijn. Promoveer je best presterende runs naar een Registered Model met semantische versionering, zoals 1.0.0. Implementeer een tweestappen-goedkeuringsproces waarbij zowel de data science-eigenaar als de business-eigenaar moeten tekenen. Leg tot slot uitgebreide model card-metadata vast, met het doel van het model, de datascope, fairness-aandachtspunten en de service-level objectives voor monitoring.

Serveringsopties (kies op basis van de workload)

Batch scoring (goedkoop en betrouwbaar)

Voor workloads die geen direct antwoord binnen een seconde nodig hebben, is batch scoring je beste vriend. Gebruik geplande Fabric-jobs of notebooks om productiemodellen uit de registry te lezen, ze toe te passen op batchdatasets en de voorspellingen terug te schrijven naar het Lakehouse.

Realtime endpoint (interactieve apps)

Wanneer gebruikers direct feedback nodig hebben, zoals bij formuliervalidatie of risicoscoring bij een klik, deploy je je geregistreerde model als beheerd realtime endpoint rechtstreeks via de Fabric-gebruikersinterface. Stel een voorspelbaar JSON-contract beschikbaar en koppel dit veilig aan Power Apps of externe applicaties.

Monitoring en hertraining

Een model deployen is maar de helft van het werk. Je moet datadrift voortdurend monitoren door live featureverdelingen te vergelijken met je trainingsbasislijn, met behulp van Kullback-Leibler-divergentie of drempelwaarden voor de Population Stability Index. Volg ook operationele gezondheidsmetrieken, zoals endpointlatentie, foutpercentages en kosten per duizend scores. Automatiseer je hertrainingspipelines met een combinatie van tijdgestuurde triggers en event-gebaseerde driftalerts, zodat je modellen na verloop van tijd accuraat blijven.

Beveiliging en compliance

Beveiliging is cruciaal bij het verwerken van bedrijfsdata. Pas het principe van least privilege toe door data scientists leesrechten te geven op de silver- en gold-lagen, en schrijfrechten te beperken tot aangewezen feature- en experimentmappen. Gebruik managed identities en Azure Key Vault voor alle opslag van inloggegevens, zodat geheimen nooit hardcoded in je notebooks terechtkomen. Beperk de blootstelling aan persoonsgegevens (PII) door gevoelige informatie al in de silver-laag te hashen of te tokeniseren, zodat deze nooit in je featurestores terechtkomt.

Wat je moet meten (snel waarde aantonen)

Om de waarde van je machine learning-initiatieven snel aan te tonen, moet je je op de juiste metrieken richten. Meet de voorspellende kracht van het model met AUC en precision-at-k voor rankings, volg de zakelijke impact via incrementele omzet of dalende churn-percentages, monitor de snelheid van dataklaar tot productie-deployment, en beoordeel de betrouwbaarheid van de infrastructuur en de kosteneffectiviteit per duizend voorspellingen.

Uitrolplan van 14 dagen

Wil je snel van nul naar een productieklare Fabric-implementatie, volg dan dit gestructureerde uitrolplan van twee weken:

  • Dag 1–2: Lakehouse-hygiëne, bronze/silver/gold-structuur, ACL's en kwaliteitscontroles.
  • Dag 3: Notebook-opzet, datahelpers en voorbeeldtabellen voor development.
  • Dag 4–5: Featureset v1, training van de basislijn en MLflow-logging.
  • Dag 6: Evaluatiesuite, model card-opstelling en registratie van het model (v0.1).
  • Dag 7: Aanmaken van de batch scoring-job en integratie van het Power BI-dashboard.
  • Dag 8: MVP voor monitoring, driftcontroles en operationele logging.
  • Dag 9: Implementatie van de goedkeuringsworkflow en promotie naar productie.
  • Dag 10: Opzet van het realtime endpoint, throttling en request-logging (indien van toepassing).
  • Dag 11–12: A/B-testen, backtesting en het definiëren van zakelijke KPI's.
  • Dag 13: Kostenbeheer, autoscaling-guardrails en een canary deployment-plan.
  • Dag 14: Runbook-documentatie, overdracht aan het team en backlogplanning.

Veelvoorkomende valkuilen (en snelle oplossingen)

Zelfs ervaren teams lopen tegen obstakels aan. Voorkom notebook-roulette door je omgevingen vast te leggen op standaard Fabric-kernels. Test niet uitsluitend op kleine samples die breken zodra je naar volledige datasets opschaalt. Voorkom ‘ghost models’ in productie door registry-promotieworkflows strikt af te dwingen. Houd je cloudkosten onder controle door waar mogelijk standaard batchverwerking te gebruiken en afgeleide features te cachen.

Handige snippets

Om je volgende project een vliegende start te geven, hier een kort voorbeeld van hoe je een specifieke versie van een Delta-tabel leest:

sales_v = spark.read.option("versionAsOf", 123).table("lakehouse.gold.sales_txn")

Als je feature-belang wilt extraheren met scikit-learn en dit direct wilt loggen in MLflow, gebruik dan deze aanpak:

import pandas as pd
fi = pd.Series(clf.feature_importances_, index=feature_cols).sort_values(ascending=False)
mlflow.log_artifact(fi.head(30).to_frame("importance").to_csv("fi.csv", index=True))

En om de Population Stability Index (PSI) te berekenen voor drift-detectie:

import numpy as np
def psi(expected, actual, bins=10):
    e, b = np.histogram(expected, bins=bins, range=(np.min(expected), np.max(expected)))
    a, _ = np.histogram(actual,   bins=b,     range=(np.min(expected), np.max(expected)))
    e = np.clip(e / e.sum(), 1e-6, None); a = np.clip(a / a.sum(), 1e-6, None)
    return np.sum((a - e) * np.log(a / e))

Wil je, zet dan je huidige Lakehouse-tabelnamen en een doelgebruik – zoals klantverloop (churn), lead scoring of vraagvoorspelling – in de comments, of neem direct contact op. Dan breng ik een minimale featureset, een basismodelkeuze en de exacte batch- of realtime-koppeling in kaart, zodat je snel je eerste Microsoft Fabric-deployment live krijgt!

Entities in this article

Microsoft Fabric Machine learning Medallion architecture Power Apps Power BI Data lineage Data quality Fabric notebooks Fabric workspace HTTP

Related articles

RSS