Power BI in Azure: Turning Raw Data Into Decisions People Can See

Power BI in Azure: Turning Raw Data Into Decisions People Can See

A complete, plain-English guide to datasets, models, connections, gateways, refresh, workspaces, security, embedding, capacities, performance, cost and the design mistakes that make reports slow, wrong or unsafe.

Imagine the dashboard of a car. Under the bonnet there are hundreds of sensors and thousands of numbers: fuel flow, temperature, speed, tyre pressure. A driver cannot read them all, and does not need to. The dashboard picks the few that matter, shows them as dials and warning lights, and lets the driver decide in a glance whether to slow down, refuel or stop. The numbers were always there. The dashboard makes them useful.

Companies hold the same problem. Sales, stock, payments, support tickets and machine readings sit in databases and files, as rows nobody can read at a glance. Power BI is the Microsoft service that turns those rows into charts, tables and maps that people can explore, share and trust. It lives in the Microsoft cloud, connects to the Azure data services around it, and can even be placed inside your own applications. In this guide you will learn what it is, how its parts fit together, how data gets in and stays fresh, how to keep it secure, how to make it fast, how to pay for it sensibly, and which mistakes to avoid.

1What Power BI Is and Why It Exists

Begin with the everyday problem of data nobody can read, then see how a business intelligence service solves it.

The problem

A manager asks, “How are sales doing this month compared with last month, by region?” In many companies the answer takes days. Someone exports data from a system, pastes it into a spreadsheet, fixes the columns, builds a chart and emails the file. By the time the answer arrives, the question has changed. Different people also build different spreadsheets and get different totals, so meetings turn into arguments about whose number is right.

What the service is

Power BI is a family of tools for business intelligence, which means collecting data, shaping it, analyzing it and presenting it so people can make decisions. It has three main faces. A free desktop application is where analysts connect to data, clean it, build a model and design report pages. An online service in the cloud is where reports are published, shared, refreshed on a schedule and viewed in a browser or on a phone. And an embedding capability lets software companies and internal developers place reports and charts inside their own applications. Together they let one person build something once and thousands of people use it.

Everyday analogy

A restaurant has a kitchen and a dining room. The kitchen buys raw ingredients, chops, mixes and cooks. The dining room serves finished plates that guests enjoy. Power BI Desktop is the kitchen, and the Power BI online service is the dining room with its waiters, tables and menu. Guests do not need to know how the meal was cooked, but they must trust that it is fresh and safe.

Why “in Azure”

Power BI is a Microsoft cloud service that runs on the same global infrastructure as Azure and signs people in with the same identity system. It rarely works alone. The data it shows usually lives in Azure services such as SQL databases, data lakes, analytics warehouses and streaming pipelines. Azure also supplies the things around Power BI: private networking, key storage, monitoring, and the capacity that can be rented to run reports at larger scale. So designing Power BI well means designing the Azure pieces around it.

What you gain

Clarity

One version of the truth

A shared model with agreed definitions stops arguments about whose total is right.

Speed

Answers on demand

Users explore data themselves instead of waiting for a report request.

Reach

Browser, phone and apps

The same report works across devices and can be embedded in other software.

Freshness

Scheduled or live data

Reports refresh on a timetable or query sources directly for current numbers.

Safety

Row-level control

Different people can see different slices of the same report, based on who they are.

Fit

Close to Azure data

Native connections to Azure data services and shared sign-in make setup simpler.

3
faces: Desktop for building, online service for sharing, embedding for apps
1
shared semantic model can feed many reports
100s
of data sources can be connected

2Background: From Paper Reports to Self-Service Analytics

Business intelligence has changed in stages. Understanding the stages explains why the tool is shaped the way it is.

The paper and spreadsheet era

The first reports were printed. A computer printed a long list of figures and a clerk added them by hand. Spreadsheets improved this by letting anyone sort, sum and chart numbers. But spreadsheets live on one person’s computer. Copies multiply, formulas break silently, and nobody can tell which file is the latest.

The data warehouse era

Companies then built data warehouses: large databases that gather data from many systems and organize it for questions. A specialist team built reports on top, and business users requested them. Reports were consistent and trustworthy but slow to change. A new question could take weeks to answer because it needed a ticket, a developer and a test cycle.

Self-service analytics

Self-service tools let business users explore data on their own, using visual drag-and-drop screens. This freed the specialists from endless report requests. But it brought a new risk: hundreds of private reports, each with its own logic, again producing mismatched numbers. Good modern practice mixes the two: specialists build trusted shared models and data stores, and business users build reports on top of them.

The cloud era

Cloud services removed the need to buy servers for analytics. Data could be stored in cheap lakes, processed in elastic engines and shown through online services. Power BI grew in this setting: a cloud service with a desktop companion, closely linked to the wider Azure data platform and, more recently, to a unified analytics platform that brings storage, engineering and reporting under one roof.

EraWho builds reportsStrengthWeakness
PaperSpecialistsSimpleSlow, static, no exploration
SpreadsheetsAnyoneFlexibleCopies, errors, no governance
Warehouse and reporting teamsSpecialistsConsistent numbersLong waiting lines
Self-serviceBusiness usersFast, empoweringPrivate logic and inconsistent numbers
Governed self-service in the cloudBoth, on shared modelsSpeed with trustNeeds discipline and clear ownership
i
The recurring lesson

Every new era made it easier to build reports, and every new era needed new ways to keep the numbers trustworthy. Power BI projects succeed when tool power and governance grow together.

3Core Concepts: The Vocabulary of Power BI

Each term below says what it is, why it exists, a picture from daily life and an example.

Term

Semantic model

The organized set of tables, relationships and calculations that reports are built on. Previously often called a dataset. Analogy: a well-organized recipe book that every cook uses.

Term

Report

One or more pages of visuals built on a model. Analogy: a magazine with several pages of charts.

Term

Visual

One chart, table, map or card on a page. Analogy: one picture in the magazine.

Term

Dashboard

A single page of pinned tiles from several reports, for a quick overview. Analogy: the car dashboard.

Term

Workspace

A shared folder in the online service where related reports and models live, with its own members and roles. Analogy: a team room.

Term

App

A packaged set of reports and dashboards published to a wider audience. Analogy: a finished book sent to readers, as opposed to the writers’ draft folder.

Term

Measure

A calculation evaluated when a visual asks for it, such as total sales or margin percent. Analogy: a formula that answers the question asked by each chart.

Term

Relationship

A link between two tables on a shared column. Analogy: a thread joining a customer card to that customer’s orders.

Term

Gateway

A small program that lets the cloud service reach data that sits in a private network. Analogy: a courier with a key to your office.

Term

Capacity

A pool of dedicated compute that runs your content. Analogy: a rented kitchen versus a shared food court.

Term

Row-level security

Rules that filter which rows each viewer sees. Analogy: a ledger where each clerk is given only their own pages.

Term

Dataflow

A reusable, cloud-based data preparation step. Analogy: a prep station that washes and chops vegetables for many dishes.

How the words fit together

