Live Connection vs Data Refresh in Power BI

Choose your data path like a product leader: speed, trust, scale — in that order.

TL;DR

Live connection = a thin report connects to an external semantic model (Power BI dataset or Analysis Services). No local data model, no refresh schedules in the PBIX — queries run against the source model in real time. Data refresh (Import) = data is ingested into a Power BI semantic model and refreshed on a schedule (plus Incremental Refresh/Hybrid Tables for scale). Use Live for single source of truth & central governance; use Import + Incremental for blazing interactive performance; use DirectQuery/Direct Lake/Composite when freshness demands or lakehouse patterns require it.

What’s inside

Definitions & mental models

Live Connection

A report connects live to a published semantic model (Power BI dataset or Azure Analysis Services). The PBIX holds only visuals; measures and relationships live in the central model. No dataset refresh at the report level — the connected model handles processing/freshness.

Import + Data Refresh

Data is imported into your model; queries hit in-memory VertiPaq. Schedule refreshes (full or Incremental Refresh) to keep current. Best for snappy UX and complex DAX with heavy aggregations.

DirectQuery

No import; queries are pushed to the source (SQL, etc.) at interaction time. Freshness is maximal; performance depends on source and network. Consider Aggregations to accelerate.

Direct Lake (Fabric)

Reads parquet data directly from the lakehouse with near in-memory performance and minimal refresh. Great for very large data with freshness needs.

Composite Models

Blend Import + DirectQuery + Direct Lake in a single model, plus Hybrid Tables (hot cache for recent data, historical in import). Best of many worlds when tuned.

Quick comparison table

Capability Live Connection Import (Data Refresh) DirectQuery Direct Lake
Performance Central model perf; usually excellent if processed Fastest (in-memory VertiPaq) Source-bound; varies; tune needed Near in-memory at lake scale
Freshness As fresh as the connected model On refresh; use Incremental/Hybrid Near real-time per query Near real-time without heavy refresh
Governance Strong; single source of truth, central measures Per dataset; can fragment if not managed Depends on source access controls Lakehouse RBAC; central governance
Feature flexibility Measures live in central model; limited local calc Full modeling & DAX freedom Some limits; optimize DAX for pushdown High; evolving rapidly

A–Z: architecture, performance, governance

A — Aggregations
Accelerate DirectQuery with import aggregation tables; route big queries to cached summaries, fine-grain to source.
B — BI Semantic Layer
Live connection shines when a central, curated model (enterprise measures, RLS) must be reused across many reports.
C — Caching & Query Limits
Import = VertiPaq cache. DirectQuery respects source timeouts; cache visuals judiciously via query reduction settings.
D — Direct Lake
When you live in Fabric, Direct Lake reduces refresh ops and unlocks lake-scale models with interactive performance.
E — Encryption & Security
Use workspace-level permissions, RLS in the model (for Import/Direct), and rely on central model RLS for Live connections.
F — Freshness SLAs
If stakeholders demand sub-minute data, favor Live/DirectQuery/Direct Lake; for hourly/daily, Import + Incremental is ideal.
G — Gateway
On-prem sources need an Enterprise Data Gateway for both refresh and DirectQuery. Plan redundancy and version hygiene.
H — Hybrid Tables
Keep “hot” recent data in DirectQuery and “cold” history in Import within one table; perfect for high-volume fact tables.
I — Incremental Refresh
Partition by date; refresh only the latest slices; combine with Change Detection for near-real-time deltas.
J — Jitter & Latency
Live/DirectQuery depend on network + source health. Co-locate capacities close to data to crush round-trip delays.
K — Key Features
Some AI/quick insights require Import. Live leverages whatever the parent model exposes. Verify feature parity early.
L — Limits
Watch dataset sizes, model memory, DQ timeouts, and concurrency. Capacity matters; plan for peak, not average, load.
M — Modeling Discipline
Import/composite models live in your PBIX; Live pushes you to centralize measures & relationships in the shared model (good!).
N — Near Real-Time
Use DirectQuery/Direct Lake for “now,” or combine Incremental + change detection for “near-now.”
O — Observability
Monitor refresh history, partition ops, DQ query logs, and capacity metrics. Alert on failures and long-running queries.
P — Performance Engineering
Star schema, numeric surrogate keys, summarized facts, measure-driven formatting. In DQ, push filters early; avoid row-by-row UDFs at source.
Q — Query Folding
In refresh paths, ensure M steps fold to the source for speed. In DQ, push down predicates and aggregations where possible.
R — Row-Level Security
Define RLS in the central model for Live; for Import/DQ, maintain roles in the dataset. Test with role view before go-live.
S — Service & Capacity
Pick the right capacity tier. Import loves memory; DQ loves CPU + fast source. Direct Lake loves lake throughput and cache warmup.
T — Time Intelligence
Import makes complex DAX time calcs smooth. DQ can do it, but might translate to heavy SQL; consider pre-aggregations.
U — User Experience
Import = buttery interactivity. DQ = occasional spinner unless optimized. Live mirrors whatever the source model delivers.
V — Versioning
Live centralizes change control (great for governance). Import decentralizes; use deployment pipelines/ALM to stay sane.
W — Writeback & What-If
What-If parameters love Import. For true writeback, integrate external stores/APIs; keep models read-optimized.
X — XMLA & External Tools
Use XMLA endpoints/Tabular Editor for enterprise modeling, partitions, and scripted deployments — critical for both paths.
Y — Your SLA & Costs
Import costs are refresh + memory; DQ costs are source load + capacity. Live costs tie to the parent model’s processing window.
Z — Zero-Downtime
Staged deployments, blue-green refresh, partition swaps, and feature flags keep analytics online during updates.

