The three classic options, plainly

Import copies data into the model's in-memory engine. Queries are very fast because they never leave Power BI, but the data is only as fresh as the last refresh, and the model has to fit within the limits of your capacity or license.

DirectQuery leaves the data in the source and sends queries at report time. Data is always current and nothing is duplicated, but every interaction depends on the source's performance, and some modeling and transformation features are restricted.

ModeSpeedFreshnessMain cost
ImportFastestAs of last refreshRefresh time and model size
DirectQueryDepends on the sourceReal timeLoad on the source system
CompositeMixedMixedModeling complexity
Direct LakeClose to Import for supported tablesReflects Delta table changesRequires Fabric and OneLake data

Where Direct Lake fits

Direct Lake is specific to Microsoft Fabric. Instead of importing a copy, the model reads Delta tables in OneLake directly into memory, so you avoid both the scheduled import and the per-query load on an external database. When the underlying tables change, the model can pick up the new data without a full import refresh.

It is not magic. Under some conditions - certain unsupported features, or when data volumes exceed limits of the capacity - a query can fall back to DirectQuery behavior depending on the Direct Lake variant, which changes performance. Test the fallback behavior on your own data before promising users a particular response time.

Direct Lake rewards well-prepared Delta tables: compact files, sensible partitioning, and a star-shaped gold layer. Poorly maintained tables can erase the advantage.

A practical way to decide

Start with Import unless you have a reason not to; it is the simplest and fastest option, and incremental refresh can keep refresh times manageable on large tables by only reprocessing recent partitions. Choose DirectQuery when freshness is a hard requirement or data must not be copied, and make sure the source can handle the query load.

On Fabric, prefer Direct Lake over the gold layer of a lakehouse or warehouse when you want near-Import speed without managing import refreshes. Composite models let you mix modes - for example, large fact tables in DirectQuery with small dimensions imported - but they add complexity, so use them deliberately.

Default to Import

Simple, fast, and well understood. Add incremental refresh before reaching for something more complex.

Use Direct Lake on Fabric gold tables

Near-Import speed without a duplicate copy, provided the Delta tables are well maintained.

Key takeaways

  • Import is the fastest and simplest mode but data is only as fresh as the last refresh; DirectQuery is always current but depends on the source.
  • Direct Lake, available on Microsoft Fabric, reads Delta tables in OneLake directly and aims to combine near-Import speed with freshness.
  • Direct Lake can fall back to DirectQuery behavior in some situations, so test performance on real data.
  • Default to Import with incremental refresh; choose DirectQuery for hard freshness or no-copy requirements; use composite models deliberately.