Read it as a chain: data is pulled from sources through a gateway if needed, shaped by dataflows or queries, loaded into a semantic model with relationships and measures, and shown by visuals on reports. Reports live in workspaces, are shared as apps, and run on a capacity. Row-level security decides what each person sees.

i
Separate model from report

The most useful habit is to keep the model and the reports built on it as separate items. One trusted model, many reports. This is the foundation for consistent numbers.

4Architecture and Components

Here is how data flows from your sources to a person looking at a chart.

flowchart LR
  subgraph SRC["Data sources"]
    S1["Azure SQL and warehouses"]
    S2["Data lake storage"]
    S3["Streaming data"]
    S4["On-premises databases"]
    S5["Files and web services"]
  end
  GW["Data gateway"]
  S4 --> GW
  subgraph PREP["Preparation"]
    DF["Dataflows and queries"]
  end
  S1 --> DF
  S2 --> DF
  S5 --> DF
  GW --> DF
  S3 --> SM
  DF --> SM["Semantic model"]
  subgraph SVC["Power BI service"]
    SM --> RPT["Reports"]
    RPT --> APP["Apps and dashboards"]
    CAP["Capacity"] -.-> SM
  end
  APP --> USR["Users: browser, phone, Teams"]
  RPT --> EMB["Embedded in applications"]
Figure 1: From data sources through a model to people and applications

The sources

Data starts in many places. Azure services supply much of it: relational databases, analytics warehouses and data lakes. Some data stays in offices on private servers. Some comes from files or web services. A good design lists every source, its owner, how often it changes and how sensitive it is.

Preparation

Raw data is rarely ready to show. Column names are cryptic, dates are in odd formats, and duplicates lurk. Preparation steps clean and reshape the data. They can run inside a single report file, or in shared cloud steps that many models reuse.

The semantic model

This is the heart. It holds tables, the relationships between them and the measures that calculate numbers. Everything on a report asks the model a question. A clean model makes reports fast and answers consistent.

The service and the capacity

The online service stores models and reports, runs refreshes, answers queries and manages sharing. Depending on the license, this work runs on a shared pool of compute or on dedicated capacity that you rent. Dedicated capacity gives predictable performance and additional features.

The viewers

AudienceHow they reach content
EmployeesBrowser, phone app, apps in the collaboration tool, email subscriptions
AnalystsDesktop tool and shared models for their own reports
Customers and partnersReports embedded in a portal, or guest access
Other systemsProgramming interfaces and exports

5Licenses, Capacities and Where Azure Fits In

Power BI licensing is the most changed part of the product. Treat this chapter as a map of ideas and verify details on the official pages.

Per-user licenses

A basic per-user license lets a person build and share content with other licensed people. A premium per-user license adds larger models, more frequent refresh and advanced features, but each viewer of that content also needs a matching license. This model suits small and medium teams.

Capacity-based licensing

With a capacity, you rent a block of compute. Content placed in a workspace on that capacity can usually be viewed by many people without each needing a paid license, depending on the capacity size and the current rules. Capacities come in sizes. They are the right choice for large audiences, heavy workloads and embedded scenarios. The current generation of capacity is sold as part of a unified analytics platform, and older premium capacity forms exist in parallel, with changes over time.

Embedded capacity in Azure

For software builders, there are capacities bought through the Azure portal and billed like other Azure services, designed for embedding reports into applications for customers who do not have licenses of their own. These can be paused and resumed to save money.

OptionGood forViewers need licenses?Notes
Free tierLearning and personal usen/aLimited sharing
Per-userSmall teamsYesSimple and cheap to start
Premium per-userAdvanced features for few usersYes, same levelCheaper than capacity until user counts grow
Capacity (fabric or premium)Large audiences, heavy loadsOften not for viewers, depending on sizePay for compute whether used or not
Embedded capacityApplications for external usersNoBilled in Azure, can pause

Where Azure fits

Azure is involved in three ways. It supplies the data services that models read. It supplies the identity system, so the same directory signs people in and defines groups for security. And it supplies, for embedding and some capacity types, the billing and resource management through the Azure portal. Many organizations also use Azure networking and key-management features to protect Power BI connections.

!
Licensing changes often

Names, prices, user limits and which features need which license have changed several times. Before choosing, read the current licensing guide and use the official cost calculator. Do not rely on old blog posts, including this one, for exact numbers.

6Storage Modes: Import, DirectQuery, Live Connection and Direct Lake

How a model gets its data decides speed, freshness and cost. This is one of the most important design choices.

flowchart TD
  Q["How should the model get data?"] --> A{"Data small enough to copy and refresh on schedule is acceptable?"}
  A -->|"Yes"| IMP["Import: copy data into the model"]
  A -->|"No, data huge or must be live"| B{"Source can answer queries quickly?"}
  B -->|"Yes"| DQ["DirectQuery: ask the source each time"]
  B -->|"No"| C{"Data is in a lakehouse or warehouse of the unified platform?"}
  C -->|"Yes"| DL["Direct Lake: read lake files directly"]
  C -->|"No"| MIX["Composite: mix modes, import small tables, query big ones"]
Figure 2: A simple guide for choosing how a model gets its data

Import mode

The data is copied into the model and compressed in memory. Queries are very fast because they never leave the model. The cost is that data is only as fresh as the last refresh, and the model has a size limit. Import is the default choice for most reports.

DirectQuery mode

The model keeps no data. Each time a user clicks, the model sends queries to the source and shows the answer. Data is always current, and the size can be enormous. But speed depends on the source, and each click may place load on a production database. Not every calculation is supported, and many users clicking at once can slow things down.

Live connection

The report connects to a model that lives elsewhere, such as a shared model in the service or an analysis server. The report holds visuals only. This is the way to build many reports on one trusted model.

Direct Lake

A newer mode used with the unified analytics platform. The model reads data files in a lake directly, loading columns into memory as needed, giving import-like speed without copying the data on a refresh schedule. Availability and limits depend on the platform and are evolving.

Composite models

These mix modes: small, stable tables are imported, while large detail tables stay in DirectQuery. Aggregation tables, which pre-summarize big data, can answer most clicks quickly and send only detailed questions to the source.

ModeFreshnessSpeedSizeMain risk
ImportAs of last refreshFastestLimited by model sizeStale data, long refreshes
DirectQueryLiveDepends on sourceSource sizeSlow visuals, source load
Live connectionAs the shared modelAs the shared modelAs the shared modelCannot add own data easily
Direct LakeNear liveFastLake size, memory limitsFallback to slower mode if limits hit
CompositeMixedMixedLargeComplex to design and test
Everyday analogy

Import is photocopying a reference book and keeping it on your desk: quick to read but only as new as the copy. DirectQuery is phoning the library each time you need a fact: always current but slower. Direct Lake is having a library that lets you read the shelves yourself without photocopying.

7Internal Working: What Happens When You Open a Report

Follow a single click from a user’s browser to a number on a chart.

