Ravindra BagaleCourses & study guides Track your progress

Chapter 39

39.1 Scheduled Refresh, Incremental Refresh and Gateways

Chala mitrano — Monday 9 am panic ends when refresh is honest. We schedule 7:00 IST, use incremental where it fits, and pick the right gateway.

Fictional sample data for learning. All company names and brands belong to their owners. We use the names only so students can understand. Numbers on this page are made up.
After this lesson you can
  • Contrast Import copy with DirectQuery / Live for refresh.
  • Set a scheduled refresh at 7:00 Asia/Calcutta and enable failure email.
  • Explain incremental refresh with RangeStart / RangeEnd parameters.
  • Choose personal vs standard on-premises data gateway.
  • Check credentials, privacy levels and refresh history.
  • Name three ways to make refresh cheaper and more reliable.

Start with a problem (fictional). Arjun Deshmukh (Nagpur) published the Blinkit-style MH model on Friday night. Monday at 09:05 IST the CFO opened the App — yesterday's GMV still showed. No gateway for the on-prem SQL box, credentials expired, and the full 18-month fact table reloaded every time. Arjun needs a 07:00 IST schedule, incremental policy, and a standard gateway the team can share.

Sample layout — fictional data: cloud source vs on-prem SQL through gateway to scheduled refresh
Sample layout — fictional data (not a real Service screenshot)

1. Import copy vs DirectQuery / Live

Why: Refresh only applies to Import (and some hybrid) copies. DirectQuery and Live ask the source at query time.

What: Import stores a copy in the semantic model — needs scheduled or manual refresh. DirectQuery / Live hit the source when someone opens a visual.

How — pick the mode before you promise 7 am numbers:

Vertical steps (one under another)

  1. Import — great for curated star schemas and fast dashboards; you own freshness.
  2. DirectQuery — source is the truth every click; watch latency and source load.
  3. Live (Analysis Services / some Fabric) — model lives elsewhere; refresh story differs.

Tiny example: Arjun's MH sales fact is Import (fictional 2.4M rows). The live ERP DirectQuery page is separate — city managers use the Import App at 7:15 IST.

Ravindra Bagale's Tip

Friends, never say my DirectQuery needs scheduled refresh. Import needs the schedule. DirectQuery needs a healthy source and network.

2. Scheduled refresh, time zone (UTC+05:30), failure emails

Why: India teams plan around IST. A UTC-only mental model causes 5:30 surprises.

What: In the Service, open the semantic model — Refresh — Schedule. Pick times in your tenant's configured zone; label Asia/Calcutta (UTC+05:30) in your runbook.

How — set a morning refresh (concept):

Vertical steps (one under another)

  1. Semantic model settings — Scheduled refresh — On.
  2. Add 07:00 (and optionally 13:00) — confirm the time zone shown.
  3. Turn on refresh failure notifications to Arjun (and a backup owner).
  4. After publish week one: open Refresh history every morning for three days.

Tiny example: Schedule 07:00 Asia/Calcutta. Fictional GMV ₹18.6L is ready before the 09:00 standup.

Ravindra Bagale's Tip

Friends, put the zone name in the runbook: Asia/Calcutta (UTC+05:30). Screenshots without a zone confuse night-shift vendors.

3. Incremental refresh with RangeStart / RangeEnd

Why: Reloading 18 months every night wastes capacity and fails more often.

What: Incremental refresh uses DateTime parameters RangeStart and RangeEnd in Power Query, plus a policy (e.g. store 24 months, refresh last 7 days).

How — set up the pattern (concept):

Vertical steps (one under another)

  1. In Desktop Power Query, create RangeStart / RangeEnd parameters (Date/Time).
  2. Filter the fact date column with those parameters (foldable to the source).
  3. In the model, set Incremental refresh policy on the fact table.
  4. Publish to a capacity that supports incremental (Premium / Fabric / PPU as per your org).
  5. First refresh may do a historical load — plan off-peak.

Tiny example: Policy: archive 24 months, refresh last 5 days. Monday night only touches recent Blinkit-style order days — not the whole 2024 archive.

Ravindra Bagale's Tip

Friends, incremental needs query folding. If Power Query breaks fold, you still pull everything. Check folding before you celebrate.

4. On-premises data gateway (personal vs standard)

Why: Cloud Service cannot see your office SQL without a bridge.

What: An on-premises data gateway runs inside your network. Personal mode is for one user's refresh. Standard (enterprise) mode is shared, cluster-able, and right for team workspaces.

How — choose the gateway type:

Vertical steps (one under another)

  1. Only you, My workspace experiments? Personal can work — still fragile if your PC sleeps.
  2. Team App + shared workspace? Standard gateway on a server that stays on.
  3. Install, sign in, add a data source (SQL) with the same connection string shape as Desktop.
  4. In the semantic model, map the dataset credentials to that gateway source.

Tiny example: Standard gateway on a fictional Pune VM serves Sales MH. Arjun's laptop sleep no longer stops Monday refresh.

Ravindra Bagale's Tip

Friends, personal gateway on a laptop is a Monday trap. Production Apps deserve a standard gateway on a always-on host.

