Power BI Incremental Refresh: What Is It and How to Use it

by | Power BI

Power BI has evolved into a valuable tool for businesses working with data, and incremental refresh is a key feature in Power BI that can make your job easier by dynamically updating your data.

Power BI incremental refresh is a process that allows users to refresh data progressively instead of doing a complete data refresh every time. It can significantly speed up data refreshing and reduce the amount of data that has to be transferred between Power BI and the data source.

In this article, we’ll show you how to set up incremental refresh in Power BI like a pro, making your data analysis workflow more agile and allowing you to make informed decisions in real-time with up-to-date data at your fingertips.

Let’s go!

Power BI incremental refresh?

Fundamentals of Power BI Incremental Refresh

Power BI incremental refresh is a very handy tool, and understanding its fundamentals is essential if you want to leverage it for efficient data refresh processes for your reports and dashboards.

These fundamentals include:

1. Power Query and Power BI

Incremental refresh is a feature in Power BI that allows you to load only a new or updated data model, improving the efficiency of your data refresh process.

By using Power Query date/time parameters with the reserved, case-sensitive names RangeStart and RangeEnd, you can filter table data and dynamically partition it based on incremental range to separate frequently refreshed data from less-frequently refreshed data.

2. Refresh Policy

If you are interested in implementing an incremental refresh process, follow these steps:

  • In the Power BI desktop, select the table with custom filters applied.

  • Right-click and choose the Incremental Refresh option from the context menu.

  • In the Incremental Refresh window that opens, you can set various options and define the policy.

The policy you define in the Power BI Desktop will be applied to Power BI Service.

3. Filter Logic

The filter logic used in incremental refresh is based on date ranges. You should consider the following factors when defining your filter logic:

  • Be mindful of your data source’s historical data retention policies.

  • Make sure the data source supports query folding and incremental refreshes.

  • Determine the optimal range for your data table to minimize load time.

4. Dataflows

Using incremental refresh with dataflows requires some additional considerations:

  • Firstly, your dataflow must reside in a workspace with Premium capacity.

  • Secondly, Power Apps per-app or per-user plans are required for an incremental refresh in Power Apps.

  • Finally, the dataflow must use Azure Data Lake Storage as the destination.

Incremental refresh in Power BI can save you time and improve the efficiency of your data updates.

Now that we’ve covered the fundamentals of Power BI incremental refresh, let’s take a look at a detailed explanation of how to set up incremental refresh in Power BI in the next section. 

How to Set Up Incremental Refresh in Power BI

Setting up incremental refresh in Power BI is a straightforward process. You start by enabling the feature in the Power Query Editor, then specifying the desired table for refresh, and finally defining your storage and refresh policies.

Below is a detailed guide on how to set up Power BI incremental refresh:

How to manage parameters in Power BI

1. Manage Parameters

To set up Incremental Refresh in Power BI, you must first create date/time parameters using Power Query. These parameters will help you define the range of data to be incrementally refreshed.

  • Open Power Query Editor in Power BI Desktop by clicking on Transform data.

  • Navigate to Manage Parameters and click on New Parameter.

2. RangeStart and RangeEnd Parameters

For a successful incremental refresh in your desired incremental range, the following two Power Query date/time parameters must be created with their reserved, case-sensitive names:

  • RangeStart: This parameter represents the start date of the data range that you want to include in the incremental refresh.

    How to manage parameters for RangeStart
  • RangeEnd: This parameter signifies the end date of the data range for the incremental refresh.

    How to manage parameters for RangeEnd

With these parameters created, you can now apply the date range filter to your data set.

3. Configuring Incremental Refresh Policy in Power BI

Once you have both RangeStart and RangeEnd parameters set up, you can configure the Incremental Refresh policy:

  • In Power BI Desktop, right-click on the desired table and choose Incremental Refresh.

  • In the Incremental Refresh settings window, turn on the Incrementally refresh this table slider.

  • Set up the storage policy by defining:

    • The number of days/years to store data in the Power BI service.

    • A refresh policy to determine the frequency of incremental refreshes.

  • After configuring the policies, click Apply All to save your settings.

    A report showing how to configure Power BI incremental refresh

By following these steps, you can set up incremental refresh in Power BI and optimize the refresh process for large datasets. It’s that simple!

Now that we have that covered, we look at how you can work with data and filters while using Power BI incremental refresh in the next section.

How to Work with Data and Filters While Using Power BI Incremental Refresh

