A Fabric data engineer needs to configure a scheduled semantic model refresh for a large Import-mode dataset in Power BI (Fabric). The dataset has 15 tables, and one table ('FactSales') containing 800 million rows takes 55 minutes to refresh while all other tables complete in under 5 minutes. The total allowed refresh window is 60 minutes. Which TWO strategies should the engineer implement to fit the refresh within the window without reducing data completeness? (Select TWO.)
- A. Move 'FactSales' to a separate dataset and use composite model relationships to join it with the other tables.
- B. Set the query timeout on the 'FactSales' table source to 90 minutes to prevent it from being cancelled mid-refresh.
- C. Enable incremental refresh on the 'FactSales' table, configuring a rolling window to import only new or updated rows rather than the full table on each refresh.✓ Correct
- D. Switch the entire dataset to DirectQuery mode so that no data is imported and refresh time is eliminated.
- E. Use semantic model partitioning to process the large 'FactSales' table in parallel partitions during the refresh.✓ Correct
- F. Reduce the refresh frequency from daily to weekly to allow more time per refresh window.
Explanation
Incremental refresh on FactSales means only new or changed rows (e.g., the last N days) are imported on each scheduled run, reducing the per-refresh volume from 800 million rows to a fraction. This is the primary recommended approach for large fact tables. Semantic model partitioning (XMLA/TMSL-based table partitioning) allows the refresh to process multiple partitions of FactSales in parallel, further reducing wall-clock refresh time. Switching to DirectQuery eliminates import refresh but degrades query performance and removes in-memory aggregation benefits — it also fundamentally changes the dataset behavior, which is not the stated goal. Reducing refresh frequency does not fit the data within the 60-minute window — it just refreshes less often. Splitting FactSales into a separate dataset adds architectural complexity and still requires refreshing 800 million rows; it does not reduce the refresh time. Increasing the query timeout does not speed up the refresh — it only changes when the engine gives up waiting; it does not address the root cause.