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.
| Mode | Speed | Freshness | Main cost |
|---|---|---|---|
| Import | Fastest | As of last refresh | Refresh time and model size |
| DirectQuery | Depends on the source | Real time | Load on the source system |
| Composite | Mixed | Mixed | Modeling complexity |
| Direct Lake | Close to Import for supported tables | Reflects Delta table changes | Requires 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.
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.
Zetrixweb