Power BI in Azure: From Raw Data to Trusted Decisions at Enterprise Scale

Power BI in Azure: From Raw Data to Trusted Decisions at Enterprise Scale

A complete, plain-English guide to how Power BI runs on Azure and connects to Azure data: building blocks, storage modes, modeling, gateways, refresh, capacities and licensing, security, private networking, governance, deployment, performance, embedding, monitoring and cost.

Imagine the owner of a large restaurant chain. Every night, hundreds of cash registers, supplier invoices, delivery apps and staff schedules produce a mountain of numbers. The owner does not want the mountain. She wants a single clear page that says: “Which branches sold less than expected this week, why, and what should I do about it?” Someone has to gather all those numbers, clean them, connect them, calculate the meaningful figures, and then draw them as charts that anyone can understand at a glance, while making sure that each branch manager sees only their own branch. That whole chain, from messy numbers to trusted pictures, is what Power BI is built to deliver.

This guide assumes you know nothing about it. Each new term is explained when it first appears, with an everyday comparison. We start with what Power BI is and how it relates to Azure, then move through data connections, modeling, refresh, capacity, security, networking, governance, deployment, performance and cost. Microsoft’s analytics products, licensing and names have changed noticeably in recent years, especially with the arrival of Microsoft Fabric, so wherever details may have moved, we point it out and recommend checking the current official documentation.

1What Power BI Is and Why It Matters

Power BI turns data into visuals, insights and shared understanding.

Business intelligence in plain words

Business intelligence, or BI, is the practice of collecting data from many places and presenting it so that people can make better decisions. Power BI is Microsoft’s BI product. You connect it to data sources, shape and combine the data, build a model with calculations, and create reports with charts, tables and maps. You then publish those reports to a cloud service where colleagues can view them in a browser, in a mobile app, inside Microsoft Teams, or embedded in other applications.

It is popular because it serves several kinds of people at once. Business users explore reports with a few clicks. Analysts build reports and models with a desktop tool. Data engineers prepare the data underneath. Administrators control who sees what. Developers embed analytics inside their own applications. All of them share one platform.

Simple Analogy

Think of a newspaper. Reporters gather facts, editors verify and shape them, designers lay out the pages, and the printing and delivery system gets the paper to every reader on time. Power BI is that newspaper for your data, with data engineers as reporters, analysts as editors and designers, and the Azure-hosted service as the printing and delivery operation.

Why “in Azure”

The Power BI service is a cloud service that runs on Microsoft Azure infrastructure. Your organization’s tenant, which is its private space in Microsoft’s cloud, has a home region where the service stores your content. Power BI also works closely with many Azure data services such as Azure SQL Database, Azure Synapse Analytics, Azure Data Lake Storage, Azure Databricks and Azure Cosmos DB, and relies on Microsoft Entra ID, Azure’s identity service, for sign-in and permissions. So when people say “Power BI in Azure”, they usually mean three things together: the Power BI service hosted on Azure, the Azure data sources it reads, and the Azure features it uses for security, networking and operations.

4
roles: viewer, analyst, engineer, administrator
1
identity platform for sign-in: Microsoft Entra ID
Many
Azure data sources supported natively
i
Good to know

A good dashboard is the last ten percent of a BI project. The first ninety percent is trustworthy data, a clean model and sensible security. This guide spends most of its time on that ninety percent.

2Power BI and Microsoft Fabric: The Current Landscape

Power BI is now part of a larger analytics platform, and this changes licensing and features.

Microsoft Fabric is a unified analytics platform that brings together data engineering, data warehousing, real-time analytics, data science and Power BI under one roof, with a shared storage layer called OneLake. Power BI is one of the experiences inside Fabric. Many capabilities that once required separate Azure services can now be done in Fabric, and some Power BI licensing has moved toward Fabric capacity-based models.

Idea 1

OneLake

A single logical data lake for the whole organization, in which Fabric items store data in open formats, so that different engines can use the same data without copying.

Idea 2

Capacity

A pool of compute that you buy. All Fabric experiences, including Power BI refreshes and queries, consume that shared pool.

Idea 3

Direct Lake

A newer storage mode that lets Power BI read data directly from lake files in OneLake at high speed, without a full import copy.

Idea 4

Workloads in one place

Engineers, analysts and data scientists can work on the same data and the same workspace, with shared security and governance.

!
Check Before You Plan

Product names, license types, capacity tiers, feature availability and purchase options have been changing, including the shift from older premium capacities to Fabric capacities. Before you design or budget, confirm the current licensing model and feature list on Microsoft’s official pages. The concepts in this guide remain valid, but the labels and prices may have changed.

Two ways to run a modern solution

Organizations take one of two broad paths. In the first, they keep using separate Azure data services such as Synapse or Databricks for preparation, and use Power BI mainly for the reporting layer. In the second, they adopt Fabric more broadly so that data preparation, storage and reporting all live in one integrated platform. Both paths are legitimate. Many organizations mix them during a gradual transition.

Simple Analogy

The first path is like running a kitchen with specialist suppliers delivering ingredients to your restaurant. The second is like an integrated food hall where the farm, the kitchen and the dining room share one building. The food hall is convenient, but not every restaurant needs to move in at once.

3The Building Blocks of Power BI

A handful of objects appear in every Power BI solution.

Object 1

Workspace

A shared container in the service where related content lives and where teams collaborate. Access roles are granted at the workspace level.

Object 2

Semantic model

The data model: tables, relationships and calculations that reports use. Previously called a dataset. It is the heart of any solution.

Object 3

Report

One or more pages of visuals such as charts, tables and maps built on a semantic model, with interactive filtering.

Object 4

Dashboard

A single page of pinned tiles drawn from one or more reports, giving a quick overview. Different from a report, which has multiple pages and richer interaction.

Object 5

Dataflow

Reusable data preparation logic that runs in the cloud and stores cleaned tables for several models to share.

Object 6

App

A packaged, curated collection of reports and dashboards published to a wider audience in a controlled way.

Object 7

Paginated report

A pixel-precise, printable report such as an invoice or statement, suited to long tables across many pages.