sequenceDiagram
  participant U as User browser
  participant ID as Identity service
  participant SVC as Power BI service
  participant M as Semantic model engine
  participant SRC as Data source
  U->>ID: Sign in
  ID-->>U: Token
  U->>SVC: Open report with token
  SVC->>SVC: Check workspace role and security rules
  SVC->>M: Send query for each visual
  alt Import model
    M->>M: Calculate from memory
  else DirectQuery model
    M->>SRC: Send generated query
    SRC-->>M: Rows
  end
  M-->>SVC: Results
  SVC-->>U: Draw visuals
Figure 3: The life of one report view

Step by step

1

Sign in

The user is authenticated by the organization’s directory and receives a token proving who they are.

2

Permission check

The service checks whether the user may open the report, based on workspace roles, app access or direct sharing.

3

The report sends questions

Each visual on the page asks the model a question, such as total sales by region. A page with twenty visuals sends about twenty questions.

4

Security filters apply

Row-level rules add hidden filters so the user only sees allowed rows.

5

The engine calculates

For imported data, the in-memory engine scans compressed columns. For live sources, it translates the question into the source language and waits.

6

Results return and are drawn

The browser draws charts from the small result sets.

7

Caches help the next view

Frequently asked results and tile data can be cached, so repeat views are faster.

Why imported models are fast

The engine stores each column separately and compresses repeated values. A column of one million dates with only a few thousand distinct values compresses to a tiny dictionary plus short references. Scanning a few columns of a compressed table in memory is very quick. The engine performs best when columns have few unique values and the model has a tidy shape.

Why too many visuals hurt

Every visual is a query. A page with fifty visuals can overwhelm both the model and the source. Simpler pages load faster, are easier to read and cost less to run.

Where time is spent

Stage

Network and rendering

Drawing complex visuals in the browser, especially maps and very large tables.

Stage

Model calculation

Measures that scan many rows or use complicated logic.

Stage

Source query

Only for live modes: the wait for the database to respond.

Stage

Security evaluation

Complicated row rules can add measurable time.

8Data Modeling: Star Schemas, Relationships and Measures

A good model is the single biggest factor in whether reports are fast, correct and easy to use.

Facts and dimensions

Data about a business has two kinds of tables. Fact tables record things that happen: each sale, each click, each payment, usually in huge numbers. Dimension tables describe the things involved: customers, products, dates, stores, in smaller numbers. A fact row says “customer 42 bought product 7 on this date for this amount,” and the dimension rows say who customer 42 is and what product 7 is.

The star shape

The recommended layout puts one fact table in the middle with dimension tables around it, each linked by a single relationship. This is called a star schema because the diagram looks like a star. It is simple to understand, fast to calculate and easy to filter: choosing a customer region filters the customer dimension, which filters the facts, which changes every number.

flowchart TD
  F["Sales facts: amount, quantity, keys"]
  D1["Date dimension"] --> F
  D2["Customer dimension"] --> F
  D3["Product dimension"] --> F
  D4["Store dimension"] --> F
Figure 4: A star schema with one fact table and four dimensions
Everyday analogy

A receipt roll is the fact table: one line per purchase. The store directory, product catalog and calendar are the dimension tables that explain each line. Using a single clean catalog for all receipts is far easier than copying product details onto every receipt.

Relationships

A relationship links a column in one table to a matching column in another. Most are one-to-many: one customer, many sales. The direction of filtering matters. By default filters flow from the one side to the many side. Allowing filters to flow both ways in many places creates ambiguity and slows calculations, so use two-way filters sparingly and deliberately.

Measures

A measure is a calculation that responds to the filters around it. “Total sales” adds the amount column. “Sales last year” shifts the date filter back twelve months. “Margin percent” divides profit by sales. The same measure gives a different number in every chart cell because each cell has different filters. The language for measures is built for this, and its strength lies in the idea of filter context, meaning the set of filters active at the moment of calculation.

Calculated columns versus measures

ItemWhen calculatedStored?Use for
Calculated columnAt refresh, row by rowYes, uses memoryLabels and groupings needed on an axis or slicer
MeasureAt query time, per cellNoTotals, ratios, comparisons

Modeling habits that pay off

Habit

Use a proper date table

One complete calendar table, marked as the date table, makes time comparisons reliable.

Habit

Remove unused columns

Every column costs memory and refresh time. Keep only what reports need.

Habit

Prefer numbers for keys

Integer keys compress and join faster than long text keys.

Habit

Name things for business users

Friendly table, column and measure names, with descriptions and folders.

Habit

Hide technical fields

Hide keys and helper columns so users see only what they should use.

Habit

Keep measures in one place

Group measures in a dedicated table with a clear structure.

9Connecting to Azure Data and On-Premises Data

The data has to get from where it lives to where the model can use it, safely.

Cloud sources

Azure data services such as SQL databases, analytics warehouses, data lake storage and big data engines have built-in connectors. A user signs in with their organizational identity or a service account, and the service can reach the source over the Microsoft network. For simple cases, nothing else is needed. For sources behind a private network, extra arrangements are needed, covered in the networking chapter.

The on-premises data gateway

Data inside an office network cannot be reached directly by the cloud service, because the firewall blocks incoming connections. A gateway solves this. It is a small program installed on a machine inside the network. It makes only outbound connections to the cloud service, keeps an open channel, and when the service needs data, the request travels down that channel, the gateway queries the local source and sends the results back. No inbound hole in the firewall is needed.

flowchart LR
  subgraph CLOUD["Microsoft cloud"]
    PBI["Power BI service"]
    RELAY["Secure relay"]
  end
  subgraph OFFICE["Your private network"]
    GW["Gateway machine"]
    DB["On-premises database"]
    FILES["File shares"]
  end
  PBI --> RELAY
  GW -->|"outbound connection only"| RELAY
  GW --> DB
  GW --> FILES
Figure 5: A gateway makes an outbound channel so the cloud can request private data

Two kinds of gateway

TypeUsed forNotes
Standard (on-premises) gatewayShared by many users and modelsInstall on a reliable server; use clusters for resilience
Personal modeOne person’s own refresh needsNot suitable for shared production use
Virtual network gatewayCloud sources in private Azure networksManaged by Microsoft, no machine to run

Credentials

Each data source in the service needs credentials stored securely. Prefer organizational identities and managed arrangements over shared passwords. When a person leaves, make sure that no important refresh depends on their personal account. Use service accounts with limited rights, or other non-personal identities.

Gateway sizing and resilience

The gateway machine needs enough memory and processor for the busiest refresh and live queries. A single gateway is a single point of failure, so production uses a cluster of two or more machines. Place them close to the data, keep them patched and monitor them. For heavy use, separate gateways for refresh and for live queries prevent one from starving the other.

i
Close to the data

Put the gateway on the same network as the source, not far away across a slow link. Every round trip adds delay, and large refreshes may transfer a lot of data.

10Refresh, Dataflows and Incremental Loading

Imported data goes stale. Refresh is the process that brings it up to date, and it needs as much care as the report itself.

Scheduled refresh

