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,
MERGEsupport 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 INTOthe 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