Object 8

Gateway

A bridge that lets the cloud service reach data sources inside private networks or on-premises.

flowchart LR
  A["Data sources"] --> B["Dataflow or data preparation"]
  B --> C["Semantic model"]
  C --> D["Reports"]
  D --> E["Dashboards"]
  D --> F["App for wide audience"]
  C --> G["Other reports using the same model"]
        
FIG 1 — How the main Power BI objects relate to one another
Simple Analogy

The semantic model is the kitchen’s prepared ingredient stock, the reports are the plated dishes, the dashboard is the daily specials board, and the app is the printed menu given to guests. One stock can serve many dishes, which is exactly why a well-built model is so valuable.

i
Practical Rule

Separate the model from the reports. Build one trusted semantic model, and let many reports connect to it. Copying a model into every report creates duplicate numbers and endless arguments about whose figure is right.

4The Tools: Desktop, Service, Mobile and More

Different tools serve different parts of the journey.

ToolWhere it runsMain purpose
Power BI DesktopWindows application on the author’s computerConnect to data, shape it, build the model and design reports
Power BI serviceCloud, in a web browserPublish, share, schedule refresh, manage access, collaborate and light editing
Power BI mobile appsPhones and tabletsViewing reports and dashboards on the go, with alerts
Report BuilderWindows applicationAuthoring paginated reports
Power BI Report ServerOn-premises serverHosting reports inside your own data center when the cloud is not allowed
Embedded analyticsInside your own applicationsGiving customers or employees analytics within an application they already use

Languages inside the tools

Two languages power most of the work. Power Query, with its formula language called M, is used to connect to data and shape it: removing columns, merging tables, changing data types, and unpivoting. DAX, short for Data Analysis Expressions, is used to create calculations in the model: totals, ratios, running totals, year-over-year comparisons and measures that respond to the filters a user chooses. Learning to think in these two languages is the main step from casual user to capable analyst.

Simple Analogy

Power Query is the prep station that washes and chops ingredients before cooking. DAX is the chef’s recipe formulas that decide how to combine them into dishes depending on what each customer ordered.

i
Good to know

Desktop is where serious model design happens. The browser editing experience is convenient for small changes and exploration, but professional teams usually keep the source of truth in a file or a version-controlled project created in Desktop or a compatible tool.

5How Power BI Runs on Azure: Architecture

Understanding the moving parts helps you reason about speed, security and cost.

When a user opens a report in a browser, a chain of Azure components answers. The request authenticates with Microsoft Entra ID. The service checks permissions. The query engine runs the report’s questions against the semantic model, either from data held in memory or by sending queries to a source system. Results return to the browser, which draws the visuals. Where the model is hosted and how much compute it can use depends on the capacity attached to the workspace.

flowchart TD
  U["User in browser, Teams or mobile"] --> E["Microsoft Entra ID sign-in"]
  E --> S["Power BI service in tenant home region"]
  S --> C["Capacity: compute for queries and refresh"]
  C --> M["Semantic model in memory"]
  C -.->|DirectQuery or refresh| D["Azure data sources"]
  C -.->|Through gateway| G["On-premises or private network sources"]
        
FIG 2 — Request path from user to data in the Power BI service

Tenant, home region and data location

Your organization’s tenant has a home region, which is where Power BI stores its tenant metadata and, by default, your content. Large organizations with data residency rules can use multi-geo capabilities to place certain content in other regions, so that data for a particular country stays in that country. Because these rules matter legally, confirm the current options with your administrator and documentation.

Shared capacity versus dedicated capacity

With the basic per-user licensing, content lives on shared capacity, where compute is pooled among many customers and managed by Microsoft. With a dedicated capacity, you purchase a reserved amount of compute that serves only your organization. Dedicated capacity offers more predictable performance, larger model sizes, more frequent refresh, advanced features and, at larger sizes, the ability for free-licensed viewers to read content.

Simple Analogy

Shared capacity is a public bus: economical and fine for most trips, but you share the ride. Dedicated capacity is a chartered coach: it costs more, but the seats are yours and it leaves when you say.

i
Practical Rule

Choose shared capacity for small teams and early projects, and consider dedicated capacity when you need many viewers without individual paid licenses, larger models, heavy scheduled refresh or advanced enterprise features.

6Connecting to Azure Data Sources

Power BI has connectors for a large catalog of sources, and Azure services are first-class citizens.

Source

Azure SQL Database and Managed Instance

Common relational sources for operational and reporting data. Support both import and direct query.

Source

Azure Synapse Analytics

Enterprise data warehouse and lake analytics. Frequently used for large-scale reporting with DirectQuery or import.

Source

Azure Data Lake Storage Gen2

Files in a data lake, such as Parquet or CSV, read directly or through a lakehouse or warehouse layer.

Source

Azure Databricks

Lakehouse tables queried through the Databricks connector, popular in data engineering heavy organizations.

Source

Azure Cosmos DB and Data Explorer

Operational documents and fast time-series or log analytics, with connectors suited to those shapes.

Source

Fabric lakehouses and warehouses

Items within Fabric, accessible with the most direct and efficient connection options, including Direct Lake.

flowchart LR
  A["Azure SQL"] --> P["Power BI semantic model"]
  B["Synapse"] --> P
  C["Data Lake Storage"] --> P
  D["Databricks"] --> P
  E["Cosmos DB"] --> P
  F["Fabric lakehouse"] --> P
  G["Excel, files, SaaS applications"] --> P
  P --> R["Reports and dashboards"]
        
FIG 3 — Many sources feeding one semantic model

Authentication to the source

The model must prove who it is to each data source. Options include a stored credential, an organizational account that signs in with Entra ID, and, for supported sources, single sign-on, where the actual report viewer’s identity is passed through so that the source can apply its own per-user security. Single sign-on is powerful but needs careful setup, and it works with direct query connections rather than imported data.

!
Common Mistake

Saving a personal account as the stored credential for a shared model. When that person leaves, changes their password or has their account disabled, scheduled refresh breaks for everyone. Use service accounts or managed approaches owned by the team, not by an individual.

