
This post is a part of the DP-600: Implementing Analytics Solutions Using Microsoft Fabric Exam Prep Hub; and this topic falls under these sections:
Implement and manage semantic models (25-30%)
--> Optimize enterprise-scale semantic models
--> Implement Incremental Refresh for Semantic Models
Overview
Incremental refresh is a key optimization technique for enterprise-scale semantic models in Microsoft Fabric and Power BI. Instead of fully refreshing all data during each refresh cycle, incremental refresh allows you to refresh only new or changed data, significantly improving refresh performance, reducing resource consumption, and enabling scalability for large datasets.
In the DP-600 exam, this topic appears under Optimize enterprise-scale semantic models and focuses on when, why, and how to configure incremental refresh correctly.
What Is Incremental Refresh?
Incremental refresh is a feature for Import mode and Hybrid (Import + DirectQuery) semantic models that:
- Partitions data based on date/time columns
- Refreshes only a recent portion of data
- Retains historical data without reprocessing it
- Optionally supports real-time data using DirectQuery
Incremental refresh is not applicable to:
- Direct Lake–only semantic models
- Pure DirectQuery models
Key Benefits
Incremental refresh provides several enterprise-level advantages:
- Faster refresh times for large datasets
- Reduced memory and CPU usage
- Improved reliability of scheduled refreshes
- Better scalability for growing fact tables
- Enables near-real-time analytics when combined with DirectQuery
Core Configuration Components
1. Date/Time Column Requirement
Incremental refresh requires a column that:
- Is of type Date, DateTime, or DateTimeZone
- Represents a monotonically increasing timeline (for example, OrderDate or TransactionDate)
This column is used to define data partitions.
2. RangeStart and RangeEnd Parameters
Incremental refresh relies on two Power Query parameters:
- RangeStart – Beginning of the refresh window
- RangeEnd – End of the refresh window
These parameters:
- Must be of type Date/Time
- Are used in a filter step in Power Query
- Are evaluated dynamically during refresh
Exam tip: These parameters are required, not optional.
3. Refresh and Storage Policies
When configuring incremental refresh, you define two key time windows:
| Policy | Purpose |
|---|---|
| Store rows from the past | Defines how much historical data is retained |
| Refresh rows from the past | Defines how much recent data is refreshed |
Example:
- Store data for 5 years
- Refresh data from the last 7 days
Only the refresh window is reprocessed during each refresh.
4. Optional: Detect Data Changes
Incremental refresh can optionally use a change detection column (for example, LastModifiedDate):
- Only refreshes partitions where data has changed
- Reduces unnecessary refresh operations
- Column must be reliably updated when records change
This is especially useful for slowly changing dimensions.
Incremental Refresh with Real-Time Data (Hybrid Tables)
Incremental refresh can be combined with DirectQuery to support real-time data:
- Historical data → Import mode
- Recent data → DirectQuery
This configuration:
- Uses the “Get the latest data in real time” option
- Is commonly referred to as a Hybrid table
- Balances performance with freshness
Deployment and Execution Behavior
- Incremental refresh is defined in Power BI Desktop
- Partitions are created only after publishing
- Refresh execution happens in the Fabric service
- Desktop refresh does not create partitions
Exam tip: Many questions test the difference between design-time configuration and service-side execution.
Limitations and Considerations
- Requires Import or Hybrid mode
- Date column must exist in the fact table
- Cannot be configured directly in Fabric service
- Schema changes may require full refresh
- Partition count should be managed to avoid excessive overhead
Common DP-600 Exam Scenarios
You may be asked to:
- Choose incremental refresh to solve long refresh times
- Identify missing requirements (RangeStart/RangeEnd)
- Decide between full refresh vs incremental refresh
- Configure refresh windows for historical vs recent data
- Combine incremental refresh with real-time analytics
When to Use Incremental Refresh (Exam Heuristic)
Choose incremental refresh when:
- Fact tables are large and growing
- Only recent data changes
- Full refresh times are too long
- Import mode is required for performance
Avoid it when:
- Data volume is small
- Real-time access is required for all data
- Using Direct Lake–only models
Exam Tips
For DP-600, remember:
- RangeStart / RangeEnd are mandatory
- Incremental refresh = Import or Hybrid
- Partitions are service-side
- Refresh window ≠ storage window
- Hybrid tables enable real-time + performance
Summary
Incremental refresh is a foundational optimization technique for large semantic models in Microsoft Fabric. For the DP-600 exam, focus on:
- Required parameters (RangeStart, RangeEnd)
- Refresh vs storage windows
- Import and Hybrid model compatibility
- Real-time and change detection scenarios
- Service-side execution behavior
Practice Questions:
Here are 10 questions to test and help solidify your learning and knowledge. As you review these and other questions in your preparation, make sure to …
- Identifying and understand why an option is correct (or incorrect) — not just which one
- Look for and understand the usage scenario of keywords in exam questions to guide you
- Expect scenario-based questions rather than direct definitions
Question 1
You have a large fact table with 5 years of historical data. Only the most recent data changes daily. Which feature should you implement to reduce refresh time?
A. DirectQuery mode
B. Incremental refresh
C. Calculated tables
D. Composite models
✅ Correct Answer: B
Explanation:
Incremental refresh is designed to refresh only recent data while retaining historical partitions, significantly improving refresh performance for large datasets.
Question 2
Which two Power Query parameters are required to configure incremental refresh?
A. StartDate and EndDate
B. MinDate and MaxDate
C. RangeStart and RangeEnd
D. RefreshStart and RefreshEnd
✅ Correct Answer: C
Explanation:
Incremental refresh requires RangeStart and RangeEnd parameters of type Date/Time to define partition boundaries.
Question 3
Where are incremental refresh partitions actually created?
A. Power BI Desktop during data load
B. Fabric Data Factory
C. Microsoft Fabric service after publishing
D. SQL endpoint
✅ Correct Answer: C
Explanation:
Partitions are created and managed only in the Fabric service after the model is published. Desktop refresh does not create partitions.
Question 4
Which storage mode is required to use incremental refresh?
A. DirectQuery only
B. Direct Lake only
C. Import or Hybrid
D. Dual only
✅ Correct Answer: C
Explanation:
Incremental refresh works with Import mode and Hybrid tables. It is not supported for DirectQuery-only or Direct Lake–only models.
Question 5
You configure incremental refresh to store 5 years of data and refresh the last 7 days. What happens during a scheduled refresh?
A. All data is fully refreshed
B. Only the last 7 days are refreshed
C. Only the last year is refreshed
D. Only new rows are loaded
✅ Correct Answer: B
Explanation:
The refresh window defines how much data is reprocessed. Historical partitions outside that window are retained without refresh.
Question 6
Which column type is required for incremental refresh filtering?
A. Text
B. Integer
C. Boolean
D. Date/DateTime
✅ Correct Answer: D
Explanation:
Incremental refresh requires a Date, DateTime, or DateTimeZone column to define time-based partitions.
Question 7
What is the purpose of the Detect data changes option?
A. To refresh all partitions automatically
B. To detect schema changes
C. To refresh only partitions where data has changed
D. To enable real-time DirectQuery
✅ Correct Answer: C
Explanation:
Detect data changes uses a change-tracking column (e.g., LastModifiedDate) to avoid refreshing partitions when no data has changed.
Question 8
Which scenario best fits a Hybrid incremental refresh configuration?
A. All data must be queried in real time
B. Small dataset refreshed once per day
C. Historical data rarely changes, but recent data must be real time
D. Streaming data only
✅ Correct Answer: C
Explanation:
Hybrid tables combine Import for historical data and DirectQuery for recent data, providing real-time access where needed.
Question 9
What happens if the date column used for incremental refresh contains null values?
A. Incremental refresh is automatically disabled
B. Only historical partitions fail
C. Refresh may fail or produce incorrect partitions
D. Null values are ignored safely
✅ Correct Answer: C
Explanation:
The date column must be reliable. Null or invalid values can break partition logic and cause refresh failures.
Question 10
When should you avoid using incremental refresh?
A. When the dataset is large
B. When only recent data changes
C. When using Direct Lake–only semantic models
D. When refresh duration is long
✅ Correct Answer: C
Explanation:
Incremental refresh is not supported for Direct Lake–only models, as Direct Lake handles freshness differently through OneLake access.

One thought on “Implement Incremental Refresh for Semantic Models”