You set a timetable, such as every morning at six and every noon. At each time, the service reconnects to the sources, reloads the data, rebuilds the model and replaces the old copy. Limits exist on how many times a day a model may refresh, depending on license and capacity. A refresh can fail for many reasons: expired credentials, a source that is down, a changed column name or running out of memory.

Refresh duration and memory

During refresh, the service may need roughly double the memory of the model, as it holds the old copy while building the new. A model near the size limit may therefore fail to refresh even though it opens fine. Keeping models lean avoids this.

Incremental refresh

Reloading ten years of sales every night to pick up today’s few thousand rows wastes time and money. Incremental refresh divides the data into time slices. Old slices are kept as they are; only recent slices are reloaded. A refresh that took two hours may take five minutes. You choose how many past periods to keep and how many recent periods to refresh. The source must support filtering by date efficiently.

Everyday analogy

A newspaper archive does not reprint every old issue each morning. It adds today’s paper to the shelf. Incremental refresh adds only the new pages, and only touches the recent shelf in case of corrections.

Dataflows

A dataflow performs the cleaning and shaping once, in the cloud, and stores the results so many models can reuse them. This avoids copying the same logic into many report files, and reduces repeated load on the source. If a data fix is needed, it is made in one place.

Refresh good habits

Habit

Stagger schedules

Do not start all refreshes at the same minute; spread them to avoid overload.

Habit

Alert on failure

Send failure notices to a shared mailbox, not just to the author.

Habit

Refresh after the source finishes

Trigger refresh when the upstream data pipeline ends, instead of guessing a time.

Habit

Show the last refresh time

Display the date and time on the report so users know how fresh numbers are.

Event-driven refresh

Instead of a fixed clock, a data pipeline can call the service when it finishes loading, so reports refresh exactly when new data is ready. This reduces wasted refreshes and avoids showing half-loaded data.

11Workspaces, Apps, Sharing and Lifecycle

How you organize and release content decides whether users find the right report and whether authors can change things safely.

Workspaces and roles

RoleWhat the person can do
AdminManage the workspace, its members and settings
MemberEdit content and share it, add other members within limits
ContributorCreate and edit content but not publish apps or manage members
ViewerView content only

Apps for audiences

Workspaces are where authors work, and they should be limited to the team. Readers should get content through an app, a packaged and versioned set of items with its own audience groups. An app can show different pages to different groups. Authors keep editing in the workspace and publish a new version of the app only when ready.

Deployment pipelines

For serious content, use separate workspaces for development, test and production, linked by a pipeline. Authors build in development, the pipeline copies content to test where users check it, then to production. Rules in the pipeline change data source connections between stages, so a test report reads test data and a production report reads production data.

flowchart LR
  DEV["Development workspace"] -->|"deploy"| TST["Test workspace"]
  TST -->|"deploy after approval"| PRD["Production workspace"]
  PRD --> APP["App for readers"]
  GIT["Source control"] -.-> DEV
Figure 6: A release path from development to readers

Source control

Report and model definitions can be stored as text files in version control. Teams then review changes, see who changed what and roll back mistakes. It also enables automated checks, such as scanning models for common problems before deployment.

Certified and promoted content

To help users find trusted models, owners can mark them as promoted, meaning the team recommends them, or certified, meaning an approved reviewer has checked them. A data catalog view then lets users search by name, owner and endorsement.

Sharing choices

Option

Share a link

Quick but easy to lose track of. Fine for small groups.

Option

Publish an app

Best for broad audiences; versioned and controlled.

Option

Embed in a portal

Reports appear inside an intranet or product page.

Option

Email subscription

Scheduled snapshots delivered to inboxes.

12Security: Identity, Row-Level Rules and Labels

Reports often show sensitive numbers. Security must be designed into the model, not added at the end.

Identity

People sign in with the organization’s directory, which supports strong sign-in methods and conditional rules, such as requiring extra verification from unknown locations. Groups in the directory are used to assign access to workspaces, apps and security roles, so managers manage groups instead of individuals.

Row-level security

Row-level security hides rows from users who should not see them. A sales manager sees only their region. A store manager sees only their store. You define roles in the model, each with a filter rule on a table, and assign groups to roles. Rules can be fixed lists or can look at the signed-in user’s name or email and match it to a table of permissions. Dynamic rules reduce the number of roles to maintain.

Everyday analogy

A hotel gives each guest a key card that opens only their own room. The building is shared, but each key opens different doors. Row-level security is the key card for rows of data.

Object-level security

This hides whole tables or columns, for example salary columns, from some roles. The hidden items vanish from the field list, so users do not even know they exist.

Sensitivity labels

Labels, such as “internal” or “confidential”, can be applied to models and reports and follow the data when it is exported to files. They connect to the organization’s wider information protection rules and can enforce encryption or limit sharing.

Tenant settings

Administrators control many features through tenant-wide switches: who may publish to the web, who may export data, who may create workspaces, and whether guests are allowed. Review these regularly. A “publish to web” feature, for example, makes a report public to anyone with the link, so it should be tightly controlled or disabled.

Common security gaps

GapRiskControl
Workspace viewers are also model editorsRow-level rules do not apply to editorsGive readers viewer access or app access only
Shared service account with broad source rightsOverexposure if the model is mis-sharedUse least privilege accounts and dedicated views
Public publishing enabledAccidental public dataRestrict to a small group or disable
Data exported to spreadsheetsLoses securityLimit export and use labels
Rules built by hand per personErrors and stale accessUse directory groups and dynamic rules
Guests with wide accessExternal exposureGuest policies and reviews
!
Test as the user

Always test row-level rules with the “view as role” feature and with real test accounts. A rule that looks right on paper can leak rows through a missed relationship.

13Network Security and Private Connections

Many organizations require that data never cross the public internet. Azure networking features make this possible for Power BI.

Private connections to the service

You can require that users reach the Power BI service only through private links in your own virtual network, so traffic from offices and virtual machines travels over private paths. A setting can then block public internet access to the service for the tenant, or for specific content. This is a strong control, and it changes how every user connects, so plan carefully, especially for remote workers and phones.

Private connections to data sources

When the data source, such as a database or warehouse, has public access turned off and is available through a private endpoint, the service needs a way in. A virtual network data gateway is deployed into your virtual network, runs managed by Microsoft, and connects privately to those sources. This avoids running your own machines.

NeedTool
Block public access to the service for usersPrivate links for the tenant
Reach on-premises sourcesOn-premises data gateway
Reach private cloud sourcesVirtual network data gateway
Control where users sign in fromConditional access in the directory
Inspect or restrict outbound web callsFirewall rules and allow lists
Protect keysKey storage service, customer-managed keys where offered

Conditional access

Rules in the directory can require compliant devices, known locations or extra verification before a user can open Power BI. They can apply different rules to different groups, such as stricter rules for administrators.

Encryption and keys

Data is encrypted in transit and at rest by default. Organizations with strict rules may supply their own encryption keys, held in a key storage service, for certain capacity types. Check the current availability and the effect on recovery if a key is lost.

Auditing

The service records activities such as viewing reports, exporting data, sharing, and changing settings. These audit records can be exported to a security system for alerts, such as an unusual large export. Keep them for the period your rules demand.