7Storage Modes: Import, DirectQuery, Dual and Direct Lake

The most important design decision in Power BI is where the data lives at query time.

A storage mode describes how a table in the model gets its data when users interact with a report. Each mode trades freshness, speed, size and cost.

Mode 1

Import

Data is copied into the model’s in-memory engine and compressed. Queries are very fast, but data is only as fresh as the last refresh, and the model must fit within size limits.

Mode 2

DirectQuery

Data stays in the source. Every visual sends queries to the source in real time. Data is always current, but speed depends on the source and the model design.

Mode 3

Dual

A table can act as either import or DirectQuery depending on the query, useful for small dimension tables used alongside large DirectQuery tables.

Mode 4

Direct Lake

Reads columns straight from lake files in OneLake into memory as needed, aiming for import-like speed with near-real-time freshness, available within Fabric.

Mode 5

Composite model

A model combining several modes or several sources, so that big detailed tables stay in the source while summaries are imported.

Mode 6

Live connection

A report connects to an existing hosted model rather than holding its own. All modeling happens in the shared model.

QuestionImportDirectQueryDirect Lake
Data freshnessAs of last refreshReal time from sourceNear real time after data lands in the lake
Query speedVery fastDepends on the sourceFast, similar to import when cached
Data size ceilingBounded by model size limitsBounded by the sourceLarge, bounded by capacity guardrails
Load on sourceOnly during refreshEvery user interactionLittle, reads lake files
DAX and model featuresFullSome limitsMostly full, with some limits to check
Best forMost reporting scenariosHuge or real-time sources and source-level securityLakehouse-centric Fabric solutions
flowchart TD
  A["Choose a storage mode"] --> B{"Need data fresher than a scheduled refresh?"}
  B -->|No| C{"Data fits within model size limits?"}
  C -->|Yes| D["Import"]
  C -->|No| E["Consider Direct Lake, aggregations or composite model"]
  B -->|Yes| F{"Data in a Fabric lakehouse or warehouse?"}
  F -->|Yes| G["Direct Lake"]
  F -->|No| H["DirectQuery against a well-tuned source"]
        
FIG 4 — A simplified decision flow for choosing a storage mode
Simple Analogy

Import is photocopying a reference book and keeping the copy on your desk: instant to read, but it can be out of date. DirectQuery is walking to the library every time you need a fact: always current, but slower. Direct Lake is a library that keeps the pages you need already open on your desk, with a fresh edition arriving as soon as it is printed.

i
Practical Rule

Default to Import. It is the fastest, the most feature-rich and usually the cheapest for the source. Move to DirectQuery or Direct Lake only when freshness or data size genuinely demand it.

8Data Modeling: The Foundation of Everything

A clean model makes reports fast, accurate and easy to build; a messy one makes everything harder.

The star schema

The widely recommended design is the star schema. In the middle sits a fact table, which holds the events or measurements you want to analyze, such as sales lines, with numeric values and keys. Around it sit dimension tables, which describe the context: customers, products, dates, stores. Each dimension connects to the fact table through a relationship. The shape looks like a star, which gives it its name. This structure matches the way the engine is optimized and keeps calculations simple.

flowchart TD
  F["Fact table: Sales"]
  D1["Dimension: Date"] --> F
  D2["Dimension: Product"] --> F
  D3["Dimension: Customer"] --> F
  D4["Dimension: Store"] --> F
        
FIG 5 — A star schema: one fact table surrounded by dimension tables
Simple Analogy

The fact table is the receipt roll of every purchase. The dimensions are the separate lookup books that say who the customer was, what the product is, which store it was and what day it happened. Keeping descriptions in lookup books means you never repeat them on every receipt.

Measures versus columns

A calculated column stores a computed value for every row and uses memory. A measure is a calculation evaluated at query time, in the context of whatever filters the user has applied. Totals, averages, ratios and comparisons are best written as measures. Because measures respond to filters, one measure can answer questions about any product, region or period without being rewritten.

Filter context

The key concept in DAX is filter context: the set of filters in effect when a calculation runs. Clicking a region, choosing a month and placing products in rows all contribute to the context. A measure like “total sales” gives different answers in each cell of a table because each cell has a different context. Understanding this, and how functions can modify the context, is the heart of DAX.

Practice

Use a proper date table

A complete, continuous calendar table enables time intelligence such as year to date and same period last year.

Practice

Hide technical columns

Keys and helper columns should be hidden from report authors, who should see only meaningful fields.

Practice

One-to-many relationships

Prefer simple one-to-many relationships with a single filter direction. Avoid unnecessary bidirectional filters.

Practice

Reduce columns and cardinality

Remove columns you do not use and avoid very high-cardinality text columns, which bloat memory.

Practice

Name things for business users

Friendly names, folders and descriptions make a model self-explanatory.

ANTI-PATTERN-01 Avoid
Problem

The model is one giant flat table imported from a join of many source tables, with repeated descriptive text on every row.

Why It’s Harmful

It uses far more memory, refreshes slowly, makes measures awkward and produces wrong totals when duplicates appear.

Correct Approach

Reshape into a star schema with clean dimensions and a narrow fact table before loading.

9Gateways: Bridging Private Networks and the Cloud

Cloud services cannot reach inside your private network unless you give them a safe door.

If your data lives on a server inside your own data center, or inside an Azure virtual network that is not publicly reachable, the Power BI service cannot connect directly. A gateway solves this. It is a small piece of software that runs inside your network and makes only outbound connections to the cloud. When the service needs data, it sends a request through the cloud relay, the gateway runs the query against the private source and returns the results.

sequenceDiagram
  participant PBI as Power BI service
  participant R as Cloud relay
  participant G as Gateway in private network
  participant S as Private data source
  G->>R: Outbound connection kept open
  PBI->>R: Request for data refresh
  R->>G: Forward request
  G->>S: Run query
  S-->>G: Data
  G-->>PBI: Results sent back securely
        
FIG 6 — A gateway uses outbound connections so no inbound firewall holes are needed
Type

On-premises data gateway, standard mode

