Press "Enter" to skip to content

Category: Power BI

Building Power BI Reports from the Desktop or Fabric

James Serra clears up some confusion:

If you’re a Power BI report author who’s just getting into Microsoft Fabric, you’ve probably asked the same question I hear over and over: am I supposed to stop using Power BI Desktop now?

It’s a fair question. Power BI Desktop is a Windows app that has traditionally been the place where report authors do everything: get data, transform it, model it, and build the report. Microsoft even describes that “connect, shape/transform, then load” experience as part of how Power BI Desktop works with Power Query.

Fabric changes the feel of that workflow because Power BI is now also a first-class experience in the browser inside the Fabric portal. And that browser experience isn’t just “view and share” anymore. You can edit semantic models in the service, including using Power Query for import models and building reports directly from that same environment.

Read on to see, for a brand new report, which of the two models can make the most sense.

Comments closed

Performance Tuning Dependent SQL Queries in DirectQuery Mode

Chris Webb tries a change:

As I described here, Power BI can send SQL queries in parallel in DirectQuery mode and you can see from the Timeline column there is some parallelism happening here – the last two SQL queries generated by the DAX query run at the same time – but everything has to wait for that first SQL query to complete. Why? Can this be tuned?

Click through for an example. I was thinking about how challenging it would be to improve this performance at the SQL query level and if you could build a single query that operates over all three sets of data—distinct customers, distinct customers on Mondays, distinct customers in Januaries–while still performing acceptably. I’m not sure that the variants I sketched out in my head would actually perform faster, thanks to the “distinct” requirements.

Comments closed

Measuring Page Load Times in Power BI

Chris Webb breaks out the stopwatch:

If you’re performance tuning a Power BI report the most important thing you need to measure – and the thing your users certainly care about most – is how long it takes for a report page to load. Yet this isn’t something that is available anywhere in Power BI Desktop or in the Service (though you can use browser dev tools to do this) and developers often concentrate on tuning just the individual DAX queries generated by the report instead. Usually that’s all you need to do but running multiple DAX queries concurrently can affect the performance of each one, and there are other factors (for example geocoding in map visuals or displaying images) that affect report performance so if you do not look at overall page render times then you might miss them. In this post I’ll show you how you can measure report page load times, and the times taken for other forms of report interaction, using Performance Analyzer in the Service and Power Query.

Read on to see how.

Comments closed

Predictive Analytics with Power BI and Microsoft Fabric

Ruixin Xu puts together a how-to guide:

Across industries, teams use Power BI to understand what has already happened. Dashboards show trends, highlight performance, and keep organizations aligned around a shared view of the business.

But leaders are asking new questions—not just what happened, but what is likely next and how outcomes might change if they act. They want insights that help teams prioritize, intervene earlier, and focus effort where it matters. This is why many organizations look to enrich Power BI reports with machine learning.

This challenge is especially common in financial services.

Consider a bank that uses Power BI to track customer activity, balances, and service usage. Historical analysis shows that around 20% of customers churn, with churn tied to factors such as customer tenure, product usage, service interactions, and balance changes.

Click through for the architecture example and process. The actual model is a LightGBM model, which is generally fine for two-class classification.

Comments closed

Two Options for Content Layout in Power BI

Valerie Junk covers a pair of options:

In this tutorial, I want to show a small but very practical formatting setting in Power BI.

When we create a table or matrix visual, we sometimes end up with white space on the right side. For example, if you show data by month and you only have 6 months of data so far, but you design the visual to fit 12 months, the table/matrix is already sized for the full year, which leads to a lot of empty space.
In Power BI we have two column header formatting options:

Click through for the two options, where you can find the option, and some important information around both options.

Comments closed

Adaptive Time Series Visualization in Microsoft Fabric

Devang Shah and Slava Trofimov show off a design pattern:

This design pattern provides intuitive, interactive Fabric-native experiences for any user:

  • Intelligent time binning: Handle billions of data points by automatically grouping them into optimal intervals.
  • Time brushing: Zoom in any period with drag-and-select interactions.
  • Multi-metric comparison: View multiple time series side by side across different assets.
  • Flexible aggregation: Switch between average, min, max, and sum with a single selection.
  • Anomaly detection: KQL queries detect unusual patterns in your time series with no ML expertise required.
  • Statistical insights: View descriptive statistics and correlations.
  • Contextualization: Bring asset hierarchies, tag metadata, and definitions directly into the report for richer interpretation.

Read on to learn more about the pattern and how it works. There are a lot of moving parts to get right, but the end result looks impressive.

Comments closed

Manual Updates to Power BI On-Premises Gateways

Leo Li announces a new preview feature:

The On-premises Data Gateway manual update feature is now available in preview! This new capability simplifies gateway maintenance and helps you keep your environment secure and up to date with greater flexibility and control.

With this new feature, administrators can now manually trigger updates—either directly through the gateway UI or programmatically via API or script. This ensures that you can manage update timing based on your organization’s internal policies and maintenance windows while still benefiting from the latest features, performance improvements, and security patches.

Read on to see how this works, as well as where the Fabric team is going with this.

Comments closed

DAX DATEADD Parameters and Calendar-Based Time Intelligence

Marco Russo and Alberto Ferrari check how two sets of functionality overlap:

The primary reason to adopt the new calendar-based time intelligence in Power BI is its flexibility. Classic time intelligence functions work out of the box and deliver meaningful results in most scenarios. However, to do so, they make assumptions about the calendar structure and the desired outcomes. Sometimes, the choices are not aligned with the user requirements, and developers need to author their own time intelligence calculations.

The new calendar-based time intelligence functions provide greater flexibility by allowing developers to configure parameters that drive the internal algorithms to meet diverse requirements. Using these parameters requires a precise understanding of the scenario for which they were built, which requires some attention to detail.

Click through to learn more.

Comments closed

Notes on Migrating to PBIR Format

Nicky van Vroenhoven shares some notes:

Let me be clear: I really like and support the updates that Rui Romano has been pushing the last years!
In short, it brings:

  • Better support for CI / CD and source control 
  • Better integration for programmatic report updates, e.g. with LLM’s
  • More reliable merge outcomes with the PBIP and PBIR structures

With that being said, I do think some customers do not want to have preview features in production, so they will be cautious with the recent developments. Since the end of January, the PBIR format will be the default if you don’t take action.
If you don’t want to enable PBIR yet, or just want to know more about the transition, read on.

The idea of making a preview feature the default rubs me the wrong way. If it’s going to be the default, you should have the gumption to call it GA. If you’re not willing to call it GA for whatever reason, that means it’s not ready to be the default.

This is regardless of the fact that I like what the PBIR format offers and think companies should bias toward that direction.

Comments closed

The Challenge of Many-to-Many Relationships in Power BI

Ben Richardson explains a common anti-pattern in Power BI semantic models:

Relationships sit at the heart of literally everything you do in Power BI.

Before you make measures, visuals and reports, relationships are established to define how your data fits together. Their job is simple on the surface – but vital: describe how each table is connected.

If you can design these relationships well, everything else will run much smoother.

Across any data domain, strong models rely on clear Grain, correct Cardinality, and a Star Schema built with well-defined Fact and Dimension tables.

Read on to understand how many-to-many relationships stress this understanding in Power BI an different techniques for dealing with those sorts of relationships.

Comments closed