i
Network rules are only one layer

Private links stop outsiders reaching the service, but do not stop an authorized insider from over-sharing. Combine network controls with labels, row-level rules and audit alerts.

14Power BI Embedded: Reports Inside Your Own Applications

Sometimes the best place for a report is not a separate website, but inside the application people already use.

Two embedding styles

In embedding for your organization, employees who already have licenses see reports inside an internal portal or collaboration tool and sign in with their own identity. In embedding for your customers, a software company shows reports to external users who have no license and often no organizational identity. The application signs in on their behalf with a service identity and asks for a short-lived embed token for each session.

sequenceDiagram
  participant CU as Customer browser
  participant APP as Your application
  participant ID as Identity service
  participant PBI as Power BI service
  CU->>APP: Sign in to your app
  APP->>ID: Service identity requests access
  ID-->>APP: Access token
  APP->>PBI: Request embed token for report and user rules
  PBI-->>APP: Short-lived embed token
  APP-->>CU: Page with embed token and report address
  CU->>PBI: Load report using embed token
  PBI-->>CU: Report visuals
Figure 7: How an application embeds a report for its own customers

Capacity for embedding

Embedded content for customers must run on a dedicated capacity, which is bought in Azure by size, and can often be paused when not in use. Because the capacity is yours, you control costs and performance, and many customers can view without any license of their own.

Multi-tenant designs

A software vendor serving many customers must keep each customer’s data separate. Two main patterns exist. In the first, each customer gets its own workspace and model, giving strong isolation but more items to manage. In the second, all customers share one model, and row-level security isolates data using a customer identifier passed in the embed token. This is cheaper but demands careful testing, since a mistake could expose one customer’s data to another.

PatternIsolationManagement effortCost
Workspace per customerStrongHigh; automate with scriptsHigher memory use
Shared model with row-level securityDepends on rulesLowerLower
Hybrid by customer tierStrong for big, shared for smallMediumBalanced

Application considerations

Detail

Token lifetime

Embed tokens expire, so the page must refresh them before they run out.

Detail

Look and feel

Themes, hidden toolbars and custom navigation make reports feel native.

Detail

Programming interface

A client library lets the page react to clicks, set filters and capture events.

Detail

Automation

Scripts create workspaces, publish reports and assign capacity as customers sign up.

!
Never expose the service identity

The service identity can create embed tokens for any content it can reach. Keep its secret in a key vault, restrict its access to only the needed workspaces, and never ship it in browser code.

15Performance: Making Reports Fast

Slow reports lose users. Most slowness has a small set of causes that can be found and fixed in a methodical order.

Find the slow part first

A built-in analyzer records how long each visual takes to load, and splits that time into the model query and the drawing. A separate tool traces the queries sent to the model and shows the slowest. Always measure before changing, since the guess is often wrong.

Model fixes

1

Remove what you do not use

Delete unused columns and tables. Smaller models scan faster and refresh faster.

2

Reduce unique values

Split date-time columns into a date and a time, round long decimals and avoid high-cardinality text columns where possible.

3

Use a star schema

Flat wide tables and tangled relationships slow everything.

4

Write efficient measures

Avoid repeating the same calculation, use variables to store intermediate results, and prefer simple filters.

5

Add aggregations

For huge fact tables, create pre-summarized tables so most clicks use the small one.

Report fixes

Report

Fewer visuals per page

Each visual is a query. Move detail to drill-through pages.

Report

Avoid huge tables and long slicer lists

Rendering thousands of rows or items is slow for the browser too.

Report

Be careful with custom visuals

Some are slower than built-in ones and may not be allowed in secure tenants.

Report

Use filters before data loads

Default filters limit the data each visual must process.

Source fixes for live modes

When using DirectQuery, the source does the work. Make sure the source has the right indexes and statistics, use views that pre-join and pre-filter, and avoid calculations in the report that the source cannot translate efficiently. Consider a dedicated read replica so reports do not compete with the live application.

Capacity-level performance

If many users hit the same capacity at the same time, even well-built reports can slow. A monitoring app for the capacity shows which items use the most compute. Move heavy items to their own capacity, schedule heavy refreshes off peak hours and optimize the heaviest models first.

SymptomLikely causeFirst fix
Whole page slow to openToo many visuals or heavy custom visualsSimplify the page
One visual slowComplex measure or high-cardinality fieldProfile the measure, simplify
Slow only at busy timesCapacity overloadScale or reschedule refreshes
Slow only in live modeSource not tunedIndex, summarize, or move to import
Refresh too slowFull loads of large historyIncremental refresh

16Capacity, Scaling and Throttling

Dedicated capacity is a shared pool for everything in its workspaces. Managing it is like managing the electricity supply of a building.

What a capacity measures

Capacities are measured in compute units, which stand for processing power over time. Every refresh, query and background task consumes some. Interactive work, such as people clicking on reports, is sensitive to delay, while background work, such as refreshes, can be spread over time. The platform uses smoothing to average usage across a window of time, so short spikes do not immediately cause trouble.

When the limit is exceeded

If usage stays above the capacity for too long, the platform starts to slow or reject requests, called throttling. Interactive requests may be delayed or rejected, and background jobs may be postponed. The stronger the overload, the stronger the throttling. Users experience this as slow or failing reports, often with no change on the report side.

Everyday analogy

A building has a main power limit. A brief surge when everyone boils a kettle is absorbed. But if every room runs heaters for hours, the main switch trips and the whole building goes dark. Smoothing is the building’s ability to ride out short surges.

Sizing a capacity

Start by listing workloads: the number of users, concurrency at peak, model sizes, refresh counts and times, and any heavy calculations. The sizes are not linear, so test with real content. Many teams begin with a moderate size, watch usage for a few weeks using the monitoring app, and adjust.

A worked example

These numbers are illustrative only. Suppose a capacity can sustain an average of 64 units of compute. Business hours load is 40 units from users plus 10 from refreshes, so 50 units, which is 78 percent. At month-end, finance runs heavy reports, adding 30 units for two hours, giving a peak of 80. If smoothing averages usage over a period of that length, the average over the window could exceed 64, causing throttling. Fixes include moving finance’s items to their own capacity, rescheduling refreshes away from month-end mornings, or choosing the next size up for those days if the platform supports scaling on demand.

Ways to scale

Scale

Scale up

Move to a larger size for more compute.

Scale

Scale out

Create several capacities and spread workspaces among them.

Scale

Pause and resume

For embedded capacities in Azure, pause when idle to save money.

Scale

Autoscale features

Some capacity types can add extra compute temporarily when overloaded; check current options and costs.

Scale

Optimize first

Often one badly built model uses half the capacity. Fix it before paying for more.

Scale

Separate by criticality

Keep executive and customer-facing content apart from experimental workloads.

17High Availability and Disaster Recovery

Reports are only useful when they are available. Know what the platform protects and what you must protect yourself.

What Microsoft provides

