Microsoft Fabric-migratie: van lokaal naar cloud

Microsoft Fabric-migratie stappenplan met architectuuroverzicht

In het eerste deel van deze serie beschreef ik hoe ik een lokale ontwikkelomgeving heb opgezet voor onze golfconditie-applicatie. In dit tweede deel ga ik het vooral hebben over het overzetten van deze setup naar Microsoft Fabric. Waarom heb ik gekozen voor Microsoft Fabric, wat viel me op en waar liep ik tegen aan?

Waarom Microsoft Fabric?

De keuze voor Microsoft Fabric was voor mij een logische stap. Het biedt een geïntegreerd platform waarin je data kunt binnenhalen, opslaan, transformeren en visualiseren – allemaal binnen dezelfde omgeving. De lokale setup bestond uit losse componenten:

  • Python voor data ingestion
  • JSON-bestanden voor opslag
  • PySpark voor transformaties
  • SQL Server voor de database
  • Power BI voor visualisatie

Al deze functionaliteit vind je terug in Fabric. Je hebt notebooks met geïntegreerde PySpark-support voor datatransformatie, een lakehouse voor bestand- en tabelopslag, SQL Analytics-endpoints, en directe Power BI-integratie. Daarnaast kun je eenvoudig data pipelines maken om alles aan elkaar te knopen.

De nieuwe architectuur

De basis van onze architectuur blijft grotendeels hetzelfde, maar alles komt nu samen in het Fabric-ecosysteem. De extractie- en transformatienotebooks zijn onderdeel van een pipeline geworden, de opslag is verplaatst naar een lakehouse, en de datamodellering gebeurt nu direct in SQL Analytics Endpoints.

Microsoft Fabric-migratie stappenplan met architectuuroverzicht

Deze afbeelding toont hoe de verschillende componenten met elkaar communiceren binnen Microsoft Fabric. De data stroomt van de REST API via notebooks naar het lakehouse, waar het zowel als JSON files en Delta tables wordt opgeslagen, om uiteindelijk in Power BI te worden gevisualiseerd.

Binnen het lakehouse wordt de data opgeslagen volgens een gestructureerd datamodel:

Data warehouse model met dimension en fact tabellen

Dit datamodel toont hoe je de ruwe data kan transformeren naar een star-schema met dimensie-tabellen voor locaties, tijdstippen en parameters, met een centrale feiten-tabel voor alle meetwaarden. Deze structuur maakt het mogelijk om efficiënt analyses uit te voeren en rapporten te bouwen.

Stap-voor-stap migratie

Workspace-setup

Je begint met het aanmaken van een nieuwe workspace in Microsoft Fabric. De stappen zijn als volgt:

  1. Een workspace aanmaken.
    Microsoft Fabric workspace aanmaken - eerste stap van de migratie
  2. Een lakehouse aanmaken.
    Nieuw lakehouse configureren in Microsoft Fabric voor data-opslag
    • Een map voor ruwe data aanmaken binnen het lakehouse.
  3. Een notebook voor data-extractie aanmaken vanuit het lakehouse
    Data-extractie notebook aanmaken vanuit Microsoft Fabric lakehouse
    1. Dit zorgt ervoor dat de notebook aan het lakehouse verbonden wordt waardoor het gemakkelijker is om de bestanden op te slaan en op te halen.
    2. Kopieer de cellen van het notebook een voor een, zodat het makkelijk debuggen is in het geval van fouten.
    3. Wijzig de opslaglocaties van de bestanden naar het lakehouse.
    4. output_file = '/lakehouse/standaard/Files/catalog.json'
  4. Maak een tweede notebook aan voor de datatransformatie.
    1. Wijzig de bestandslocaties van de JSON-bestanden.
    2. Maak een nieuwe omgeving aan waar je alle benodigde libraries (pyproj) aan toevoegt.
      • Het kan even duren voor deze aangemaakt is.
        Custom environment configuratie in Microsoft Fabric met pyproj library
    3. Maak alle transformaties aan binnen dit notebook zodat je deze niet meer in Power BI hoeft te doen.
    4. Sla de tabellen op in deltaformaat zodat ze in het lakehouse worden opgeslagen.
       location_measurement_fact.write.format("delta").mode("overwrite").option("mergeSchema", "true").save("Tables/location_measurement_fact")
  5. Maak een data-pipeline aan.
    Microsoft Fabric data-pipeline aanmaken voor orchestratie
    1. Voeg de ingest notebook toe.
    2. Voeg de transformatie notebook toe.
    3. Verbindt de “complete” uitgang van de ingest notebook met de transformatie notebook.
      Pipeline configuratie met verbonden notebooks in Microsoft Fabric
  6. Ga naar het lakehouse.
    1. Rechtsboven wijzig de “lakehouse” naar “SQL Analytics Endpoints”.
      SQL Analytics Endpoints interface in Microsoft Fabric
    2. Kies voor Model view.
      • Hier kun je de relaties tussen tabellen aangeven.
        Data model view met tabelrelaties in Microsoft Fabric
    3. Selecteer de tabellen in de verkenner en klik linksboven op new report.
      • Het voordeel om deze hier vandaan aan te maken is dat de Power BI-interface direct verbinding legt met de tabellen.
        Power BI rapport aanmaken vanuit SQL Analytics Endpoints in Fabric
  7. Binnen Power BI kun je de visualisaties op dezelfde manier opbouwen als je eerder gewend was.

