Import vs DirectQuery vs Direct Lake (on SQL vs on OneLake)
Verdict: Import keeps data in memory for full modelling; DirectQuery queries the source live. Direct Lake reads Delta with no refresh: on SQL it falls back to DirectQuery under guardrails, on OneLake refresh fails. Import to DirectQuery is one-way in Desktop.
| Criterion | Import | DirectQuery | Direct Lake on SQL | Direct Lake on OneLake |
|---|---|---|---|---|
| Behaviour when a Delta guardrail is exceeded | Data already in memory; not applicable | Queries the source directly, no guardrail | Falls back to DirectQuery so the report stays available | Refresh fails; model is unqueryable until the Delta tables are optimised |
| Reverting the table to DirectQuery in Desktop | One-way: cannot return to DirectQuery without rebuilding the table | Source of truth for the table | Reads Delta via the SQL endpoint | Reads Delta directly from OneLake |
| Composite with Import storage-mode tables | Native | Supported in composite models | Supported | Supported (Import in web modelling, DirectQuery via XMLA) |
| Single sign-on to the underlying source | Uses stored credentials | Per-source credential | SQL endpoint identity | Supported: users authenticate with their own identity |
Rules
- Choose Direct Lake on SQL when the report must never fail: it falls back to DirectQuery when it cannot load from a Delta table or a guardrail is exceeded.
- Choose Direct Lake on OneLake when you want a guardrail breach to fail loudly and force lakehouse tuning: it does not fall back to DirectQuery, refresh fails instead.
- Treat the DirectQuery-to-Import switch as a one-way decision in Power BI Desktop; reverting requires removing and re-adding the table from the source.
- Direct Lake on OneLake supports composite models with Import tables, single sign-on and large data volumes without a refresh; it does not support user-defined aggregations or Hybrid tables.
Traps
- Direct Lake on OneLake does not fall back to DirectQuery. Only Direct Lake on SQL does; on OneLake a guardrail breach makes the model unqueryable.
- Setting a DirectQuery table to Import (or Dual) is not a one-click revert in the Properties pane; the return path to DirectQuery is closed in Desktop.