How to Set Up Agentic Semantic Model Development for Power BI Using GitHub Copilot on Windows
I was inspired and in awe after watching the video that Rui Romano posted in LinkedIn where Rui shared a video on how he used Agentic model development works 202603 AgenticE2E FabCon. It looked like all that I had to do was have the right tools to use, edit a few files and let the LLMs do the rest! In…
Restore Microsoft Items from Backup using Python & Fabric CLI
In my previous blog post I had shown you how to backup your Microsoft Fabric Items: Backing Up Your Microsoft Fabric Workspace: A Notebook-Driven Approach to Disaster Recovery – FourMoo | Microsoft Fabric | Power BI The next natural question is what happens when you want to restore one if the items that were previously backed up. In the steps…
Microsoft Fabric: Why Warehouse Beats Lakehouse by 233% in Speed and 278% in Capacity Savings
After my previous blog post on the different semantic model options and at the same time working with a Fabric customer, it got me thinking which is faster and which consumes less capacity when ingesting data into Power BI either via the SQL Endpoint to a Lakehouse or a query from the Warehouse. Below you will find the information which…
How Much of Your Fabric Capacity Is Really Being Eaten by Background Jobs? (The 24-Hour Smoothing Trick Explained)
I was recently working with a customer and one of the questions they had is we are going to be running an ingestion process. We want to know how much Fabric Capacity this will be consuming. The challenge with this question is that in Fabric a background capacity gets smoothed over 24 hours. For example, when looking at the Capacity…
Direct Lake or Import which Semantic Model has the best performance
In this blog post I am going to show you how I completed the automated testing and then the results where I am going to compare Direct Lake, Import and DirectQuery and which one appears to be the best. As always, your testing may very or be different to my tests below. I would highly recommend that you use the…
Comparing Microsoft Direct Lake vs Import– Which Semantic Model performs best?
I was recently part of a discussion (which I have heard of multiple times), which was which semantic model to use in Microsoft Fabric. This was the source for this blog post where I am going to compare Microsoft Direct Lake (DL) to an Import Semantic Model. The goal is to first explain how I set up and configured the…
Backing Up Your Microsoft Fabric Workspace: A Notebook-Driven Approach to Disaster Recovery
In the high-stakes world of data architecture, where downtime can cascade into real business disruptions, I’ve learned that even the most robust platforms have their blind spots. Just last month, while collaborating with a client’s Architecture team on their disaster recovery strategy, we uncovered a subtle but critical gap in Microsoft Fabric: while OneLake thoughtfully mirrors data across multiple regions…
Power BI MCP Tuner Server and does it reduce capacity requirements – Part 4
This blog post is about using MCP to tune DAX and then using the Automated Load Testing does it reduce capacity. I originally did not plan for this post but after viewing the details from Justin Martin – DAX Performance Tuner | LinkedIn I had to give it a go. It was then easy for me to test if the…
Running and viewing Automated Load Testing Results – Part 3
This blog post is going to detail how I run the load test and then view the load testing results to determine how the capacity has coped when I increase the number of users. Along with demonstrating how I automated the load testing without having to run it manually! Please find below the previous series in case. This is the…
Automating Load Testing Setting Up Your Fabric Lakehouse and Notebooks – Part 2
In today’s blog post I am going to show you how to set up the Lakehouse and Fabric notebooks so that you can then configure it to be ready to be used with the JSON file we created in the previous blog post. Series Details Part 1: Capturing Real Queries with Performance Analyzer Part 2 (This blog post): Setting Up…