Installed on a server you manage, shared by many users and models, the usual choice for enterprise use.

Type

Virtual network data gateway

A managed gateway that runs inside your Azure virtual network without you maintaining a server, for sources reachable only from that network.

Type

Personal mode

For one person’s own use, mainly for individual experiments. Not suited to shared enterprise reports.

Simple Analogy

A gateway is a trusted courier stationed inside a locked building. The outside world never gets a key. The courier steps out to a known pickup point, receives instructions, fetches the requested papers from inside, and hands them back.

Operating a gateway well

Treat the gateway like a production server. Run it on a dedicated, well-sized machine close to the data source, not on someone’s laptop. Install it on more than one machine to form a cluster for high availability. Keep the software updated. Monitor processor, memory and network use, because refreshes and DirectQuery traffic all pass through it. Document who owns it and how credentials are stored.

!
Common Mistake

Running the only gateway on a single small virtual machine. When it is rebooted, patched or overloaded, every refresh and every DirectQuery report fails at once. Use a cluster and size it for peak load.

i
Good to know

Many Azure sources do not need a gateway at all if they are publicly reachable with proper firewall rules, or if they are connected through private networking features of the service. Only add a gateway when the source is not reachable otherwise.

10Refresh, Incremental Refresh and Freshness

Imported data is a snapshot, so you must decide how it stays current.

Scheduled refresh

A refresh reloads data from the sources into the model. You can run it on a schedule, such as nightly or every hour, or trigger it through an API when upstream data is ready. The number of scheduled refreshes per day depends on the license and capacity, and larger dedicated capacities allow more frequent refreshes. Check the current limits for your plan.

Incremental refresh

Reloading years of history every night is wasteful. Incremental refresh divides a large table into time-based partitions and refreshes only the recent ones, such as the last few days, while keeping older partitions untouched. This makes refreshes much faster, reduces load on the source, and allows bigger tables. It requires the data to have a reliable date column and the source to support filtering by that date efficiently.

flowchart LR
  A["Partition: years ago"] --> B["Partition: last year, archived"]
  B --> C["Partition: recent months, refreshed rarely"]
  C --> D["Partition: last days, refreshed every time"]
  D --> E["Optional: real-time partition via DirectQuery"]
        
FIG 7 — Incremental refresh keeps old partitions stable and reloads only the newest ones
Simple Analogy

Instead of rewriting the whole ledger every night, the bookkeeper only writes today’s new pages and checks the last few days for corrections. The old pages stay exactly as they were.

Query folding

Query folding is when Power Query translates your data shaping steps into a single query that the source runs itself, instead of pulling all rows and shaping them locally. When folding works, refresh is faster and gentler on the network. Certain operations break folding, and once broken, later steps run in the engine. Design transformations so that the heavy filtering and joining steps come first and fold to the source.

i
Practical Rule

Push heavy transformations upstream whenever possible, into views, a warehouse or a dataflow, rather than rebuilding them in every model. Power BI should consume prepared, well-shaped data.

ANTI-PATTERN-02 Avoid
Problem

Every report author builds their own import of the same large source tables, each refreshing on its own schedule.

Why It’s Harmful

The source is hammered by duplicate loads, capacity is wasted, and different reports show slightly different numbers.

Correct Approach

Build a shared, certified semantic model with one refresh, and let reports connect to it.

11Licensing and Capacities

The licensing model decides who can build, who can view, and how much power you get.

License

Free

Allows personal use and, on suitable capacities, viewing of content shared with the person. Cannot share content on shared capacity.

License

Pro

A per-user license that lets people create, publish and share content on shared capacity, with every viewer of that content also needing a license unless dedicated capacity is used.

License

Premium Per User

A per-user license unlocking many premium features such as larger models and more frequent refreshes for those users.

Capacity

Fabric capacity

Purchased in sizes in Azure and billed by capacity unit. Powers Power BI and other Fabric experiences. At larger sizes, free users can view content.

Capacity

Embedded capacity

Capacity purchased in Azure for embedding analytics in applications for customers, without individual viewer licenses.

Capacity

Legacy premium capacity

Earlier dedicated capacity SKUs that have been moving toward Fabric capacities. Check current availability and transition guidance.

NeedTypical choiceWhy
A few analysts building and sharing among themselvesPro licensesSimple and inexpensive for small groups
Few power users needing large models or advanced featuresPremium Per UserPremium features without a full capacity
Hundreds or thousands of viewers inside the companyDedicated capacity at a size that supports free viewersAvoids buying a license per viewer
Analytics inside a product used by external customersEmbedded or Fabric capacityCustomers do not need Power BI licenses
Lakehouse centered analytics platformFabric capacityOne pool for engineering and reporting
!
Check Before You Plan

License names, per-user prices, capacity sizes, the viewing thresholds for free users, and the status of older premium offerings are changing. Always confirm them in current Microsoft documentation and with your licensing contact before committing to a budget.

Pausing and scaling in Azure

Because capacities are Azure resources, you can often scale them up and down and, for some types, pause them when not in use. Pausing stops the compute charge but also makes content on that capacity unavailable until resumed. This is useful for development or embedded scenarios with predictable idle periods, but it must be planned so that users are not surprised.

Simple Analogy

Per-user licenses are like buying a ticket for each cinema-goer. A capacity is like hiring the entire cinema: more expensive upfront, but if hundreds of people attend, the cost per person falls, and the private hall is always ready.

12Security: Identity, Row-Level Security and Protection

Different people should see different data, and every layer of the platform helps enforce that.

Identity with Microsoft Entra ID

Users sign in with Microsoft Entra ID. This brings centralized controls: multi-factor authentication, conditional access rules that require compliant devices or trusted locations, and group-based assignment of permissions. Always manage access through groups instead of individual users so that onboarding and offboarding are simple.

Workspace roles

RoleTypical abilities
AdminFull control of the workspace, including managing access and deleting content
MemberEdit content and manage most items, often add other members with lower roles
ContributorCreate and edit content but not manage access or publish apps
ViewerView content only

Row-level security