Knowing how to work with data and filters in Power BI is useful if you have a large dataset that doesn’t change very often but you still want to see the latest data regularly.

Here is how you can do so:

1. Date/Time and Integer Data Types

When working with Power BI’s incremental refresh, it’s essential to understand the different filters that work on date/time and the integer data type.

Using date/time parameters with the reserved, case-sensitive names RangeStart and RangeEnd, you can effectively filter table data based on dates.

For example, in a fact table that contains data since 2005, you can set up Incremental Refresh to keep only the last ten years, filtering out data before 2010.

In the case of integer data types, you can set up custom filters to manage incremental refresh. This helps partition and separate the data that needs frequent refreshing from the data that doesn’t require as much updating.

2. Surrogate Keys

Surrogate keys play a crucial role when working with incremental refresh in Power BI. These unique keys help in managing and controlling your table data.

When you use surrogate keys during the configuration process, you can easily keep track of any changes or updates in your data while ensuring that the primary key is not altered.

This enables efficient and effective incremental refreshes while maintaining the integrity of your data.

3. Custom Filter

Besides date/time and integer data types, you can also create and utilize custom filters in incremental refresh. Custom filters help you better manage and partition the data based on specific needs or criteria.

Here’s a step-by-step guide for creating a custom filter:

A report showing the custom filter in Power BI Desktop
  1. Right-click on the fact table and fill in the required fields for Incremental Refresh configuration.

  2. Create two parameters of Date/Time data type, with the names of RangeStart and RangeEnd. Set a default value for each parameter.

  3. Implement the custom filter function in your query or data processing steps to filter the data based on your specific requirements.

Using custom filters, you can efficiently organize and manage the data in your Power BI solution, ensuring optimal performance and usability.

Be mindful of the incremental refresh settings to avoid falling into traps or facing issues that might hamper your overall experience.

A report showing how to filter rows in Power BI Desktop

After understanding how to work with data and filters in Power BI, let’s delve into how you can enhance the performance and efficiency of your reports and dashboards by leveraging incremental refresh in the next section.

How to Improve Performance and Efficiency While Using Incremental Refresh in Power BI

There are different ways to improve performance and efficiency while using incremental refresh in Power BI. We will take a look at some of them below.

1. Partition and Query Folding

When you configure incremental refresh in Power BI, your table is automatically partitioned. One partition contains data that needs to be refreshed frequently, while the other partition holds rows that are not changing.

This improves the performance and efficiency of the refresh process. Query folding also plays a part in this process; it combines multiple steps of a query into a single database query, reducing the amount of processing and time required for report updates.

2. Large Dataset Storage Formats

Power BI Premium allows you to work with large datasets more efficiently using storage formats such as Columnstore and Aggregations.

When processing large amounts of data, these storage formats speed up the refresh performance and enable you to interact with your reports faster.

  • Columnstore: This format enhances the performance of read-intensive queries due to its columnar storage and compression capabilities.

  • Aggregations: This feature ensures that many queries can be answered by the aggregated tables, reducing the need to access large fact tables and thus improving performance.

Using these storage formats while working with Power BI Premium will make managing large Power BI datasets more efficient.

3. Optimizing Resource Consumption

Monitoring and optimizing resource consumption are crucial for maintaining the performance of your Power BI system. Some ways you can do this are:

  • Track Memory Usage: Analyze the PeakMemory metric during dataset refresh operations to understand the maximum memory consumed. Monitoring this value helps you identify any bottlenecks and optimize memory usage.

  • Monitor CPU Usage: Keep an eye on the MashupCPUTime, which indicates the total CPU time consumed by Power Query Engine for all queries. This insight allows you to optimize your queries and minimize consumption.

You can improve your Power BI system’s overall performance and efficiency by implementing the things discussed above and leveraging Power BI features like partitioning, query folding, and large dataset storage formats.

Next, we’ll examine how to configure incremental refresh using different sources.

Using Incremental Refresh with Different Data Sources

You can use Power BI Incremental Refresh with different data sources, including SQL Database, DirectQuery and Import Data Modes, and Data Warehouses.

Here are some things to consider when selecting a data source to import into Power BI:

1. SQL Database

When working with SQL databases as your data source, remember to:

How to use SQL database as your data source in Power BI Desktop
  • Create Power Query date/time parameters with reserved case-sensitive names: RangeStart and RangeEnd.

  • Apply filters on the data using these parameters to separate frequently and less frequently refreshed data.

  • Define an incremental refresh policy in Power BI Desktop before publishing to the Power BI service.

