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
Your CIO wants to “get onto Fabric this year”, but your reality is a creaking on‑prem data warehouse, nightly SSIS jobs that only one person understands, and a backlog of Power BI report requests. The job ads you’re seeing are clear: employers now expect BI analysts who can lead a data warehouse → Fabric migration, not just build nice visuals.
This article walks through a realistic migration scenario, showing how to move from a legacy SQL data warehouse to Fabric step by step, without breaking existing reports or your team.
Imagine this setup:
Leadership has defined a key objective: “Migrate the existing data warehouse to Fabric and modernise BI.” It’s written into your team’s goals and even appears in new BI Analyst job ads.
The pain points are familiar:
We’ll use this scenario to anchor the migration steps, so you can map them to your own environment.
“Move to Fabric” is vague. You need to translate it into concrete components.
For a typical SQL data warehouse, your Fabric target architecture will usually include:
For our scenario, a pragmatic target looks like this:
Clarify this with your stakeholders early. It turns “migrate the warehouse” into a design you can actually build.
Before touching Fabric, map the current warehouse. You’re not doing a full enterprise data catalog; you’re identifying what can break.
Focus on:
FactSales, FactOrders)DimCustomer, DimProduct)A simple inventory table in Excel or a Fabric Warehouse table is enough:
CREATE TABLE dbo.ObjectInventory (
ObjectType NVARCHAR(50), -- Table, View, SSIS, Report
ObjectName NVARCHAR(256),
Criticality NVARCHAR(20), -- High, Medium, Low
DependsOn NVARCHAR(256),
Notes NVARCHAR(1000)
);
Populate it as you discover objects. Mark anything that would cause immediate pain if it broke as Criticality = 'High'.
For our scenario, we identify:
FactSales, DimCustomer, DimDate as criticalThese become the first candidates for migration.
You have three broad options:
Lift‑and‑shift
Rebuild and modernise
Hybrid, incremental migration (usually best)
For our scenario, we pick the hybrid approach:
This reduces risk and keeps your nervous stakeholders calm.
First concrete step: get data from your existing warehouse into Fabric.
If your warehouse is on‑prem SQL Server, you can:
A typical pattern:
dbo.FactSales (SQL Server)Sales table in a Lakehouse or WarehouseYou can layer incremental logic later. Start with full loads for a small number of tables.
If your logic is already in Power Query (e.g. in Power BI or Excel), you can:
Example: basic M query against your existing warehouse:
let
Source = Sql.Database("OnPremServer", "LegacyDW"),
FactSales = Source{[Schema="dbo", Item="FactSales"]}[Data],
FilteredRows = Table.SelectRows(FactSales, each [OrderDate] >= #date(2023, 1, 1))
in
FilteredRows
You can point this at Fabric storage instead of loading into a Power BI dataset.
For our scenario, we start with Data Pipelines for the heavy tables and Dataflows Gen2 for a couple of smaller dimensions.
Once the data lands in OneLake, you need to recreate your semantic model.
For BI‑centric workloads, both can work:
For our scenario (traditional BI, strong SQL skills), we:
You can:
Example: simple dimension build in Fabric Warehouse:
CREATE OR ALTER VIEW dbo.DimCustomer_Curated AS
SELECT
c.CustomerID,
c.CustomerName,
c.Segment,
c.Country,
CASE WHEN c.IsActive = 1 THEN 'Active' ELSE 'Inactive' END AS Status,
CAST(c.CreatedDate AS DATE) AS CreatedDate
FROM Lakehouse.dbo.CustomerRaw AS c;
You can materialise this view into a table for performance.
In Power BI (inside Fabric):
FactSales, DimCustomer, DimDateExample measure:
Total Sales := SUM ( FactSales[SalesAmount] )
Sales LY :=
CALCULATE (
[Total Sales],
DATEADD ( DimDate[Date], -1, YEAR )
)
Customer Count := DISTINCTCOUNT ( DimCustomer[CustomerID] )
Try to reuse measure names and logic from the existing model where possible; it simplifies report migration.
Now you have:
You can start moving reports.
For each critical report:
You’ll almost always find small differences. Track them explicitly:
For our scenario, we run the old and new Sales report side‑by‑side for a month. Once business users trust the new one, we retire the old dataset and hide the legacy report.
So far, you’re effectively replicating the warehouse into Fabric. To complete the migration, you need to:
A practical approach:
You can use simple queries in the old and new environments to validate:
-- Old DW
SELECT COUNT(*) AS RowCount, SUM(SalesAmount) AS TotalSales
FROM dbo.FactSales
WHERE OrderDate >= '2024-01-01';
-- Fabric Warehouse
SELECT COUNT(*) AS RowCount, SUM(SalesAmount) AS TotalSales
FROM dbo.FactSales
WHERE OrderDate >= '2024-01-01';
Document each SSIS package you fully replace, and keep a clear cutover list for your operations team.
Once the core path is working, you need to make Fabric manageable.
ModifiedDate) in pipelinesThese are the differences between “we copied some data into Fabric” and “we successfully migrated the warehouse.”
That job ad asking for “experience migrating a data warehouse to Fabric” is really asking for someone who can:
You don’t need to be a full‑time data engineer, but you do need to:
In our scenario, the BI team goes from “we just build reports on top of whatever the warehouse gives us” to “we own the path from source to semantic model in Fabric.” That’s exactly the shift employers are trying to hire for.
Pick one critical report in your environment and:
If you can do that reliably and explain the process, you’re already doing a real data warehouse → Fabric migration on a small scale. The rest of the migration is repeating that pattern with more tables, more pipelines, and more stakeholders.
This article reflects how BI teams are turning vague 'move to Fabric' goals into structured, incremental migrations from legacy data warehouses, particularly in environments with existing SQL Server estates and growing Power BI footprints.
Professionals who want to apply these patterns to their own data can explore Excelgoodies' Microsoft Fabric & Power BI programme - taught live by instructors, with certification awarded once a real project is running at work.
Insights compiled through ongoing industry research and discussions within the Excelgoodies Analytics Community.
Power BI
New
Next Batches Now Live
Power BI
SQL
Power Apps
Power Automate
Microsoft Fabrics
Azure Data Engineering