Business Professionals
Power BI | Power Pivot | Power Query | DAX
Cloud Flows | RPA | AI Builder | Copilot
60+ Formulas | Data Stories | Advanced Reporting & Modeling
VB Programming | Report Automation |
MS-Office Automation
Techno-Business Professionals
Power BI | Power Query | Advanced DAX | SQL - Query &
Programming
Microsoft Fabric | Power BI | Power Query | Advanced DAX |
SQL - Query & Programming
Power BI | Power Apps | Power Automate | Copilot Studio | Power Pages | Dataverse
Microsoft Power Apps | Microsoft Power Automate
Power BI | Adv. DAX | SQL (Query & Programming) |
VBA | Python | Web Scrapping | API Integration
Power BI | Power Apps | Power Automate |
SQL (Query & Programming)
Power BI | Adv. DAX | Power Apps | Power Automate |
SQL (Query & Programming) | VBA | Python | Web Scrapping | API Integration
Power Apps | Power Automate | SQL | VBA | Python |
Web Scraping | RPA | API Integration
Technology Professionals
Power BI | DAX | SQL | ETL with SSIS | SSAS | VBA | Python
Power BI | SQL | Azure Data Lake | Synapse Analytics |
Data Factory | Databricks | Power Apps | Power Automate |
Azure Analysis Services
Microsoft Fabric | Power BI | SQL | Lakehouse |
Data Factory (Pipelines) | Dataflows Gen2 | KQL | Delta Tables | Power Apps | Power Automate
Power BI | Power Apps | Power Automate | SQL | VBA | Python | API Integration
Power BI | Advanced DAX | Databricks | SQL | Lakehouse Architecture
Business Professionals
Power BI | Power Pivot | Power Query | DAX
Cloud Flows | RPA | AI Builder | Copilot
60+ Formulas | Data Stories | Advanced Reporting & Modeling
VB Programming | Report Automation |
MS-Office Automation
Techno-Business Professionals
Power BI | Power Query | Advanced DAX | SQL - Query &
Programming
Microsoft Fabric | Power BI | Power Query | Advanced DAX |
SQL - Query & Programming
Power BI | Power Apps | Power Automate | Copilot Studio | Power Pages | Dataverse
Microsoft Power Apps | Microsoft Power Automate
Power BI | Adv. DAX | SQL (Query & Programming) |
VBA | Web Scrapping | API Integration
Power BI | Power Apps | Power Automate |
SQL (Query & Programming)
Power BI | Adv. DAX | Power Apps | Power Automate |
SQL (Query & Programming) | VBA | Web Scrapping | API Integration
Power Apps | Power Automate | SQL | VBA |
Web Scraping | RPA | API Integration
Technology Professionals
Power BI | DAX | SQL | ETL with SSIS | SSAS | VBA
Power BI | SQL | Azure Data Lake | Synapse Analytics |
Data Factory | Azure Analysis Services
Microsoft Fabric | Power BI | SQL | Lakehouse |
Data Factory (Pipelines) | Dataflows Gen2 | KQL | Delta Tables
Power BI | Power Apps | Power Automate | SQL | VBA | API Integration
Power BI | Advanced DAX | Databricks | SQL | Lakehouse Architecture
You’ve got a sales dashboard that needs to show yesterday’s numbers for thousands of stores plus near-real-time orders from the last few minutes. It works in dev, but once you turn on incremental refresh and point it at Fabric, capacity starts screaming and users see spinning circles instead of charts. This article walks through how to architect that mix of historical and live data using Power BI Incremental Refresh and Fabric Real-Time Analytics without blowing your budget.
You’re working with a central BI team supporting an online retail operation:
FactOrders, ~2–3 billion rows, partitioned by OrderDate.The pain points:
We’ll keep this scenario in mind while comparing Power BI Incremental Refresh (import mode) with Fabric Real-Time Analytics (KQL database, DirectQuery) and then design a pattern that keeps both performance and cost under control.
Incremental refresh in Power BI is fundamentally about import-mode tables and partition management in the semantic model.
For our FactOrders table:
Key behaviours and constraints that matter in 2026:
Store rows in the last and Refresh rows in the last settings. This is not visible in Desktop; you inspect it via XMLA or tools like Tabular Editor.RangeStart/RangeEnd doesn’t fold to the source, the service may fall back to full refresh of the table range.What incremental refresh does not do:
In our scenario, incremental refresh is ideal for the historical FactOrders data in the Lakehouse: we can keep, say, 5 years of data but only refresh the last 3 days.
Fabric Real-Time Analytics (RTA) is built on Kusto Query Language (KQL) and is optimized for high-volume, append-only event data.
For our recent orders:
OrdersLive.Key behaviours to be clear about:
Things RTA does not give you automatically:
In our scenario, RTA is perfect for the last few minutes of order events. But using it for all history would be expensive and slower than an import-based model with incremental refresh.
Teams often try this first:
Symptoms:
The root problems:
We need a cleaner architecture.
The pattern that usually works best for this scenario:
Historical semantic model (import)
Real-time semantic model (DirectQuery)
Report design
Operational process
This pattern helps you:
Let’s focus on FactOrders in the historical Lakehouse.
In Power BI Desktop, create two parameters using the UI (Home → Manage Parameters → New Parameter):
// Example definition for RangeStart
let
RangeStart = #datetime(2020, 1, 1, 0, 0, 0)
in
RangeStart
// Example definition for RangeEnd
let
RangeEnd = #datetime(2020, 1, 31, 0, 0, 0)
in
RangeEnd
The key points:
DateTime.Assume your Lakehouse table has a OrderDateTime column.
let
Source = Lakehouse.Contents("MyWorkspace", "SalesLakehouse"),
OrdersTable = Source{[Name="FactOrders", Kind="Table"]}[Data],
FilteredRows = Table.SelectRows(OrdersTable, each [OrderDateTime] >= RangeStart and [OrderDateTime] < RangeEnd)
in
FilteredRows
Important:
In Desktop (Model view):
FactOrders → Incremental refresh.Once published to a Fabric or Premium capacity, the first refresh will create partitions for those 5 years. Subsequent refreshes will only process partitions covering the last 3 days.
This cuts refresh time and capacity cost dramatically for large tables.
Power BI incremental refresh has an option: Get the latest data in real time with DirectQuery. This creates a hybrid table:
This can be useful when:
However, in our scenario we already have Fabric Real-Time Analytics as a specialized real-time store. Using hybrid mode against the Lakehouse and RTA at the same time can:
Practical guidance:
For the real-time semantic model over OrdersLive in RTA:
OrdersLive table.OrderId, StoreId, OrderDateTime, Amount, etc.Example DAX measure for real-time sales in the last 15 minutes:
RealTime Sales (Last 15 min) =
VAR NowUTC = NOW()
VAR WindowStart = NowUTC - (15.0 / 1440.0) // 15 minutes as fraction of a day
RETURN
CALCULATE(
SUM(OrdersLive[Amount]),
FILTER(
OrdersLive,
OrdersLive[OrderDateTime] >= WindowStart &&
OrdersLive[OrderDateTime] <= NowUTC
)
)
Considerations:
OrderDateTime is in a timezone that matches your reporting logic (often UTC). If you need local time, convert consistently.To reduce capacity load:
We want executives to see daily totals (historical, import) and operations to see recent orders (real-time, RTA) without confusing overlaps.
Practical design:
If you must show a combined metric (rare, but sometimes requested), use a semantic boundary:
Then a combined value in a separate report can be built via a composite model that:
But be aware: this adds complexity and potential performance cost. Often it’s simpler to show two numbers side by side.
To avoid blowing the budget:
Push most queries to import
Constrain real-time usage
Tune refresh schedules
Monitor capacity
In our scenario, the team ended up with:
Capacity stabilized, refresh times dropped, and users stopped complaining about slow visuals.
Before you reach for Fabric Real-Time Analytics, make sure every metric that can tolerate batch latency is handled by an import model with incremental refresh. Use RTA only for the narrow slice of truly real-time needs, keep the two worlds separated in your report design, and you’ll get fast dashboards without needing to scale Fabric capacity just to feed a few live tiles.
This article reflects the shift toward combining incremental refresh for bulk historical data with carefully scoped Fabric Real-Time Analytics for live slices, especially in teams running large semantic models on constrained Premium or Fabric capacities.
Professionals who want to apply these patterns to their own data can explore Excelgoodies' Microsoft Fabric & Power BI programme - taught live by instructors, with certification awarded once a real project is running at work.
Insights compiled through ongoing industry research and discussions within the Excelgoodies Analytics Community.
Power BI
New
Next Batches Now Live
Power BI
SQL
Power Apps
Power Automate
Microsoft Fabrics
Azure Data Engineering