Microsoft Fabric, de SaaS end-to-end oplossing
Microsoft is al jaren een belangrijke speler op het gebied van geïntegreerde data-oplossingen waaronder Azure Synapse Analytics, Azure Machine Learning Studio, Data Factory etc. Microsoft presenteert nu Microsoft Fabric, de eerste Software as a Service (SaaS) end-to-end oplossing. Fabric is gericht op het vereenvoudigen, samenbrengen en integreren van verschillende datagerichte softwaretools op het gebied van onder andere data integratie, - transformatie, -analyse en -visualisatie. Alle gegevens worden in een consistent formaat (delta parquet) opgeslagen zodat dezelfde data door verschillende data persona’s geconsumeerd kan worden zonder extra conversie!
In deze blog verkennen we de functionaliteiten en persona's van Fabric Data Science door een AI/ML-use-case uit te werken. In deze use case testen we de functionaliteiten van Azure op het gebied van data extractie, data orkestratie, data transformatie en we gaan een ML model ontwikkelen en testen. Het uiteindelijke doel van het project is om een model te trainen dat de prijs per nacht voor een Airbnb boeking kan voorspellen op basis van beschikbare data op het internet.
Dataset
Via Opendatasoft vonden we een uitgebreide en grote Airbnb-dataset. Het is een dataset met veel gegevens over Airbnb-listings wereldwijd. De dataset bevat ongeveer 500k records en meer dan 70 kolommen. In deze Airbnb-dataset vind je ontbrekende waarden, variabelen met natuurlijke taalbeschrijvingen, en andere uitdagingen die we zullen aanpakken tijdens de verkennende data-analyse en de fase van datatransformatie.
Data-ingestie
De eerste fase in de dataketen is het ontsluiten van de data van de bron. Hiervoor biedt Microsoft Fabric een ingebouwde Data Factory. Het ziet er vertrouwd uit voor data engineers die ervaring hebben met Azure en Azure Data Factory orkestratie. Omdat Fabric een SaaS-oplossing is, hoeven we ons geen zorgen te maken over het configureren van resources of het opzetten van integratieruntimes. Het is vrijwel plug-and-play en voelt bijna als het spelen van een computerspel in plaats van programmeren. Opendatasoft biedt een open API-endpoint, dus je hebt geen autorisatie nodig om toegang te krijgen tot hun gegevensbronnen. We gebruiken de bouwstenen van Data Factory om verbinding te maken met de REST API en gegevens van de bron naar ons OneLake (datalake) te kopiëren. Begeleid door een Wizard-menu konden we gemakkelijk de REST API-verbinding met Opendatasoft maken.
OneLake in Fabric
Hoe zit het met opslag in Fabric? Waar willen we de gegevens naar kopiëren? Fabric komt met een nieuwe opslagoplossing genaamd OneLake. OneLake is een webgebaseerde applicatie voor gegevensopslag die dezelfde SaaS-fundamenten volgt als Fabric. De gebruiker hoeft geen opslagaccount met specifieke specificaties te implementeren. Hij betaalt per hoeveelheid gebruikte opslag. OneLake ondersteunt ook Delta Lake-mogelijkheden en slaat zelfs automatisch gegevensbestanden op in het delta parquet-formaat wanneer de gebruiker bestanden probeert om te zetten naar tabellen via lakehouse-functionaliteit.
Datatransformatie met Fabric Notebooks
Laten we teruggaan naar de Airbnb-dataset. Omdat we gegevens van een REST API ontsluiten, wordt de ruwe data opgeslagen in json-formaat. Helaas ondersteunt Fabric Data Factory geen complexe datatransformaties zoals het parsen van geneste json-gegevens naar platte csv-bestanden. Om de json-bestanden te parsen, hebben we ervoor gekozen om een script te schrijven met Fabric Notebooks. Dit is vergelijkbaar met Jupyter — of Databricks-notebooks. Deze Notebooks kunnen naadloos worden toegevoegd aan de Data Factory pipelines als een activiteit in het ingestieproces. Een ander voordeel van notebooks in Fabric is dat er geen actieve provisioning of opstarten van een Spark-cluster nodig is, wat een aanzienlijke hoeveelheid tijd (3-5 minuten) kan besparen om code uit te voeren. Je betaalt alleen wanneer de code wordt uitgevoerd in plaats van het risico te lopen te betalen voor kostbare, niet gebruikte Spark-clusters.
Data Science
We zijn aangekomen bij het spannende deel: het bouwen van ons voorspellingsmodel! Fabric biedt verschillende functies voor het bouwen, monitoren en onderhouden van Machine Learning (ML) en Deep Learning (DL) modellen. Voor de Airbnb casus hebben we gekozen voor Lineaire Regressie, Decision Tree en een Random Forest, waarbij we gebruikmaken van het MLLib-pakket voor gedistribueerde ML-training op een Spark-cluster. Daarnaast hebben we een complexer algoritme geprobeerd: een deep learning multilayer perceptron (MLP). Fabric ondersteunt MLFlow waardoor alle modelruns en artefacten opgeslagen worden en door middel van (live) dashboards gevisualiseerd kunnen worden. Tijdens het trainen van de modellen ondervonden we prestatiebeperkingen van Spark, vooral met de MLP’s vanwege de vele mogelijke parametercombinaties. Fabric biedt momenteel geen GPU-rekenkracht, wat een beperking vormt voor complexere DL-architecturen en de ontwikkelomgeving is ook beperkt in functionaliteit ten opzichte van andere data platform tools zoals Databricks.
Microsoft Fabric toont potentie
Concluderend toont Microsoft Fabric potentie en lost het enkele beloftes in, zoals data-ingestie met Data Factory en naadloze integratie tussen verschillende onderdelen van de datawaardeketen. Er zijn echter nog gebieden waar het nog niet aan de verwachtingen voldoet; met name op het gebied van geavanceerde machine learning-taken. Bovendien had ik graag de Copilot-functie willen testen, maar helaas was deze functie op het moment van schrijven van dit artikel nog niet beschikbaar in preview. Al met al biedt het SaaS-dataplatform van Microsoft Fabric een blik op de nabije toekomst van dataplatform integratie. Het kan echter nog even vergen om volwassen genoeg te worden en de complete oplossing te zijn voor datagestuurde use-cases.
Verder met AI
We hopen dat we met dit artikel een eerste inzicht hebben kunnen geven in Microsoft Fabric. Meer weten? Neem gerust contact op we vertellen je er graag meer over. Wil jij iedere dag leren en kunnen sparren met vakgenoten? Bekijk dan de vacatures.