Business Professionals
Power BI | Power Pivot | Power Query | DAX
Cloud Flows | RPA | AI Builder | Copilot
60+ Formulas | Data Stories | Advanced Reporting & Modeling
VB Programming | Report Automation |
MS-Office Automation
Techno-Business Professionals
Power BI | Power Query | Advanced DAX | SQL - Query &
Programming
Microsoft Fabric | Power BI | Power Query | Advanced DAX |
SQL - Query & Programming
Power BI | Power Apps | Power Automate | Copilot Studio | Power Pages | Dataverse
Microsoft Power Apps | Microsoft Power Automate
Power BI | Adv. DAX | SQL (Query & Programming) |
VBA | Python | Web Scrapping | API Integration
Power BI | Power Apps | Power Automate |
SQL (Query & Programming)
Power BI | Adv. DAX | Power Apps | Power Automate |
SQL (Query & Programming) | VBA | Python | Web Scrapping | API Integration
Power Apps | Power Automate | SQL | VBA | Python |
Web Scraping | RPA | API Integration
Technology Professionals
Power BI | DAX | SQL | ETL with SSIS | SSAS | VBA | Python
Power BI | SQL | Azure Data Lake | Synapse Analytics |
Data Factory | Databricks | Power Apps | Power Automate |
Azure Analysis Services
Microsoft Fabric | Power BI | SQL | Lakehouse |
Data Factory (Pipelines) | Dataflows Gen2 | KQL | Delta Tables | Power Apps | Power Automate
Power BI | Power Apps | Power Automate | SQL | VBA | Python | API Integration
Power BI | Advanced DAX | Databricks | SQL | Lakehouse Architecture
Business Professionals
Power BI | Power Pivot | Power Query | DAX
Cloud Flows | RPA | AI Builder | Copilot
60+ Formulas | Data Stories | Advanced Reporting & Modeling
VB Programming | Report Automation |
MS-Office Automation
Techno-Business Professionals
Power BI | Power Query | Advanced DAX | SQL - Query &
Programming
Microsoft Fabric | Power BI | Power Query | Advanced DAX |
SQL - Query & Programming
Power BI | Power Apps | Power Automate | Copilot Studio | Power Pages | Dataverse
Microsoft Power Apps | Microsoft Power Automate
Power BI | Adv. DAX | SQL (Query & Programming) |
VBA | Web Scrapping | API Integration
Power BI | Power Apps | Power Automate |
SQL (Query & Programming)
Power BI | Adv. DAX | Power Apps | Power Automate |
SQL (Query & Programming) | VBA | Web Scrapping | API Integration
Power Apps | Power Automate | SQL | VBA |
Web Scraping | RPA | API Integration
Technology Professionals
Power BI | DAX | SQL | ETL with SSIS | SSAS | VBA
Power BI | SQL | Azure Data Lake | Synapse Analytics |
Data Factory | Azure Analysis Services
Microsoft Fabric | Power BI | SQL | Lakehouse |
Data Factory (Pipelines) | Dataflows Gen2 | KQL | Delta Tables
Power BI | Power Apps | Power Automate | SQL | VBA | API Integration
Power BI | Advanced DAX | Databricks | SQL | Lakehouse Architecture
LEARN THIS HANDS ON
Microsoft Fabric & Power BI
You’re sitting on a pile of Power BI dataflows and Microsoft is nudging you towards Fabric. This guide shows how to move from classic Power BI dataflows to Fabric-native pipelines, dataflows (Gen2), and Lakehouses with minimal disruption.
We’ll walk through a concrete migration path, highlight traps (and workarounds), and give you patterns you can apply to your own workspace. If you want to go deeper into designing Fabric-first architectures, the Fabric-focused data engineering course is a solid way to turn these patterns into a full operating model.
Power BI dataflows did a good job as a lightweight ETL layer. Fabric extends that idea into a full data platform. For analytics teams, the main drivers to migrate are:
Unified storage
Better governance and lineage
Flexible compute
Future-proofing
The goal isn’t “lift and shift everything overnight”. It’s to slowly move your core transformations and storage into Fabric while keeping reports running.
Before you touch Fabric, you need a clear picture of your current dataflows.
Create a simple inventory (Excel, Power BI, or a Fabric Lakehouse table):
By purpose
By usage
By connectivity
By complexity
You can document refresh dependencies with a simple table:
| Dataflow | Output Entity | Used By Dataset | Refresh Frequency |
|---|---|---|---|
| DF_Sales | SalesFact | SalesModel | Hourly |
| DF_HR | Employees | HRAnalytics | Daily |
Focus migration on:
In Fabric, you have multiple options to replace a Power BI dataflow. The choice depends on how much engineering you want and what your downstream models need.
Use Dataflows (Gen2) when:
Typical pattern:
Use Lakehouse when:
Pattern:
Use Warehouse when:
You can still land raw data in a Lakehouse and push curated tables into a Warehouse.
A practical migration has three phases:
For each target dataflow:
Example: migrating a dataflow that loads a SQL table and filters the last 24 months.
Power BI Dataflow (Power Query)
let
Source = Sql.Database("SERVER", "SalesDB"),
dbo_FactSales = Source{[Schema="dbo",Item="FactSales"]}[Data],
ChangedType = Table.TransformColumnTypes(
dbo_FactSales,
{{"OrderDate", type date}, {"SalesAmount", type number}}
),
FilteredRows = Table.SelectRows(
ChangedType,
each [OrderDate] >= Date.AddMonths(Date.From(DateTime.LocalNow()), -24)
)
in
FilteredRows
In Fabric Dataflows (Gen2), you can reuse almost the same M code. The main differences are:
Once the Fabric twin is built:
Example validation query:
SELECT
COUNT(*) AS RowCount,
SUM(SalesAmount) AS TotalSales
FROM
lakehouse.sales.FactSales
WHERE
OrderDate >= DATEADD(MONTH, -24, CAST(GETDATE() AS date));
Cross-check these against your existing dataset measures.
When you’re confident in the Fabric outputs:
To minimize risk:
The biggest time saver is reusing your existing Power Query code. But a straight copy-paste can hide problems.
Watch out for:
Custom functions
Gateway dependencies
Relative paths / environment-specific values
Example of parameterizing a server name:
let
ServerName = #"ServerNameParameter",
Source = Sql.Database(ServerName, "SalesDB"),
dbo_FactSales = Source{[Schema="dbo",Item="FactSales"]}[Data]
in
dbo_FactSales
Fabric will happily run your old M code, but you can improve performance by:
Table.Buffer calls.Migrating dataflows is a chance to clean up your architecture.
Use a simple three-layer pattern in Fabric:
Raw layer
raw schema.Curated layer
curated schema or a Warehouse.Application layer
Example naming convention in a Lakehouse:
raw.Sales_ERP – direct extract from ERP.curated.DimCustomer – cleaned and conformed.mart.FactSales – star schema fact table.Organize Fabric workspaces around domains or products, not just technology:
Sales AnalyticsFinance AnalyticsHR AnalyticsWithin each domain workspace:
This keeps ownership clear and reduces cross-workspace dependencies.
Classic dataflows often rely on scheduled refresh with little orchestration. Fabric gives you proper pipelines.
A simple pipeline replacing multiple dataflows:
raw tables.curated tables using notebooks or dataflows.mart tables.You can use SQL for some transformations:
INSERT INTO mart.FactSales
SELECT
s.SalesOrderID,
s.OrderDate,
c.CustomerKey,
p.ProductKey,
s.SalesAmount
FROM
curated.Sales s
JOIN curated.DimCustomer c ON s.CustomerID = c.CustomerID
JOIN curated.DimProduct p ON s.ProductID = p.ProductID;
Instead of chaining dataflows via scheduled refresh times, use pipeline activities with:
This gives you deterministic refresh sequences and easier troubleshooting.
Migrating to Fabric changes where you enforce security.
Storage level
Semantic model level
Data-level masking
Example RLS filter in Power BI model (DAX):
[Region] = LOOKUPVALUE(
'UserRegion'[Region],
'UserRegion'[UPN],
USERPRINCIPALNAME()
)
Tag Fabric items (Lakehouses, dataflows, models) with metadata:
Keep a simple catalog in a shared location.
Establish a naming convention and stick to it from day one.
You don’t need a grand migration program to start. Pick a single, heavily reused Power BI dataflow (for example, your core sales dataflow), and:
Once that pattern works, you can repeat it with confidence. Migration from Power BI dataflows to Microsoft Fabric isn’t about rewriting everything; it’s about moving your most valuable transformations into a platform that’s easier to scale, govern, and reuse.
Microsoft Fabric
New
Next Batches Now Live
Power BI
SQL
Power Apps
Power Automate
Microsoft Fabrics
Azure Data Engineering