5. Credentials, privacy levels and refresh history

Why: Most refresh failures are auth, privacy, or gateway mapping — not DAX.

What: Store credentials in the Service/gateway. Privacy levels (Private / Organizational / Public) block unsafe merges across sources.

How — debug a failed refresh:

Vertical steps (one under another)

  1. Open Refresh history — read the error line (credential, gateway, timeout, privacy).
  2. Fix credentials on the gateway data source — then Test connection.
  3. If privacy error, align levels carefully (never set everything Public to silence it).
  4. Re-run refresh once; confirm green in history.

Tiny example: Error: credentials invalid. Arjun updates SQL password on the standard gateway — 07:00 run succeeds next day.

6. Making refresh cheaper and more reliable

Why: Capacity minutes and failure emails both cost trust.

What: Smaller models, incremental windows, off-peak schedules, and fewer unused tables beat heroic full loads.

How — apply three habits:

Vertical steps (one under another)

  1. Remove unused columns/tables before publish.
  2. Prefer incremental on large facts; keep dimensions full-load if small.
  3. Stagger schedules so ten models do not all start at 07:00:00.
  4. Watch Refresh history weekly — silent yellow streaks are debt.

Tiny example: Mei Lin (Singapore, fictional SaaS) moves three heavy models to 06:15 / 06:35 / 06:55 SGT-equivalent slots so capacity stays calm.

Ravindra Bagale's Tip

Friends, a green refresh at 07:02 IST is a product feature. Treat it like an SLA, not a hope.

7. Worked example — three industries

All numbers are fictional sample data.

Quick commerce (Maharashtra)

Why: City managers open the App at 09:00 IST — data must refresh at 07:00.

  1. Import model + standard gateway to on-prem SQL.
  2. Incremental: store 18 months, refresh last 3 days.
  3. Schedule 07:00 Asia/Calcutta; failure mail to Arjun + Priya.
DayRows refreshed (fictional)Status
Mon1,12,000Completed 07:08
Tue98,400Completed 07:06
Wed—Failed — credential (fixed same day)

About this data: This table uses columns: Day, Rows refreshed (fictional), Status. This table uses columns: Wrong, Better. Values shown are the lesson examples already on this page (not a new dataset).

Hospital network

Dr. Amina Yusuf schedules bed-occupancy Import at 05:30 local; clinical DirectQuery pages stay live for ward leads.

Bank branch analytics (fictional)

Carlos Mendes uses incremental on transactions and a standard gateway cluster — never a personal gateway on a teller PC.

Recap. Import needs a schedule. Label Asia/Calcutta. Incremental + folding for big facts. Standard gateway for teams. Read refresh history.

Common mistakes

WrongBetter
Personal gateway on a sleeping laptopStandard gateway on always-on host
Full load of multi-year fact nightlyIncremental with RangeStart / RangeEnd
Ignoring time zoneDocument Asia/Calcutta (UTC+05:30)
No failure emailNotify owner + backup

Quiz (5 questions)

1. Scheduled refresh mainly applies to:

2. For a shared workspace App, prefer:

3. RangeStart and RangeEnd are used for:

4. Asia/Calcutta is offset from UTC by:

5. First place to look after a failed night refresh:

Practice tasks (12) — hints only, no full answers

  1. Task. Write when Import needs a schedule and when DirectQuery does not.
    Hint: section 1.
  2. Task. Draft a runbook line for 07:00 Asia/Calcutta refresh with failure mail.
    Hint: include zone label.
  3. Task. Explain RangeStart / RangeEnd in two sentences.
    Hint: parameters + fact filter.
  4. Task. Personal vs standard gateway — three bullet comparison.
    Hint: section 4.
  5. Task. List four common refresh failure causes.
    Hint: credential, gateway, privacy, timeout.
  6. Task. Propose an incremental policy for 24 months history, last 7 days hot.
    Hint: store vs refresh.
  7. Task. Why does query folding matter for incremental?
    Hint: tip in section 3.
  8. Task. Stagger three model schedules after 07:00 IST — write the times.
    Hint: section 6.
  9. Task. Interview 45s: how do you keep Monday numbers fresh?
    Hint: schedule + gateway + history.
  10. Task. Hospital case: which pages stay DirectQuery and why?
    Hint: worked example.
  11. Task. What do you check if Test connection fails on the gateway?
    Hint: string, auth, firewall.
  12. Task. Name two capacity/licence constraints that affect incremental.
    Hint: Premium/Fabric/PPU per org.

Ravi Sir's cards (Excel card style)

Standalone cards — no tip or photo sections. QR points to this lesson. Download PNG to revise offline.

Interview Card: How do you keep Service numbers fresh at 7 am IST?
Download interview-card PNG
Comparison Card: Personal gateway vs standard gateway
Download comparison-card PNG
Revision Card: Refresh go-live checklist
Download revision-card PNG

Think like a professional

In a real tenant, rights and sharing are controlled by Fabric / Power BI admins. Always follow your company policy. This lesson uses fictional people and numbers so you can practise the ideas safely.