Keep in mind that Incremental refresh is only supported on Power BI Pro, Power BI Embedded datasets, and Premium per-user plan environments.

2. DirectQuery and Import Data Modes

Power BI offers two data access modes: DirectQuery and Import Data.

Using Incremental Refresh with these modes involves the following:

A report showing the DirectQuery and Import feature in Power BI model
  • DirectQuery: In the Direct Query mode, you query data from the data source in real-time, which means no data is imported into your Power BI dataset. You can only use Incremental Refresh with Direct Query if you have a Power BI Premium, Power BI Embedded datasets, or Premium per user plan.

  • Import Data: In this mode, you import data into your Power BI dataset, and you can then work with the imported data. To use Incremental Refresh with Import Data mode, configure RangeStart and RangeEnd parameters, apply filters, and define an incremental refresh policy.

3. Data Warehouse

Using Incremental Refresh with data warehouses is similar to using SQL databases. Follow the same steps to create RangeStart and RangeEnd parameters, apply filters to separate data based on refresh frequency, and define an incremental refresh policy before publishing your dataset to the Power BI service.

Ensure you understand your Power BI environment’s data access modes and limitations for utilizing incremental refresh properly with different data sources.

Properly configured incremental refreshes can improve data storage efficiency and ensure the most up-to-date information is available for your Power BI reports.

Since we’ve gone over how to use incremental refresh with different data sources, we will look at the advanced tips and tricks when using Power BI incremental refresh in the next section.

These tips and tricks will help you get the most out of your data and make sure that you are using incremental refresh correctly.

3 Advanced Techniques and Tips for Using Incremental Refresh

Advanced tips and tricks when using Power BI Desktop in a data model

There are advanced tips and techniques listed below that you can successfully deploy and optimize Power BI incremental refresh in your data model:

1. Real-Time Data and Refresh

When working with Power BI, it’s essential to configure incremental refresh and real-time data efficiently for optimal performance.

Incremental refresh enables you to specifically refresh new or modified data instead of the entire dataset. When paired with real-time data, you can efficiently update your report with the latest information.

To leverage such capabilities, configure either through Power BI Desktop or tools such as the Tabular Model Scripting Language (TMSL) or Tabular Object Model (TOM) via the XMLA endpoint.

2. Convert Date/Time to Integer for DataView

Converting Date/Time values to integers makes it easier to work with the data and optimize refresh efficiency. Here are the steps to convert Date/Time to Integer in Power Query:

  1. Open Power Query Editor in Power BI.

  2. Select the column containing the Date/Time values.

  3. Go to the Transform tab and click on Data Type.

  4. Choose Whole Number as the new data type.

This conversion promotes better performance by reducing the strain on data processing during incremental refreshes.

3. Only Refresh Complete Days

It is crucial only to refresh complete days when configuring incremental refresh policies, as it prevents unnecessary data processing and reduces loading times for reports.

To achieve this, follow these steps:

  1. In Power BI Desktop, right-click the table, and select Incremental Refresh.

  2. In the Incremental Refresh window, define a filter, such as Date_IS_AFTER = Date.IsAfterOrEqual([Date], DateTimeZone.SwitchZone(DateTime.LocalNow(), -TimeZoneOffset))

  3. Configure the ‘rangeStart‘ and ‘rangeEnd‘ parameters to use only complete days. For example, set the ‘rangeEnd‘ to the previous day’s date.

By applying these advanced techniques and tips, you can ensure efficient dataset management, report generation, and improved performance in your Power BI workflow.

Final Thoughts

Laptop running Microsoft Power BI data model

And there we have it! We’ve unraveled the mystery of Power BI Incremental Refresh. It’s not just some tech jargon but a game-changer that can make handling massive datasets a breeze while saving you some serious time and resources.

As a Power BI user, you can benefit significantly from the Incremental Refresh feature. This advanced capability in Microsoft’s popular business intelligence tool saves resources and time by only refreshing the new or changed data within your datasets.

So go ahead, give it a spin, and experience how it brings efficiency to your data updates. Remember, in the world of data, staying updated is staying ahead!

If you want to learn more about Power BI, you can watch the video below:

author avatar
Sam McKay, CFA
Sam is Enterprise DNA's CEO & Founder. He helps individuals and organizations develop data driven cultures and create enterprise value by delivering business intelligence training and education.

Related Posts