Battle-tested patterns & setups

Enterprise Thin Reports (Live)

  1. Publish a certified semantic model with curated measures & RLS.
  2. Build reports via Get data → Power BI datasets (no local model).
  3. Manage processing centrally (partitions, incremental). Deploy via pipelines.

Use when: many reports must reuse one truth with tight governance.

Import + Incremental + Hybrid

  1. Model star schema; define RangeStart/RangeEnd parameters.
  2. Enable Incremental Refresh and, if needed, Hybrid Tables.
  3. Warm cache post-refresh; validate partition health.

Use when: ultra-fast UX with hourly/daily freshness is OK.

Composite with Aggregations

  1. Keep granular fact in DirectQuery.
  2. Add Import aggregation tables (by Date/Region/Product).
  3. Define aggregation mappings; verify hits in Performance Analyzer.

Use when: need near real-time on detail plus speed on summary.

Direct Lake (Fabric) Lakehouse

  1. Land curated parquet in lakehouse delta tables.
  2. Build a Direct Lake model; manage dataflows/medallion layers.
  3. Cache warm-up for peak reports; monitor throughput.

Use when: huge data + low-latency without heavy refresh cycles.

Decision tree: which mode when?

Need sub-minute freshness?
 ├─ Yes → DirectQuery or Direct Lake
 │   └─ Source underperforms? Add Aggregations or Hybrid Tables
 └─ No → Can hourly/daily serve?
     ├─ Yes → Import + Incremental Refresh (fastest UX)
     └─ No  → Centralized governance across many reports?
           ├─ Yes → Live Connection to a certified enterprise model
           └─ No  → Composite model (Import + DQ) for targeted freshness

FAQ

Can I add local measures in a Live connection?

Traditional Live reports don’t host local models. Prefer thin reports and put measures in the parent dataset, or use composite over Power BI dataset when local calc is a must.

What about time intelligence on DirectQuery?

Works, but can push heavy SQL. Pre-aggregate by date or use aggregations to avoid slowdowns.

When do I choose Direct Lake over Import?

When data volume explodes and refresh windows become painful — Direct Lake gives lake-scale with interactive speed.

How do I keep costs predictable?

Import: manage refresh windows and memory. DQ: protect the source with caching/aggregations and query limits. Live: schedule processing for the central model in off-peak hours.

Hot take:
“Real-time” is a vibe until SLOs and wallets disagree. Architect for decisions, not drama: central truth (Live), speed where it matters (Import/Hybrid), and lake when scale calls the shots.
Ship dashboards like products: a single truth, ruthless performance, and SLAs that mean something.

Discover more from BooNars

Subscribe to get the latest posts sent to your email.

Leave a comment