(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisbon

How to create an Incremental Refresh in Power BI on Microsoft Fabric: step by step

João Barros 08 de October de 2026 4 min read

This tutorial explains how to configure Incremental Refresh in a Power BI Dataset within the Microsoft Fabric environment to update data efficiently. It is useful to reduce refresh time, minimize costs, and handle large volumes using Direct Lake or Import.

Prerequisites

  • Account with access to a workspace in Microsoft Fabric.
  • Supported data source (e.g.: Lakehouse Delta Table, SQL from the Warehouse, or Parquet in OneLake) with date/time columns.
  • Power BI Desktop (optimized for Fabric) or Dataset creation in Power BI in the browser.
  • Permissions to publish to the workspace and create/edit Datasets.

Step 1: Choose the approach (Direct Lake vs Import)

Understanding why to choose Direct Lake or Import is critical. Direct Lake reads data directly from the Lakehouse/OneLake without importing, ideal for real-time queries and large volumes. Import loads partitions into the Dataset, ideal if you need predictable latency and compression.

Step 2: Prepare the data source with a date column

Incremental Refresh requires a date or datetime column to partition the data. Make sure it exists and has continuous and correct values.

-- Exemplo T-SQL para adicionar coluna de data, se usar Warehouse
ALTER TABLE sales ADD sale_date datetime2;
-- Preencher sale_date conforme necessário
UPDATE sales SET sale_date = created_at;

Step 3: Create a query in Power BI Desktop (or Dataflow) with parameters

In Power BI Desktop create two DateTime parameters RangeStart and RangeEnd. Use them in the query to filter the table by date. This allows the service to manage which partitions to load.

-- Exemplo M (Power Query) para filtrar por RangeStart/RangeEnd
let
  Source = Fabric.DataLake(/* fonte */),
  Filtered = Table.SelectRows(Source, each [sale_date] >= RangeStart and [sale_date] < RangeEnd)
in
  Filtered

Step 4: Publish to the workspace in Microsoft Fabric

After validating modeling and relationships, publish the .pbix to the Fabric workspace. If using Direct Lake, ensure the Dataset is configured for Direct Lake at publish time.

Step 5: Configure Incremental Refresh on the Dataset (in the service)

In the Microsoft Fabric workspace open the published Dataset, go to Incremental Refresh settings and configure the retention period and refresh frequency (e.g.: keep 3 years, refresh 1 day). For Import also choose whether to partition by day/month.

Step 6: Validate partition policies and test the refresh

Run an initial manual refresh. Check logs and partition sizes (for Import). Common errors are usually: incorrectly defined parameters, date column with null values, or insufficient permissions to the source.

-- Exemplo de verificação no Warehouse (listar partições criadas se aplicável)
SELECT partition_id, min_date, max_date
FROM sys.partitions_metadata
WHERE object_name = 'sales'
ORDER BY min_date DESC;

Verify the result

Confirm that reports show data updated according to the defined interval. For Import verify that only recent partitions were reloaded and that refresh times are reduced. For Direct Lake, test report queries to ensure acceptable latency and that date filters work.

Conclusion

Incremental Refresh in Power BI on Microsoft Fabric reduces costs and speeds up updates when configured with parameters, partitions, and the correct choice between Direct Lake and Import. Next steps: monitor scheduled refreshes, adjust retention, and consider aggregations via Gold tables. Tip: start with short refresh windows to validate and then expand.