Direct Lake vs Import advisor

Answer three questions about a semantic model and get a Direct Lake / Import mode recommendation, based on table maintenance, transform needs, and traffic.

There's no published formula for "which is cheaper" between Direct Lake and Import mode — it genuinely depends on how the source table is maintained, what the model needs to do to the data, and how often the report is opened. This is a decision guide, not a calculator.

Is the source Delta table V-Order-tuned and regularly compacted?
Does the report need calculated columns or transforms Direct Lake can't push down?
How is the report queried?
Recommendation

Direct Lake

The table can serve this report directly — no refresh to schedule, and it stays current automatically. If the table isn't tuned yet, fix it soon; the benefit compounds as traffic grows.

A decision guide based on the tradeoffs in Direct Lake vs Import mode, not a benchmark. Every report has edge cases the three questions above don't capture — treat this as a starting point.

The three questions, and why they matter

  1. Is the table V-Order-tuned and compacted? Direct Lake's read speed comes from VertiPaq transcoding Parquet row groups — an un-tuned, small-file table transcodes expensively on every reframe. See V-Order tuning and Delta table optimization.
  2. Does the report need model-side transforms? Calculated columns and transformations that can't be pushed down have to happen before the model — Direct Lake reads the table as-is.
  3. How is the report queried? Import's cost is a fixed scheduled refresh regardless of usage. Direct Lake's cost scales with actual reads — a real saving for low-traffic reports, but a risk for high-traffic reports on an un-tuned table, where per-query transcoding can exceed what a nightly refresh would have cost.

Full reasoning and the CU-cost tradeoff: Direct Lake vs Import mode: picking the right one for your semantic model.

This tool doesn't know your actual query volume or table state — it's a starting point for the conversation, not a substitute for checking V-Order and compaction status on the real table.

Stay ahead of Fabric changes

Fabric runtime changes, API updates, and deprecations. No spam, unsubscribe anytime.

On this page