Power BI Dataflows

A dataflow is a set of Power Query steps that runs in the cloud and stores its results for many reports to share. Teams clean data once and reuse the output everywhere. Every report then starts from the same trusted tables.

The Central Kitchen Analogy

A restaurant chain prepares sauces and chopped vegetables in a central kitchen. Each branch receives ready ingredients and never repeats the prep work. Dataflows act as the central kitchen for data. Reports act as the branches.

Without dataflow:               With dataflow:

Report A: clean data            Source --> DATAFLOW (clean once)
Report B: clean data                          |
Report C: clean data                +---------+---------+
(three copies of the work)          v         v         v
                                 Report A  Report B  Report C

Why Use Dataflows

  • One definition of customers, products, or calendars across all reports.
  • Less load on source systems, since the dataflow refreshes once.
  • Cleaning logic changes in one place and flows to every report.
  • Authors with limited Power Query skills reuse prepared tables.

How Dataflows Differ from Desktop Queries

FeatureDesktop QueryDataflow
Where it runsOn your computerIn the cloud
Who can reuse itOnly that fileMany reports and authors
Where results liveInside the report modelIn cloud storage linked to the workspace
EditorPower Query EditorPower Query Online

Creating a Dataflow

  1. Open a workspace in the Power BI Service.
  2. Select New, then Dataflow.
  3. Choose Define new tables.
  4. Pick a data source, such as an Excel file, a database, or an online service.
  5. Sign in and select the tables to load.
  6. Apply Power Query steps in the online editor: remove columns, change types, and filter rows.
  7. Select Save and close, and name the dataflow.
  8. Choose Refresh now, then set a schedule.

The online editor looks and feels much like the Desktop version, so existing Power Query knowledge transfers directly.

Using a Dataflow in a Report

  1. Open Power BI Desktop and choose Get data.
  2. Select Dataflows from the data source list.
  3. Sign in and pick the workspace and dataflow.
  4. Tick the tables to load and select Load.

The report receives the cleaned tables, and the model starts from a consistent base.

Linked and Computed Tables

One dataflow can reference tables from another dataflow in the same workspace. This arrangement builds layers: a raw layer that copies source data, a clean layer that applies fixes, and a business layer that applies company rules.

Raw Dataflow ==> Clean Dataflow ==> Business Dataflow ==> Reports
(copy sources)   (fix types,        (define KPIs and
                  remove nulls)      shared dimensions)

Worked Example: A Shared Customer List

A company keeps customer records in a CRM and a billing system. Three teams each built their own merge of the two systems, with slightly different results. A data engineer builds a Customers dataflow that merges, cleans, and de-duplicates the records. The marketing, finance, and support reports all connect to that dataflow. Customer counts now match across every report, and the source systems face one refresh per night instead of three.

Good Practices

  • Name dataflows after their business area, such as Sales Master Data.
  • Document each table with a short description.
  • Schedule refreshes before dependent reports refresh.
  • Give edit rights to a small group and view rights to authors.

Key Points

  • Dataflows run Power Query in the cloud and store reusable tables.
  • Many reports can share one cleaned table.
  • Power Query Online mirrors the Desktop editor.
  • Layered dataflows separate raw, clean, and business logic.
  • A single refresh reduces load on source systems.