Row-level security, or RLS, restricts which rows of data each user may see. You define roles in the semantic model with filter rules, then assign users or groups to those roles. A regional manager sees only their region’s rows, even though everyone uses the same report. A more flexible technique, dynamic RLS, uses a table that maps each user’s sign-in name to the data they are allowed to see, so rules are maintained as data instead of as many separate roles.

flowchart LR
  U1["Manager A"] --> R["One report, one model"]
  U2["Manager B"] --> R
  R --> F["RLS filter applied by sign-in identity"]
  F --> D1["Rows for region A"]
  F --> D2["Rows for region B"]
        
FIG 8 — The same report shows different rows depending on who is signed in
Simple Analogy

Row-level security is like a hotel key card. Every guest uses the same elevator and corridor, but their card opens only their own room.

!
Common Misconception

RLS applies to people who view through the model with a viewer-level access. Users with higher rights in the workspace, such as editing rights over the model, can bypass the role restrictions. Do not give broad workspace roles to people who must be restricted, and test with the “view as” feature.

More layers of protection

Layer

Object-level security

Hides entire tables or columns from certain users, such as salary columns.

Layer

Sensitivity labels

Labels from the organization’s information protection tools classify content and can travel with exported files and enforce encryption.

Layer

Data loss prevention

Policies that detect sensitive information and warn or block risky sharing.

Layer

Encryption and customer-managed keys

Data is encrypted at rest and in transit, with options for organizations to control their own keys where supported.

Layer

Export and sharing controls

Tenant settings limit exporting to files, sharing externally and publishing to the web.

i
Practical Rule

Secure data at the earliest layer that is practical. Security in the source and in the model is stronger than relying on hiding visuals in a report, because a determined user can still reach hidden data through other tools.

13Network Security and Private Connectivity

For regulated organizations, the path of the traffic matters as much as the permissions.

By default, users reach the Power BI service over the public internet, authenticated and encrypted. Many organizations want more control. Azure Private Link, available for Power BI at the tenant level and, in newer offerings, at the workspace level, lets you route access to the service through a private endpoint in your own virtual network. You can then block public internet access to Power BI, so that only traffic from your network, including on-premises connected through private links, can use it.

flowchart LR
  A["Corporate network and VPN"] --> B["Private endpoint in your virtual network"]
  B --> C["Power BI service over Microsoft backbone"]
  D["Public internet"] -.->|Blocked when public access is disabled| C
        
FIG 9 — Private Link routes Power BI access through your own network
Control

Private Link for the service

Private access to the portal and APIs through a private endpoint, with careful DNS configuration.

Control

Conditional access

Rules based on location, device compliance and risk that decide whether a sign-in is allowed.

Control

Virtual network data gateway

Lets the service read from sources locked inside a virtual network without public exposure.

Control

Trusted access to storage

Mechanisms that let the service access firewall-protected storage with an identity instead of opening it to the public.

!
Common Mistake

Enabling private-only access without planning for everyone who needs it: mobile users, external guests, embedded applications, and other tools. These can lose access suddenly. Pilot with a small group, document exceptions, and read the current limitations before enabling.

Simple Analogy

Using Private Link is like giving employees a staff entrance to a public library’s reading room, and then closing the front door to everyone else. It is safer, but you must make sure every legitimate visitor has a way to the staff entrance.

14Governance and Administration

Self-service is powerful, and without guardrails it becomes chaos.

Power BI makes it easy for anyone to create reports, which is a strength and a risk. Without governance, organizations end up with thousands of overlapping reports, conflicting numbers, orphaned content and accidental exposure of sensitive data. Governance means setting clear rules and tools so that freedom and trust coexist.

Tool

Tenant settings

Administrators switch features on or off for the whole organization or for chosen groups, such as export, external sharing and embedding.

Tool

Endorsement

Promoted and certified labels tell users which models are official and trusted.

Tool

Lineage and impact analysis

Visual maps showing where data comes from and which reports depend on a model, essential before making changes.

Tool

Audit logs and activity events

Records of who viewed, exported, shared or changed content, available for security investigation and usage analysis.

Tool

Domains and catalog integration

Organize content by business area and connect it to data governance and cataloging tools.

Tool

Admin APIs and scanning

Programmatic ways to inventory workspaces, models and sensitive content across the tenant.

A workable operating model

1

Define tiers of content

Personal exploration, team content and enterprise certified content each have different rules for review, testing and support.

2

Publish certified models

A central team curates a small set of high-quality semantic models for common subjects such as sales and finance.

3

Enable self-service on top

Let business teams build reports on certified models without needing to rebuild the data logic.

4

Monitor and clean up

Review usage and remove unused content, and enforce ownership so that every item has a responsible person.

5

Train and support

Provide a champions network, documentation and office hours so that people learn the right habits.

Simple Analogy

Governance is the set of road rules, signs and traffic lights in a city. They do not stop anyone from driving; they let thousands of people drive at once without collisions.

15Application Lifecycle: Deployment Pipelines, Git and XMLA

Reports are software. Treat changes with the discipline software deserves.

Development, test and production

Editing a live report that executives rely on is risky. Deployment pipelines give you separate stages, typically development, test and production, each tied to a workspace. Authors build in development, testers review in the test stage, and approved content is promoted to production. Rules can change data source connections and parameters per stage, so that the test version reads from test data and the production version from production data.

flowchart LR
  A["Development workspace"] -->|Promote| B["Test workspace"]
  B -->|Review and approve| C["Production workspace"]
  C --> D["Users via app"]
  A -.-> G["Git repository"]
        
FIG 10 — Promoting content through stages, with source control alongside
Practice

Git integration

Connects a workspace to a repository so that report and model definitions are versioned, reviewed through pull requests, and recoverable.

Practice

XMLA endpoint

An open interface to the model on capacities that support it, allowing professional tools to read and write model definitions and manage partitions.

Practice

External model tools

Specialist editors and comparison tools help with large models, bulk edits and merging changes between versions.

Practice

Automation through APIs

Scripts and pipelines can publish, refresh, and configure content automatically as part of release processes.

i
Practical Rule

Use parameters for server names and database names so that moving content between stages never requires editing the model by hand. Hand edits are where mistakes creep in.

