Real-Time Event Streaming met Microsoft Fabric en Eventhouse
Steeds meer ontstaat de behoefte om real-time gegevens uit allerlei bronnen te verwerken en te analyseren zodat snel en effectief gereageerd kan worden op veranderingen. Microsoft Fabric biedt met zijn Real-Time Intelligence-mogelijkheden een oplossing om deze uitdagingen aan te gaan. Twee essentiële componenten binnen Fabric zijn Evenstream en Eventhouse. In deze blog gaan we daar dieper op in.

Eventhouse is een oplossing binnen Microsoft Fabric die speciaal is ontworpen voor real-time analyse en verkenning van grote hoeveelheden gegevens. Een Eventhouse fungeert als een werkruimte waarin meerdere databases beheerd kunnen worden, wat het beheer optimaliseert. Het type database binnen Eventhouse is een KQL-database. Een KQL-database in Fabric is een op logs gebaseerde analytische database, die draait op de Kusto Engine. Het wordt gebruikt om grote hoeveelheden gegevens snel te verwerken en te analyseren met Kusto Query Language (KQL).
Fabric-Eventstream: De link naar Real-Time gegevens
Fabric-Eventstreams geven de mogelijkheid om real-time gebeurtenissen in Fabric te integreren, te transformeren en door te sturen naar diverse bestemmingen zonder dat daar code voor nodig is. Fabric-gebeurtenisstromen kunnen gezien worden als een data-router die continue gebeurtenissen kan ontvangen, verwerken en doorsturen. Daarnaast ondersteunen Fabric-gebeurtenisstromen Apache Kafka-endpoints. Apache Kafka is een populaire open-source event streaming oplossing die wordt gebruikt voor real-time dataverwerking. In Microsoft Fabric kunnen Kafka-eindpunten worden gebruikt binnen Fabric-gebeurtenisstromen om real-time gegevens te verzenden en ontvangen.


Hoe werkt het?
We beginnen met het maken van een nieuw Eventhouse in Ms Fabric. Hiervoor heb je een Fabric capaciteit licentie nodig.
Na het invoeren van een naam wordt er een Eventhouse gecreëerd in de Fabric werkruimte, daarnaast wordt er ook automatisch een lege KQL-database aangemaakt.


Nu kunnen we een Eventstream aanmaken.
Nadat we de Evenstream een naam hebben gegeven komen we in onderstaand scherm en kunnen we een gegevensbron kiezen.


In dit voorbeeld kies ik voor Externe bronnen en in het vervolgscherm voor “Gebeurtenissen voor Fabric-werkruimte-items” Dit zorgt voor een constante stroom van logs als Fabric items bekekenen, aangemaakt of gewijzigd worden in de betreffende werkruimte.
In het volgende scherm hoef ik dan alleen nog maar mijn doel toe te voegen in de eventstream en daar kies ik mijn eerder gemaakte Eventhouse en bijbehorende KQL-database. Zodra ik deze stroom publiceer en de tabelnaam invoer die ik wil gebruiken, wordt hij actief. Optioneel had ik nog de mogelijkheid om eventuele transformaties toe te voegen.


Wanneer we de KQL-database opnieuw openen kunnen we zien dat onze tabel vrijwel direct bijgewerkt wordt met de Fabric logs.
Real-time dashboard of Power BI rapport?
Op basis van de KQL-database kan je een real-time dashboard maken (niet te verwarren met een Power BI dashboard). Dit type dashboard is vergelijkbaar met de dashboards die je kan maken in Azure Data Explorer en achter elke tegel zit een specifieke KQL-query. Het biedt ook de mogelijkheid om automatisch verversen in te stellen en alerts te definiëren.


Is een Power BI rapport dan ook mogelijk op basis van de KQL-database? Jazeker, ik kan vanuit mijn KQL-database ook kiezen om de data te analyseren via Power BI. Welke tool kies je dan? Kies voor een real-time dashboard wanneer je directe inzichten en onmiddellijke reacties op gegevensveranderingen nodig hebt. Kies voor Power BI wanneer je uitgebreide datavisualisatie, geavanceerde analyse en interactieve rapporten nodig hebt.
Kies je voor Power BI dan wordt er automatisch een semantic model op de achtergrond aangemaakt waarmee ik mijn rapport kan samenstellen. Wanneer het semantic model via Tabular Editor geopend wordt zien we dat de source AzureDataExplorer is met een link naar mijn aangemaakte KQL-database. De partitie is DirectQuery wat natuurlijk logisch is als we naar real-time data willen kijken. In Tabular Editor kan ik het model dan nog verder aanpassen, zoals het toevoegen van een measure.


OneLake synchronisatie
De KQL-database geeft om de mogelijkheid om de data beschikbaar te maken in OneLake. Deze replicatie is dan zo goed als real-time in te stellen. Voordeel is dat je de data dan in een uniforme Data Lake tabelstructuur hebt en niet afhankelijk bent van de specifieke Kusto Query Language. Daarnaast is OneLake makkelijker te integreren met andere Fabric-engines zoals Power BI, Lakehouse en Notebooks.
Conclusie
Real-Time Event Streaming is een waardevolle functionaliteit in Ms Fabric als er directe respons wordt gevraagd bij gewijzigde data dat aan bepaalde triggers voldoet. Denk bijvoorbeeld aan IoT-apparaten waarbij real-time gegevens van sensoren wordt verzameld. Een ander voorbeeld zijn financiële transacties die in real-time gemonitord worden via SQL CDC, waarbij potentiële verdachten transacties getriggerd worden voor verdere analyse. Of je wil als e-commercebedrijf klantgedrag in real-time analyseren om gepersonaliseerde aanbiedingen te doen, een REST API die klantinteracties en aankopen real-time verzamelt zou dan als bron kunnen dienen voor een Eventstream.