The service is built across multiple machines and datacenters, and it fails over inside a region without your involvement. Some capacities can be set up with options for zone resilience or for a secondary region. Check the current documentation for exactly which protections your capacity type offers.

What you must protect

ItemRiskProtection
Model and report filesDeleted or overwritten by mistakeSource control and saved copies outside the service
Source dataLoss or corruption upstreamBackups and recovery for the source systems
GatewaysSingle machine failsGateway clusters
CredentialsExpire or owner leavesService accounts and rotation reminders
CapacityOverload or regional issueSpare capacity, secondary region plans
ConfigurationWorkspace and permission mistakesInfrastructure scripts and documentation

Recovery targets

Decide how long a report can be unavailable and how old its data may be after recovery. A board dashboard may tolerate hours; a customer-facing embedded report may tolerate minutes. Your answers decide how much to spend on redundancy.

A simple regional design

flowchart LR
  subgraph RA["Primary region"]
    CA["Capacity A"] --> WA["Production workspace"]
  end
  subgraph RB["Secondary region"]
    CB["Standby capacity B"] --> WB["Standby workspace with same content"]
  end
  GIT["Source control and deployment scripts"] --> WA
  GIT --> WB
  SRC["Source data replicated"] --> WA
  SRC --> WB
  APPU["Users and apps"] --> WA
  APPU -. "switch if primary fails" .-> WB
Figure 8: A standby workspace in another region deployed from the same source control

Practice the failover

Unused plans do not work. Once or twice a year, deploy the content to the standby, test refresh, test security rules and measure how long the switch takes. Update documents with what you learned.

i
Content as code is the best backup

If every report and model can be rebuilt from files in source control and a deployment script, even a deleted workspace is an inconvenience, not a disaster.

18Monitoring, Logging and Troubleshooting

Both the platform and your own content should be watched. A few views answer most questions.

Capacity metrics

A monitoring application, provided by Microsoft, shows capacity usage by item and by time, throttling events and which operations used the most compute. It is the first place to look when users report slowness.

Activity and audit records

These show who viewed, shared, exported or deleted what. Send them to a central store and build alerts for patterns like mass exports, new public links or deletion of production items.

Refresh history

Each model keeps a history of refresh runs with start time, duration and any error message. Review failures weekly, and track trends in duration, since steadily increasing time warns of growth problems.

Usage metrics

Usage reports show which reports are viewed, by whom and how often. They reveal unused reports that can be retired, and the most popular ones that deserve optimization.

Model-level traces

For deeper investigation of a model, an external tool can connect to the model engine and record query timings and memory use. Use it during development and when diagnosing production problems.

Alerts worth having

Alert

Refresh failure

For every production model, to a team mailbox.

Alert

Capacity over eighty percent

Sustained over a set period, before throttling starts.

Alert

Gateway offline

One of the cluster nodes stops reporting.

Alert

Large export

A user exports an unusual amount of data.

Alert

New public link

Any content published to the open web.

Alert

Credential nearing expiry

Service accounts and secrets with end dates.

A troubleshooting walk

1

Is it one user or all?

One user suggests permissions, security rules or a local browser issue. All users suggest the model, source or capacity.

2

Is the data stale or wrong?

Check the last refresh result and the source system. Compare a number with the source directly.

3

Is it slow?

Use the performance analyzer to see whether the time is in queries or drawing, then check capacity usage.

4

Is a connection failing?

Check credentials, gateway status and network rules for the source.

5

Did something change?

Check recent deployments, schema changes at the source and tenant setting changes.

19Understanding Cost

A Power BI bill has several parts, and the largest are often people and capacity. Prices change, so use the official calculator for real numbers.

Part 1

User licenses

Per-user charges for authors and, in some models, for viewers.

Part 2

Capacity

Hourly or monthly charges for dedicated compute, whether used or not.

Part 3

Embedded capacity

Billed in Azure by size and by the hours it is running.

Part 4

Source systems

Queries from DirectQuery and refreshes load databases and warehouses that also cost money.

Part 5

Gateways and networks

Machines for gateways, private links and data transfer.

Part 6

People

Modelers, administrators and support, usually the largest cost.

A worked comparison

The numbers below are invented to show the method. Suppose a per-user license costs 10 dollars per person per month, and a capacity costs 5,000 dollars per month with no viewer licenses needed for the audience. For 100 viewers, per-user licensing costs 100 times 10, or 1,000 dollars, which is far cheaper than the capacity. For 1,000 viewers, it costs 10,000 dollars, which is more than the capacity. The break-even is 5,000 divided by 10, which is 500 viewers. Remember that authors still need licenses, and that capacity also gives larger models, more refresh and extra features, so the decision is not only about price. Check current official prices and rules.

Embedded cost example

Imagine an embedded capacity costing 1.00 dollar per hour in a small size. Running all month, 730 hours, costs 730 dollars. If your customers use the application only during business hours, about 12 hours on 22 days, that is 264 hours, and pausing at other times would cost 264 dollars, a saving of 466 dollars per month. Automation that resumes the capacity before the first user arrives makes this practical, though resume takes a short time.

Ways to reduce cost

Retire reports nobody uses, using usage metrics to find them. Reduce model sizes and refresh frequency. Use incremental refresh. Pause embedded capacity when idle. Share one trusted model among many reports instead of many copies. Use per-user licenses for small groups and capacity only when the audience or workload justifies it. Review licenses quarterly and remove those of people who left.

i
Measure value too

The cheapest report is not the best one. Judge cost against the decisions a report improves. A small number of well-used reports beats a large pile of unused ones.

20Choosing Between Analytics Options in Azure

Power BI is the presentation and modeling layer of analytics. Other Azure services do the heavy lifting beneath it, and some compete for parts of the job.

NeedTypical serviceRelationship to Power BI
Interactive reports and dashboardsPower BIThe main tool
Store and query large structured dataAnalytics warehouses and lake enginesCommon sources for models
Prepare and move data on schedulesData pipeline servicesFeed the sources that Power BI reads
Live event processingStream processing servicesCan feed real-time visuals and stored tables
Fast exploration of logs and telemetryReal-time analytics databasesDirect sources for live reports
Pixel-perfect printed documentsPaginated reportsPart of the same service, for invoices and statements
Machine learningMachine learning servicesScores can be shown in reports
flowchart TD
  N["What do users need?"] --> A{"Explore and interact with charts?"}
  A -->|"Yes"| PBI["Power BI report on a semantic model"]
  A -->|"No"| B{"Printable fixed-layout documents?"}
  B -->|"Yes"| PAG["Paginated report"]
  B -->|"No"| C{"Ad hoc queries on raw logs by technical staff?"}
  C -->|"Yes"| ADX["Query tool on a real-time analytics database"]
  C -->|"No"| D{"Data pushed into another application?"}
  D -->|"Yes"| API["Programming interface or data export"]
  D -->|"No"| REV["Revisit requirements"]
Figure 9: A simple guide for choosing how to present data

Power BI and its neighbors