Simple Analogy

A deployment pipeline is the rehearsal hall before opening night. The play is performed to a test audience first, so mistakes are found before the paying public arrives.

ANTI-PATTERN-03 Avoid
Problem

Authors edit the production semantic model directly in the browser during business hours with no review.

Why It’s Harmful

A small mistake breaks a report that the whole company is using, and there is no history of who changed what or how to roll back.

Correct Approach

Develop in a separate workspace, use source control, test, and promote through a pipeline.

16Performance Tuning

Slow reports lose users. Most slowness has a few common causes.

A report is slow because of one of three things: the visuals ask for too much, the DAX is inefficient, or the model or source is poorly designed. Find which before tuning anything.

1

Measure first

Use the built-in performance analysis tool in Desktop to see how long each visual takes and capture its queries. Use external tools to study the queries in detail.

2

Simplify the report page

Fewer visuals per page, fewer slicers and less detail per visual. Every visual runs its own queries.

3

Fix the model

Adopt a star schema, remove unused columns, reduce cardinality, use correct data types and avoid unnecessary bidirectional relationships.

4

Optimize the DAX

Write measures that avoid unnecessary row-by-row iteration, reuse intermediate results through variables, and prefer simple filters.

5

Use aggregations

Pre-summarized tables answer most questions quickly, while detailed data is fetched only when needed.

6

Tune the source for DirectQuery

Make sure the source has good indexes, suitable views and enough capacity, since every interaction becomes a query.

7

Right-size the capacity

If the capacity is overloaded, even perfect design will feel slow. Watch utilization and spread heavy jobs across time.

Simple Analogy

A slow restaurant might have a too-large menu, a disorganized kitchen or too few cooks. You time each stage before hiring anyone. Likewise, measure where a report loses time before throwing more capacity at it.

!
Common Mistake

Putting a table with hundreds of thousands of rows on a page “so people can export it”. Use paginated reports or targeted drill-through pages for detailed listings, and keep the main report page for summaries.

ANTI-PATTERN-04 Avoid
Problem

A DirectQuery model over a transactional database with no indexes tuned for analytical queries, and many users clicking slicers at once.

Why It’s Harmful

Each click sends several heavy queries to the live operational system, slowing both the report and the business application.

Correct Approach

Query a replica or a prepared analytical store, use aggregations, or switch to import for most tables.

17Monitoring, Capacity Management and Troubleshooting

Operate the platform with data, not guesses.

Monitor

Capacity metrics app

Shows how much of the capacity is used over time, which items consume the most, and when overload and throttling occur.

Monitor

Usage metrics

Shows which reports and pages people actually open, helping you retire unused content and focus effort.

Monitor

Workspace logging to Azure Log Analytics

Sends detailed model and query events to a log workspace so you can analyze slow queries and refresh failures at scale.

Monitor

Refresh history

Per-model record of refresh starts, durations and errors, with alerts to owners on failure.

Monitor

Azure Monitor and cost tools

Metrics and budgets on capacity resources in Azure to watch spend and set alerts.

Understanding capacity pressure

A capacity has a fixed amount of compute per time period. Interactive queries and background refreshes both draw from it. When demand exceeds supply, the capacity can borrow against future time for a while and then may delay or throttle work. The effect is slow reports and delayed refreshes. The usual remedies are to spread refresh schedules so that they do not all start at the top of the hour, to optimize the heaviest models, to move non-critical work to another capacity, or to scale up.

SymptomLikely causeWhat to do
Scheduled refresh failsExpired credentials, gateway offline, source change, timeoutRead the error in refresh history, check credentials and gateway status
Reports slow at certain hoursCapacity overloaded by many simultaneous refreshes or usersStagger schedules, optimize heavy models, scale capacity
Users see different numbersDuplicate models or different refresh timesConsolidate on a certified model and communicate refresh times
Users see data they should notRow-level roles missing, or users hold elevated workspace rolesReview roles and workspace access and test with view-as
DirectQuery visuals time outSlow source queries or heavy DAXTune source, add aggregations, reduce visual complexity
Cannot reach service from corporate networkPrivate access and DNS mismatchCheck private endpoint, DNS resolution and firewall rules
i
Practical Rule

Set alerts for refresh failure and for sustained high capacity use, and send them to a team mailbox or chat channel rather than a single person. Silent failures are the usual reason executives see stale numbers.

18Embedded Analytics

Put reports inside your own applications so users never leave them.

Power BI content can be embedded in websites and applications. There are two main models, and the choice drives licensing, identity and architecture.

Model 1

Embed for your organization

Users are employees who have Power BI access. They sign in with their own identity and the application shows content they are already permitted to see. Sometimes called user owns data.

Model 2

Embed for your customers

Users are external customers who do not need Power BI accounts. Your application authenticates to Power BI using a service identity and generates secure tokens for each session. Sometimes called app owns data.

sequenceDiagram
  participant C as Customer in your app
  participant A as Your application backend
  participant E as Microsoft Entra ID
  participant P as Power BI service
  C->>A: Open analytics page
  A->>E: Authenticate with service identity
  E-->>A: Access token
  A->>P: Request embed token with row-level identity
  P-->>A: Embed token
  A-->>C: Page with embedded report and token
  C->>P: Report loads using embed token
        
FIG 11 — Embedding for customers: the backend gets a token, the browser loads the report

Design considerations

Multi-tenant isolation

Software vendors serving many customers must ensure that each sees only their own data. Options include one shared model with row-level security by customer, or separate workspaces and models per customer for stronger isolation at higher management cost.

Service principals instead of user accounts

Applications should use a registered application identity, not a shared human account, to call the service. It is safer, auditable and not tied to a person’s employment.

Capacity sizing and pausing

Embedded workloads follow customer usage patterns. Size for peaks, and consider pausing capacity during known quiet periods if the business allows, remembering that paused capacity serves nothing.

Branding and user experience

Embedded reports can be themed and controlled through a client library, so that they feel like part of your product rather than a separate tool.

!
Common Mistake

