Home / Data Platform / Fabric & Power BI

Data PlatformHow-toAdvanced

Transformation: Azure Synapse dedicated SQL pool to Microsoft Fabric Warehouse

Plan the move from a Synapse dedicated SQL pool to a Fabric Warehouse. Check T-SQL surface differences, use the Fabric migration assistant, move data through OneLake, re-point pipelines and Power BI, and size Fabric capacity.

Deepak Bhardwaj3 min read

Applies toAzure Synapse Analytics dedicated SQL pools, Microsoft Fabric Warehouse and Lakehouse, Fabric Data Factory, Power BI

What changes

Synapse dedicated pool Fabric Warehouse
Provisioned DWUs, pause/resume Fabric capacity (F SKU) shared across workloads
Distribution (HASH/ROUND_ROBIN/REPLICATE), CCI Automatic; Delta Parquet in OneLake
Workload groups/classifiers Capacity-level workload management; smoothing and bursting
PolyBase / COPY from storage COPY INTO, shortcuts, pipelines
Data only in the pool Data in OneLake, readable by Spark, Power BI Direct Lake, other engines

1. Assess the T-SQL surface

Fabric Warehouse supports most T-SQL used in warehouses but not everything. Check for:

  • Distribution and index options in DDL (removed in Fabric — DDL needs simplifying).
  • Features with limited or different support (some data types, certain constraints, identity columns behaviour, MERGE support level, temp tables, materialised views). Check the current "T-SQL surface area in Fabric Data Warehouse" page — it changes frequently.

The Fabric Migration Assistant for Data Warehouse can import a DACPAC from the dedicated pool, convert the schema, flag incompatible objects and help copy data.

# Extract a DACPAC from the dedicated pool
SqlPackage /Action:Extract /SourceServerName:syn-prod.sql.azuresynapse.net /SourceDatabaseName:dwprod \
  /SourceUser:sqladmin /SourcePassword:*** /TargetFile:dwprod.dacpac

2. Move the data

Options:

  • Migration assistant data copy.
  • CETAS from the dedicated pool to Parquet in ADLS, then COPY INTO the Fabric Warehouse:
-- In the dedicated pool
CREATE EXTERNAL TABLE ext.FactSales_export
WITH (LOCATION = '/export/FactSales/', DATA_SOURCE = adls_export, FILE_FORMAT = parquet_ff)
AS SELECT * FROM dbo.FactSales;
-- In Fabric Warehouse
COPY INTO dbo.FactSales
FROM 'https://stexport.dfs.core.windows.net/export/FactSales/*.parquet'
WITH (FILE_TYPE = 'PARQUET', CREDENTIAL = (IDENTITY = 'Shared Access Signature', SECRET = '<sas>'));
  • For very large fact tables, move history once and replay recent loads in parallel.

3. Re-point pipelines

  • Synapse/ADF pipelines → Fabric Data Factory pipelines (or keep ADF and change the sink linked service).
  • Stored procedure ELT usually moves as-is after surface-area fixes.
  • Spark notebooks in Synapse → Fabric notebooks reading the warehouse tables from OneLake.

4. Power BI

Re-point semantic models to the Fabric Warehouse SQL endpoint, or move to Direct Lake mode for large models (no import refresh). Test DAX measures and RLS.

5. Size the capacity

Run representative loads and report workloads on a trial or pay-as-you-go F SKU, watch the Fabric Capacity Metrics app for CU usage, throttling and smoothing, then choose the reserved SKU.

Warning

One capacity serves warehouse, Spark, pipelines and Power BI. A heavy load can throttle reports. Separate production BI and heavy ELT into different capacities if they compete.

Checklist

  • T-SQL incompatibilities listed and fixed
  • Schema migrated (DACPAC/assistant); data copied and reconciled
  • Pipelines and procedures running against Fabric
  • Power BI re-pointed (Direct Lake where suitable)
  • Capacity sized from metrics; dedicated pool paused, then deleted