Uitdagingen en oplossingen

De grootste uitdaging was het verplaatsen van transformaties uit Power BI naar de transformatienotebook. Het gaat dan om:

  • Filtering van extreme meetwaarden (>900 naar 0)
  • Categorisering van golfcondities
  • Omzetting van windrichting naar tekst

Een andere uitdaging was het opzetten van het juiste ontwikkelomgeving met alle benodigde libraries. Het aanmaken van zo’n environment kan even duren, dus houd daar rekening mee.

Performance

In onze tests merkte ik dat de cloudtransformaties soms wat meer tijd kosten dan lokaal. Dit kan te maken hebben met ons proefaccount. Voor onze batchverwerking is dit geen probleem – de data  hoeft niet realtime verwerkt te worden

Resultaten van de migratie

De migratie naar Microsoft Fabric heeft geleid tot een gestroomlijnde oplossing waarbij alle componenten van onze data-pipeline zijn geïntegreerd. Hoewel de architectuur compleet is vernieuwd, blijft het eindresultaat in Power BI visueel vergelijkbaar met de lokale installatie.

Power BI dashboard met golfhoogte en windsnelheid visualisaties

Het hoofddashboard toont de golfcondities op verschillende meetlocaties langs de Nederlandse kust, met grafieken voor zowel golfhoogte als windsnelheid over een periode van meerdere dagen.

Detailinformatie over golfhoogte op specifieke locatie

De popup-functionaliteit toont alle relevante meetgegevens in één overzicht, inclusief golfhoogte, windsnelheid, windrichting en tijdstip.

Gedetailleerde meetgegevens met exacte waardes

De popup-functionaliteit toont alle relevante meetgegevens in één overzicht, inclusief golfhoogte, windsnelheid, windrichting en tijdstip.

Dashboard met zuidwestelijke windrichting

Het dashboard past zich dynamisch aan bij het selecteren van verschillende windrichtingen, wat direct invloed heeft op de getoonde golfcondities.

Een groot voordeel van de migratie is de verbeterde structuur van de onderliggende code. Door alle transformaties te verplaatsen naar de notebooks is het proces veel overzichtelijker geworden. De data-pipeline is nu volledig geïntegreerd, wat het onderhoud en toekomstige uitbreidingen aanzienlijk vereenvoudigt.

Security

Bij deze implementatie heb ik de basis-beveiligingsinstellingen van Microsoft Fabric gebruikt, aangezien er geen gevoelige data verwerkt wordt. De standaardinstellingen bieden:

  • Notebooks zijn alleen binnen de organisatie te delen
  • Lakehouse-toegang is beperkt tot workspace-admins
  • Power BI-rapporten hebben aparte toegangscontrole

Voor productie-omgevingen met gevoelige data is het aan te raden om een uitgebreide security-analyse uit te voeren en aanvullende beveiligingsmaatregelen te implementeren.

Conclusie

De migratie naar Microsoft Fabric heeft de setup een stuk gestroomlijnder gemaakt.

Een praktische tip voor toekomstige migraties: onderzoek of je bestaande Jupyter notebooks en Power BI-rapporten direct kunt uploaden naar Fabric. Dit kan veel tijd besparen omdat je de componenten dan alleen hoeft aan te passen in plaats van opnieuw op te bouwen.

Onze belangrijkste tips:

  • Begin klein en test elke stap
  • Neem de tijd om Fabric goed te leren kennen
  • Test je transformaties grondig
  • Documenteer wat je doet

Wat nu?

Nu de migratie naar Microsoft Fabric is afgerond, kan ik verder bouwen op deze basis. De cloud-setup maakt het makkelijker om nieuwe functionaliteit toe te voegen en aanpassingen door te voeren. Door alles in één platform te integreren, is het onderhoud een stuk eenvoudiger geworden. De volgende stappen die ik wil nemen zijn:

  • De pipeline verder optimaliseren door betere scheduling en error handling
  • Meer Fabric-features verkennen zoals Power BI dashboards delen
  • De applicatie schaalbaar maken voor pieken in datagebruik
  • Monitoring toevoegen om inzicht te krijgen in prestaties

Vooruitblik

Nu de migratie naar Microsoft Fabric met succes is afgerond, ga ik verder met het uitbreiden van de applicatie. De volgende stap is het bouwen van een gebruiksvriendelijke webinterface waarmee de golfconditie-gegevens toegankelijk worden voor een breder publiek. In het volgende deel van deze serie laat ik zien hoe je API’s opzet om de data vanuit Fabric beschikbaar te maken en hoe je een interactieve webinterface ontwikkelt.

Dit artikel is het tweede deel in een serie over de ontwikkeling van een intelligente golfconditie-applicatie. In het volgende deel staat de webinterface-ontwikkeling centraal.