Generating embed tokens in the browser, or with broad permissions that ignore the customer’s identity. Always create tokens on the server and apply the customer’s identity so that row-level security is enforced.

19Working with Other Azure Services

Power BI is the visible layer; Azure provides the engine room.

flowchart LR
  A["Operational systems"] --> B["Ingestion: Data Factory or Fabric pipelines"]
  B --> C["Data lake storage"]
  C --> D["Transformation: Synapse, Databricks or Fabric"]
  D --> E["Warehouse or lakehouse"]
  E --> F["Power BI semantic model"]
  F --> G["Reports, apps and embedded analytics"]
  H["Catalog and governance"] -.-> C
  H -.-> F
        
FIG 12 — A typical modern analytics architecture ending in Power BI
Service

Azure Data Factory and Fabric pipelines

Orchestrate ingestion and movement of data from many sources into the lake or warehouse on a schedule.

Service

Azure Synapse and Databricks

Transform and aggregate large volumes of data into analysis-ready tables.

Service

Azure Data Lake Storage

Low-cost, scalable storage for raw and curated data, and an optional home for dataflow storage if you choose to bring your own.

Service

Microsoft Purview

Catalog, classification and lineage across data sources and Power BI, plus sensitivity labels and audit.

Service

Azure Machine Learning and AI services

Add predictions, text analysis or anomaly detection into data preparation and reports.

Service

Power Automate and Logic Apps

Trigger actions from data alerts, send report snapshots and start refreshes when upstream jobs finish.

Service

Azure Monitor and Log Analytics

Collect and analyze operational telemetry from capacities, gateways and models.

Service

Microsoft Teams and Microsoft 365

Surface reports in collaboration tools and spreadsheets so that people use data where they already work.

The medallion idea

Many lake-based architectures organize data into layers: a raw layer that stores data exactly as received, a cleaned layer where errors are fixed and formats standardized, and a curated layer shaped for analysis. Power BI models should sit on the curated layer. If analysts must do heavy cleaning in Power Query, it signals that the upstream curation is incomplete.

Simple Analogy

Raw data is vegetables straight from the farm, cleaned data is washed and trimmed, and curated data is chopped and portioned into meal kits. A cook at the serving station, Power BI, should receive meal kits, not muddy vegetables.

Smart assistance and AI features

Power BI includes AI-assisted features such as natural language questions, automated insights and a conversational assistant that can help create reports and explain data. Availability depends on license, capacity and tenant settings and changes often, so confirm what is available to you. Whatever the tool, remember that AI answers are only as good as the model’s definitions, descriptions and security. A clean, well-documented model is the best preparation for any AI feature.

20Cost Optimization

The bill depends on licenses, capacity, data sources and people.

Costs come from several places. There are license costs for users who build and share. There is capacity cost for dedicated compute. There is the cost of the underlying data services such as warehouses, storage, and data movement. Then there is the cost of people’s time maintaining content. Optimizing means keeping each in proportion to the value delivered.

1

Match licensing to usage patterns

Compare per-user licensing against capacity for your actual number of builders and viewers. The break-even point depends on the numbers and current prices.

2

Right-size and schedule capacity

Use usage data to pick the smallest capacity that handles peaks. Scale or pause non-production capacities when not in use.

3

Consider reservations

For stable, long-running capacity needs, committing for a term often brings a discount compared with pay as you go. Check current offers.

4

Make refreshes efficient

Use incremental refresh, share models, stagger schedules and drop unused tables and columns to save compute and memory.

5

Retire unused content

Reports that nobody opens still consume refresh time. Use usage data to archive or delete them.

6

Watch the data source bills

DirectQuery against a premium warehouse can generate large query costs. Import with sensible refresh frequency is often cheaper.

i
Good to know

Prices, license structures and discount programs are updated by Microsoft over time. Use the official pricing pages and the Azure cost management tools for current figures, and re-evaluate your choices at least once a year.

Simple Analogy

Running a capacity at all hours for a handful of viewers is like heating an entire stadium for a book club. Match the size and hours to the audience.

21Patterns and Anti-Patterns

Habits that scale, and habits that hurt.

Patterns worth adopting

Shared certified semantic models

A central team owns a small number of trusted models. Many reports connect to them, giving one version of the truth.

Hub and spoke content model

Central teams manage the hub of certified data. Business teams build spokes of reports and local extensions on top of it.

Separate workspaces for model and reports

Keep models in one workspace and reports in another, so that access, release schedules and ownership can differ.

Dynamic row-level security

Use a mapping table of users to allowed values so access rules are maintained as data, not as dozens of roles.

Aggregation tables for scale

Imported summary tables answer most queries instantly, while detailed data is queried only on demand.

Parameterized deployment

Use parameters and pipeline rules to move content between stages without manual edits.

Anti-patterns to avoid

ANTI-PATTERN-05 Avoid
Problem

Emailing report files with embedded data around the organization, or publishing sensitive reports to the public web.

Why It’s Harmful

Copies cannot be revoked, go stale, and escape governance. Public publishing exposes data to anyone with the link.

Correct Approach

Share through workspaces and apps with proper permissions and sensitivity labels, and restrict public publishing through tenant settings.

ANTI-PATTERN-06 Avoid
Problem

All content lives in one giant workspace where everyone is a member.

Why It’s Harmful

People can edit or delete each other’s work, security boundaries are blurry, and the workspace becomes impossible to manage.

Correct Approach

Create workspaces by team, subject or lifecycle stage, with groups assigned to roles and a clear owner for each.

ANTI-PATTERN-07 Avoid
Problem

Business logic is scattered across many report-level measures, each author writing their own definition of revenue.

Why It’s Harmful

Reports disagree, trust collapses, and any change in the business definition has to be fixed in dozens of places.

Correct Approach

Define key measures once in the shared model, document them, and let reports reuse them.

“A dashboard is only as trustworthy as the model behind it.”

22Best Practices Checklist

A review list before you launch or audit a solution.

