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
You’ve got a stable Azure SQL data warehouse feeding Power BI, SSRS and a pile of Excel workbooks. It works, but every new data source turns into another ETL project and your data science colleagues are bypassing you with their own lake-based pipelines. This article walks through a concrete migration checklist BI teams can use to move from a traditional SQL data warehouse on Azure to a lakehouse architecture without breaking existing reporting.
Picture a BI team supporting finance and operations:
Leadership wants "a lakehouse" on Azure. The question is whether to stay with the traditional SQL-centric warehouse or move to a lakehouse pattern using Azure Databricks (Delta Lake) or Microsoft Fabric (Lakehouse + Warehouse). The team needs a migration checklist that keeps:
The sections below walk that scenario from assessment to cutover.
On Azure, "lakehouse" usually means one of these patterns:
Databricks Lakehouse
Microsoft Fabric Lakehouse + Warehouse
Synapse-style SQL + Data Lake (not a full lakehouse, but common)
Before planning migration, decide:
For our scenario, assume the team is moving to Databricks Lakehouse on ADLS Gen2 or Fabric Lakehouse+Warehouse, while keeping Azure SQL for a while to serve legacy reports.
Start with a hard inventory of what depends on the existing SQL data warehouse.
List, per schema/table:
Capture:
For each dataset/report:
Flag:
This inventory drives which parts can move to lakehouse first and which stay on SQL longer.
Use the scenario to compare lakehouse vs traditional SQL DW along a few key axes.
Traditional SQL DW (Azure SQL DB/MI)
Lakehouse (Databricks/Fabric)
Impact on our BI team:
Traditional SQL DW
Lakehouse
For the scenario:
From Azure SQL DW to Power BI
From Lakehouse to Power BI
For our team, the key is to avoid breaking existing Power BI models while introducing lakehouse-backed datasets gradually.
Use this checklist as a practical sequence rather than a theoretical roadmap.
Even if you still load into SQL DW, ensure:
/bronze/source/system/date/ (raw)/silver/domain/table/ (cleaned, conformed)/gold/mart/subject_area/ (BI-ready)This allows you to:
Pick a limited scope first: e.g., the finance fact tables and shared dimensions.
Assume you have a FactSales table in Azure SQL. You create a matching Delta table in your lakehouse:
-- Databricks SQL example: create Delta table in the lakehouse
CREATE TABLE lakehouse_gold.FactSales
USING DELTA
LOCATION 'abfss://gold@yourstorageaccount.dfs.core.windows.net/sales/fact_sales'
AS
SELECT
s.SalesId,
s.OrderDate,
s.CustomerId,
s.ProductId,
s.Quantity,
s.NetAmount,
s.CurrencyCode
FROM sql_dw.FactSales s;
Notes:
sql_dw.FactSales here is a configured external connection to your existing SQL data warehouse (via Databricks SQL or JDBC) exposed as a catalog/schema in Databricks.USING DELTA + LOCATION pattern persists the table as a Delta Lake table in ADLS Gen2.Repeat this pattern for key dimensions, ensuring:
Slowly changing dimensions often rely on SQL stored procedures. In a lakehouse, use MERGE into Delta tables.
Example for a type 2 dimension in Databricks SQL:
MERGE INTO lakehouse_silver.DimCustomer AS target
USING lakehouse_bronze.CustomerIncremental AS source
ON target.CustomerId = source.CustomerId
AND target.IsCurrent = TRUE
WHEN MATCHED AND (
target.CustomerName <> source.CustomerName OR
target.CustomerSegment <> source.CustomerSegment
) THEN
UPDATE SET target.IsCurrent = FALSE, target.ValidTo = current_timestamp()
WHEN NOT MATCHED THEN
INSERT (
CustomerId,
CustomerName,
CustomerSegment,
IsCurrent,
ValidFrom,
ValidTo
) VALUES (
source.CustomerId,
source.CustomerName,
source.CustomerSegment,
TRUE,
current_timestamp(),
TIMESTAMP '9999-12-31 23:59:59'
);
This preserves the SCD behavior while moving it into your lakehouse processing.
Do not switch all reports at once. Instead:
Create new Power BI datasets that point to lakehouse tables:
Mirror existing models:
Validate data parity:
Only when parity is acceptable should you:
Not everything needs to move immediately. For our scenario, typical candidates to stay in SQL for a while:
Use these patterns:
You cannot treat lakehouse as a side project. For a BI team, the key governance tasks are:
Identity and access:
Row-level security (RLS):
Catalog and lineage:
SQLDW.Schema.Table → Lakehouse.Zone.Table.For the scenario, this is often where finance gets nervous. The mitigation is clear, consistent access controls and visible lineage from lakehouse tables back to source systems.
Moving to a lakehouse changes performance and cost behavior.
For BI workloads:
Checklist items:
Bring the scenario to a clean end-state using a phased cutover.
Phase 1 – Dual-run core marts
Phase 2 – Power BI pivot
Phase 3 – SQL DW slimming
Phase 4 – Full lakehouse ownership
Throughout, keep:
For an Azure BI team, the safest way to move from a traditional SQL data warehouse to a lakehouse is to treat the lakehouse as a new curated layer built side-by-side, prove parity with your existing marts, and only then flip Power BI and other consumers over in phases. If you start with a disciplined inventory and a small, high-value subject area, you can learn the lakehouse patterns without putting your core reporting at risk.
This article reflects the gradual shift of Azure BI teams from SQL-centric warehouses to lakehouse-based architectures, especially in environments that need to support both traditional reporting and modern analytics on shared data.
Professionals who want to apply these patterns to their own data can explore Excelgoodies' Data Engineering & BI Azure (On Cloud) 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.
Azure
New
Next Batches Now Live
Power BI
SQL
Power Apps
Power Automate
Microsoft Fabrics
Azure Data Engineering