A common architecture lets data engineering services collect and clean data into a lake or warehouse. Power BI then reads from there. Stream processing services feed live tiles. Power BI does not replace the warehouse; it is a layer on top. Treating it as the place to do heavy transformations or to store the only copy of business data leads to slow refreshes and fragile reports.

Other business intelligence tools

Other vendors offer competing tools, and some organizations run more than one. Power BI is most attractive when the organization already uses the Microsoft ecosystem for identity, office tools and data. Compare tools by license cost, connector support, governance features, skills available and integration with your data platform.

Spreadsheets still have a place

Spreadsheets remain useful for quick one-off analysis. Power BI models can be opened in spreadsheet tools through connections, giving users familiar pivots on governed data, which reduces the temptation to export and copy.

Everyday analogy

A grocery chain has farms, warehouses, trucks and shop shelves. Power BI is the shop shelf: where customers look, compare and choose. It needs everything behind it to work, but you would not use the shelf to grow the vegetables.

21Advantages, Disadvantages and Trade-offs

An honest look at what the service does well and where it brings limits.

Advantages

  • Easy for business users to start, with a powerful engine for specialists
  • Fast in-memory analytics with strong compression
  • Deep integration with Azure data services, identity and office tools
  • Rich sharing, apps, subscriptions and mobile access
  • Row-level and object-level security, labels and auditing
  • Embedding for internal and customer-facing applications
  • Large community, many connectors and visuals

Disadvantages

  • Licensing is complex and changes often
  • Models have size and refresh limits depending on license
  • Easy to create ungoverned copies and inconsistent numbers
  • Poor models and measures can be very slow, and capacity throttling confuses users
  • Live modes depend heavily on source performance
  • Learning the measure language and filter context takes time
  • Strongest in the Microsoft ecosystem

Key trade-offs

ChoiceBenefitCost
Import modeFast reportsStale between refreshes, memory limits
DirectQueryLive data, huge sizesSlower visuals, source load
Shared central modelsConsistent numbers, less duplicationCentral team becomes a bottleneck unless well run
Free-form self-serviceSpeed and freedomInconsistent logic, governance risk
Capacity licensingLarge audiences, predictable performanceFixed spend, need for monitoring
Tight tenant controlsSafer dataSlower experimentation by users

Finding the balance

The healthiest organizations use a hub-and-spoke approach to responsibility. A central team owns core models, standards and the platform, while business teams build reports on those models and, within limits, their own models for local needs. Clear rules explain when something should be promoted from local to central.

22Design Patterns and Anti-Patterns

Teams with good results repeat a handful of habits. Teams that struggle repeat a handful of mistakes.

Patterns that work

Pattern

Shared model, thin reports

One governed model feeds many reports, each holding only visuals and light logic.

Pattern

Star schema from the warehouse

Shape data into facts and dimensions upstream, so the model is simple.

Pattern

Aggregations over big facts

Pre-summarize large data so common questions are answered from a small table.

Pattern

Dev, test, prod pipeline

Build, review and release content through stages with source control.

Pattern

Groups and dynamic security

Assign access through directory groups and one dynamic row-level rule.

Pattern

Certified core content

Mark reviewed models as certified so users know what to trust.

Anti-patterns to avoid

Anti-pattern

Giant flat table

One wide table with everything, slow and hard to maintain.

Anti-pattern

Everything in the report file

Duplicate models in dozens of report files, each with slightly different logic.

Anti-pattern

Personal accounts for production refresh

When the person leaves, refreshes fail.

Anti-pattern

Overloaded dashboards

Dozens of visuals and slicers on one page, impossible to read or load.

Anti-pattern

Security by hiding

Hiding a page or a button instead of using real row-level or object-level security.

Anti-pattern

Export and email forever

Users export to spreadsheets and email them, bypassing governance.

A report is a promise: “these numbers mean what you think they mean.” Governance is how you keep the promise.

23Best Practices and Common Mistakes

A checklist to apply before any report is released to a wide audience.

Best practices

1

Start from the decision

Ask who will use the report, what decision it supports and what they do next.

2

Model before you chart

Design the star schema and measures first. Charts are easy once the model is right.

3

Define business terms once

Agree what “revenue”, “active customer” and “margin” mean, and write it into the model descriptions.

4

Keep pages simple

Few visuals, clear titles, consistent colors, and the most important number first.

5

Use service identities for production

Avoid personal accounts for refresh, and rotate secrets.

6

Test numbers against the source

Compare totals with the source system before release and after changes.

7

Release through stages

Use pipelines, review and rollback plans.

8

Monitor usage and retire the unused

Remove reports no one opens, to cut cost and confusion.

Common mistakes

MistakeResultPrevention
Wrong relationship directionWrong totals or slow queriesReview filter flow; avoid unneeded two-way filters
No date tableTime comparisons breakCreate and mark one complete calendar
Many-to-many links everywhereAmbiguous resultsFix the model shape or add bridge tables
Row-level rules tested only by the authorLeaks to wrong usersTest with view-as-role and separate accounts
Refresh scheduled at the same minute for allOverload and failuresStagger schedules
Ignoring refresh failuresStale numbers in front of executivesAlerts and weekly review
Publishing to the web without thoughtPublic exposureRestrict the setting and audit
No ownershipAbandoned content nobody fixesOwner and contact on every item

24Failure Scenarios and Recovery

Walk through the failures in advance, and recovery becomes routine.

Scenario one: the morning report shows yesterday’s numbers

The scheduled refresh failed in the night because the source password had expired. Nobody noticed because failure notices went to the person who had left. Recovery: renew the credential, refresh, and tell users. Prevention: failure alerts to a shared mailbox, service accounts and expiry reminders.

Scenario two: everything is slow on the first of the month

Many finance reports run at once, and several large refreshes overlap. The capacity is throttled. Recovery: pause or reschedule noncritical refreshes, ask heavy users to wait, or add temporary capacity. Prevention: capacity monitoring, staggered refresh and a separate capacity for month-end work.

Scenario three: a user sees rows they should not

A manager reports seeing another region’s sales. Cause: the user was also a member of the workspace with an editor role, to which row-level rules do not apply. Recovery: change the role to viewer or give app access, and review who saw what using audit records. Prevention: separate authoring and reading, and periodic access reviews.

Scenario four: a schema change breaks the model

A database team renamed a column. The refresh fails and visuals show errors. Recovery: update the query to the new name and refresh. Prevention: communicate source changes, use stable views as the contract between source and model, and run automated checks in test before production.

Scenario five: the gateway machine is down

An update restarted the gateway server, and on-premises refreshes failed. Recovery: restart the service and rerun the refresh. Prevention: a cluster with at least two nodes, patching one at a time, and monitoring.

Scenario six: an embedded customer view shows another customer’s data

A bug in the application sent the wrong customer identifier in the embed token. Recovery: disable the report in the application, fix the logic, invalidate tokens, notify affected parties according to policy. Prevention: automated tests of the security rules for each customer pattern, code review and a second layer of isolation for high-risk data.