Do

  • Build star schema models with a proper date table
  • Default to Import mode and move away only for clear reasons
  • Create measures once in a shared, certified model
  • Use incremental refresh for large tables
  • Use security groups for access and row-level security for data scoping
  • Use a clustered gateway for private sources
  • Use deployment pipelines and source control
  • Monitor capacity use and refresh failures with alerts
  • Apply sensitivity labels and limit risky tenant settings
  • Document models and train people

Avoid

  • Flat, wide tables and unnecessary bidirectional relationships
  • Personal accounts as stored credentials for shared models
  • Giving broad workspace roles to people who need row restrictions
  • Editing production content directly
  • Dozens of copies of the same model
  • Overcrowded report pages with huge tables
  • Enabling private-only access without planning exceptions
  • Choosing DirectQuery by habit rather than need
  • Leaving unused content running forever
i
Practical Rule

Create a one-page launch checklist for every new solution covering data source, refresh schedule, owner, security roles, sensitivity label, test results, performance check and support contact. Review it before promoting to production.

23Real-World Scenarios

How organizations put the pieces together.

Retail chain with regional managers

Sales data lands in a lake each night, is transformed into a curated warehouse, and feeds a certified sales model with dynamic row-level security by region. Store managers see their own store, regional managers see their region, and executives see everything, all from one report.

Manufacturer with factory telemetry

Machine data flows into a real-time store. Operations dashboards use a combination of near-real-time sources for the live view and imported summaries for historical trends, so that performance stays high at scale.

Bank with strict network controls

The bank routes access through private endpoints, requires conditional access with compliant devices, uses sensitivity labels with encryption, and audits all export activity. Models read from locked-down sources through virtual network gateways.

Software vendor embedding analytics

A vendor embeds dashboards in its application for thousands of customers, using a service identity, per-customer row-level security and a capacity sized for peak usage with monitoring of cost per customer.

Hospital network

Clinical and operational data is anonymized in the lake, models enforce strict object-level and row-level security, and governance tools track lineage so auditors can see where each number originates.

Public sector open reporting

An agency publishes certified apps to internal staff, keeps public-facing information in a separate controlled channel, and uses usage analytics to retire reports that nobody reads.

24Frequently Asked Questions

Short answers to common beginner questions.

Q1Is Power BI part of Azure?

The Power BI service runs on Azure infrastructure and relies on Azure identity and many Azure data services, but it is licensed and administered as its own Microsoft product, which is now also a part of Microsoft Fabric.

Q2What is the difference between Power BI Desktop and the Power BI service?

Desktop is the application on your computer where you connect to data, build the model and design reports. The service is the cloud where you publish, share, schedule refresh, secure and collaborate.

Q3Should I use Import or DirectQuery?

Start with Import because it is the fastest and most capable. Use DirectQuery or Direct Lake only when you need data fresher than scheduled refresh allows or the data is too big for import, and plan for source performance.

Q4Do I need a gateway?

Only if the service cannot reach your data source directly, such as a server in your data center or a source locked inside a private virtual network. Publicly reachable Azure sources typically do not need one.

Q5What is a semantic model?

It is the data model behind reports: tables, relationships and calculations. It was previously called a dataset. Many reports can share one model.

Q6How does row-level security work?

You define roles with filters in the model and assign users or groups to them. When a user opens a report, the filters limit the rows they can see. Users with edit rights on the model can bypass the restrictions, so assign roles carefully.

Q7What is a capacity and do I need one?

A capacity is a reserved pool of compute purchased for your organization. You may need one if you have many viewers, large models, frequent refresh or advanced features, or if you embed analytics for customers.

Q8Why is my report slow?

Common causes include too many visuals, inefficient calculations, a poor model design, a slow DirectQuery source, or an overloaded capacity. Measure with the performance analysis tools before changing anything.

Q9How often can data refresh?

It depends on your license and capacity. Dedicated capacities allow more frequent refreshes than shared ones, and DirectQuery or Direct Lake can provide fresher data without scheduled refresh. Check the current limits for your plan.

Q10Can I keep Power BI traffic off the public internet?

Yes, using Azure Private Link for Power BI, combined with conditional access and private data gateways. Plan DNS and exceptions carefully and confirm the current limitations.

Q11How do I move reports from test to production safely?

Use deployment pipelines with separate workspaces, parameters for data sources, and source control, so changes are reviewed and promoted instead of being edited live.

Q12Can I embed Power BI in my own application?

Yes. You can embed for your own employees, who sign in with their identities, or for customers, using a service identity and server-generated tokens, usually on a capacity purchased in Azure.

Q13Are the licensing details in this guide final?

No. License names, capacity sizes, prices, viewing thresholds and available features change over time, especially with the evolution of Microsoft Fabric. Always confirm with the current official documentation before planning or buying.

25Summary and Key Takeaways

Power BI in Azure combines a cloud analytics service, a rich ecosystem of Azure data sources and Azure’s identity, networking and governance features. A successful solution starts with clean, well-shaped data and a star-schema semantic model, chooses the right storage mode, refreshes efficiently, and shares a small set of certified models for many reports. It protects data through groups, row-level security, sensitivity labels and, where needed, private connectivity. It treats reports as software with pipelines and source control, watches capacity and refresh health, and keeps costs aligned with usage. Because the product and its licensing keep evolving alongside Microsoft Fabric, the wise habit is to hold on to the stable ideas in this guide and verify the details in current documentation. With those habits, your organization can move from mountains of numbers to clear, trusted answers.

Key Takeaways

  • The model matters most — a star schema semantic model with shared measures gives fast, consistent and trustworthy reports.
  • Choose storage mode deliberately — default to Import, and use DirectQuery or Direct Lake only when freshness or scale demand it.
  • Bridge private sources properly — use clustered gateways or virtual network gateways, and prefer service identities over personal accounts.
  • Layer your security — combine Entra groups, workspace roles, row-level and object-level security, sensitivity labels and private connectivity.
  • Govern for self-service — certify core models, limit risky tenant settings, track lineage and audit activity.
  • Run it like software — use deployment pipelines, source control, monitoring, alerts and capacity planning.
  • Verify the moving parts — licensing, capacity options and features are changing with Microsoft Fabric, so confirm current details before you design or budget.