flowchart TD
  A["User reports a problem"] --> B{"Data stale or wrong?"}
  B -->|"Stale"| C["Check refresh history, credentials and gateway"]
  B -->|"Wrong"| D["Compare with source, review measures and relationships"]
  B -->|"Neither"| E{"Slow or failing?"}
  E -->|"Slow"| F["Check capacity metrics and performance analyzer"]
  E -->|"Access issue"| G["Check roles, row-level rules and sharing"]
  C --> H["Fix, refresh and confirm with the user"]
  D --> H
  F --> H
  G --> H
Figure 10: A quick triage path for report problems
!
Write a trust message

When numbers are wrong, tell users quickly and clearly what happened and when it will be fixed. Silence damages trust in the whole platform more than the error itself.

25Governance, Ownership and a Center of Excellence

Technology alone does not create trustworthy analytics. People, rules and habits do.

Who owns what

Each model and report needs a named owner who answers questions, fixes problems and decides on changes. Data owners decide what the sensitive fields are and who may see them. Platform administrators manage tenant settings, capacities and gateways. A central support team trains users and runs a help channel.

A center of excellence

Many organizations create a small group, often called a center of excellence, to help the rest of the company use the tool well. It publishes standards, templates, naming rules and training. It certifies core models and runs office hours. It does not build every report; it helps others build good ones.

Standards worth writing down

Standard

Naming and structure

How workspaces, models, tables and measures are named and organized.

Standard

Design guide

Colors, fonts, layouts and rules for readable pages.

Standard

Release process

Which items must pass through test and review before production.

Standard

Data classification

Which labels apply to which data, and what each label allows.

Standard

Workspace lifecycle

Who may create workspaces and when unused ones are archived.

Standard

Support levels

What is promised for certified content versus personal content.

Measuring governance

Track the number of certified models, the share of reports built on shared models, refresh failure rates, unused content, access review completion and the time to resolve problems. These indicators show whether the platform is becoming more or less trustworthy.

Training and culture

Teach three things to everyone: how to read a report critically, how to find certified content, and how to ask for help. Teach authors how to model data, write measures, secure content and optimize performance. A short, regular training plan avoids the slow drift into confusion.

i
Make the right path the easy path

If the governed way is slower than the shortcut, people will take the shortcut. Provide templates, ready-made shared models and quick approvals, so doing the right thing is also the easiest thing.

26Real-World Usage Examples

These are typical, invented scenarios that show the ideas at work. They are not reports about any named company.

Retail

Daily sales and stock for regional managers

A retailer loads sales and stock into a warehouse each night. A shared model with a star schema feeds a set of reports. Regional managers see only their region through a dynamic row-level rule based on their directory group. Incremental refresh keeps the nightly load short, and an app delivers the reports to phones.

Software company

Analytics inside a product

A software vendor embeds usage dashboards in its application for customers. It uses a shared model with row-level rules by customer identifier for small customers, and dedicated workspaces for large ones. The embedded capacity is paused overnight and resumed by an automated job, cutting cost.

Manufacturing

Live plant monitoring with history

A factory streams machine readings into a real-time store. A composite model imports small machine and shift tables, and queries the live store for recent readings, with aggregation tables for long history. Supervisors see current conditions and trends on one page.

Healthcare

Protected operational reporting

A hospital group uses private links and a virtual network gateway to reach data stores without public access. Sensitivity labels and strict export limits apply, and audit records are monitored. Clinical leaders see departmental metrics without patient identifiers.

Finance

Month-end close reporting

A finance team runs heavy reports at month end. A separate capacity isolates this load, and refresh is triggered when the accounting pipeline completes, not by a clock. Certified models define revenue and margin once, and all reports reuse them.

What they share

Each example starts from a clear audience and decision, builds a clean shared model, controls access with groups and rules, plans refresh and capacity, and watches usage. The tool was the easy part; the model, the security and the habits made the difference.

27Frequently Asked Questions

Short answers to common questions. Where a detail may have changed, confirm in the current Microsoft documentation.

Q1 Is Power BI an Azure service?
It is a Microsoft cloud service that runs alongside Azure, shares its identity system and connects tightly with Azure data services. Some parts, such as embedded capacity, are bought and managed through the Azure portal.
Q2 What is the difference between a semantic model and a report?
The model holds tables, relationships and measures. The report holds visuals that ask the model questions. One model can feed many reports.
Q3 Should I use Import or DirectQuery?
Use Import by default for speed. Use DirectQuery when data is too large to copy or must always be current and the source can answer quickly.
Q4 Do I need a gateway?
If data sits in a private network that the cloud cannot reach directly, yes. For public cloud sources, usually no. For private cloud sources, a virtual network gateway may be used.
Q5 Why did my scheduled refresh fail?
Common causes are expired credentials, a source that was unavailable, a changed column name, a gateway that is offline, or running out of memory.
Q6 How do I show different data to different people?
Use row-level security with roles tied to directory groups, ideally with a dynamic rule based on the signed-in user.
Q7 Why do row-level rules not seem to apply to some people?
Users with edit rights on the workspace are not restricted by those rules. Give readers viewer or app access only.
Q8 Can I put reports in my own application?
Yes, through embedding. For external customers, you use an embedded capacity and a service identity that requests embed tokens.
Q9 How can I make reports faster?
Slim the model, use a star schema, simplify measures, reduce visuals per page, add aggregations for large data and watch the capacity.
Q10 What does incremental refresh do?
It reloads only recent time slices of data instead of the entire history, making refresh much faster.
Q11 How do I choose between per-user licenses and capacity?
Compare the cost for your number of viewers and the features you need. Capacity usually becomes economical for large audiences. Always check current prices and rules.
Q12 Can Power BI be restricted to private networks?
Yes, with private links for the service and virtual network gateways for data sources, plus conditional access rules. Plan for remote users.
Q13 What happens when a capacity is overloaded?
The platform smooths short spikes but then delays or rejects requests, called throttling, until usage falls.
Q14 How do I keep numbers consistent across reports?
Use certified shared models with agreed definitions, and build reports on them rather than copying data.
Q15 Can I recover a deleted report?
Possibly for a limited time through admin tools, but do not rely on it. Keep source files in version control.
Q16 Do features and prices stay the same?
No. Licensing, limits and features change often. Check the current documentation and pricing pages.

28Summary and Key Takeaways

Power BI turns data from Azure and other sources into models, reports and apps that people can explore, share and embed, if the model, security and capacity are designed with care.

Key takeaways

  • Separate the semantic model from reports; build one trusted star-schema model and many reports on it.
  • Choose the storage mode on purpose: Import for speed, DirectQuery for live or huge data, composite or Direct Lake when the platform supports them.
  • Plan data paths: gateways for private networks, service identities for refresh, incremental refresh and dataflows for efficiency.
  • Secure in layers: directory groups, row-level and object-level security, sensitivity labels, tenant settings, private links and audit alerts.
  • Manage capacity like a utility: monitor usage, avoid throttling, separate critical workloads, and pause embedded capacity when idle.
  • Release content through development, test and production stages with source control, and keep a tested recovery plan.
  • Invest in governance and ownership, and verify current licensing, limits and prices in the official Microsoft documentation.