Skip to content
METRIC OAK

New: the 3-week Data Platform Assessment: fixed fee, priced roadmap. See what's included →

Migration

Snowflake to Microsoft Fabric migration: mirroring, T-SQL and what changes

How to move from Snowflake to Microsoft Fabric, or run both: mirroring and Iceberg interoperability, converting Snowflake SQL to Fabric Warehouse T-SQL, VARIANT, streams and tasks, Snowpark, security, and a domain-by-domain cutover.

Hemant Walchale

Hemant Walchale
· 4 min read

Organisations standardising on Microsoft often look at moving Snowflake workloads into Microsoft Fabric, to put data engineering, warehousing and Power BI on one capacity with OneLake underneath. The good news is that you do not need a big-bang move: Fabric can mirror Snowflake data, so you can migrate consumers first and logic later. The real work is converting Snowflake SQL to Fabric’s T-SQL and replacing Snowflake-specific features.

This is the approach we recommend.

1. Decide: migrate, or run both

Be explicit about the end state:

  • Coexist: keep Snowflake for core warehousing and mirror selected tables into Fabric for Power BI, data science and new domains.
  • Migrate: move all workloads to Fabric and retire Snowflake domain by domain.

Either way, start by mirroring. It lets Power BI and Fabric workloads use Snowflake data in OneLake before any code is converted.

2. Inventory

List databases, schemas, tables (including transient, dynamic and Iceberg tables), views, stored procedures, UDFs, streams, tasks, Snowpipes, stages, shares, Snowpark code, roles and policies, and the dashboards and applications that read them. ACCOUNT_USAGE query and access history show what is used.

3. Map Snowflake to Fabric

Snowflake Microsoft Fabric What to watch
Virtual warehouses One capacity (F SKU) shared by all workloads Size for smoothed peaks; isolate heavy workloads. See Fabric capacity sizing.
Snowflake SQL Fabric Warehouse T-SQL, or Spark SQL in a lakehouse Function and syntax changes; no Microsoft converter for Snowflake.
Unquoted identifiers stored upper case Identifiers keep their case Watch tools and code that rely on upper-case names.
Case-sensitive comparisons Case-sensitive by default (Latin1_General_100_BIN2_UTF8); case-insensitive warehouses available Collation is set when a warehouse is created and cannot be changed later.
VARIANT, OBJECT, ARRAY JSON in VARCHAR with JSON functions, or Spark structs in a lakehouse Semi-structured logic needs the most rewriting.
Snowflake Scripting procedures T-SQL procedures, notebooks or pipelines Rewrite error handling and loops.
Streams and tasks Data Factory pipelines, notebooks, or CDC in Spark Rebuild incremental logic and schedules.
Snowpipe, stages Pipelines, copy jobs, shortcuts, mirroring Land in OneLake.
Snowpark Spark notebooks DataFrame code ports with API changes.
Time travel Warehouse time travel (FOR TIMESTAMP AS OF), 1 to 120 days, default 30 Check retention needs.
Zero-copy clone Warehouse table clones Similar.
Secure data sharing OneLake shortcuts and external data sharing Different model.
Roles, masking and row access policies Workspace roles, SQL permissions, row-level security, dynamic data masking Re-create; mirroring does not carry Snowflake security across.

4. Mirror, then convert domain by domain

  1. Mirror the tables each domain needs into OneLake. Managed tables, Iceberg tables, views and materialized views are supported; transient, temporary, dynamic and external tables are not.
  2. Repoint Power BI to the mirrored data or a Fabric semantic model. Reports often deliver value in weeks, before any pipeline moves.
  3. Convert pipelines and logic for the domain: rebuild ingestion in Data Factory or notebooks, convert SQL to T-SQL or Spark SQL, and replace streams and tasks.
  4. Re-create security in Fabric, on groups, before users get access.

5. Reconcile and retire

Compare tables between Snowflake and Fabric on row counts, totals and row-level differences matched on business keys. Once a domain’s pipelines run natively in Fabric and owners sign off, stop mirroring those tables, suspend the related Snowflake warehouses and tasks, and drop the objects after an agreed read-only period.

The short version

Mirror Snowflake into OneLake first, repoint Power BI, then convert each domain’s pipelines and SQL to Fabric (T-SQL or Spark), replacing VARIANT logic, streams, tasks and Snowpark. Choose warehouse collation up front, re-create security on groups, reconcile on business keys, and retire Snowflake objects domain by domain, or keep both if coexistence serves you better.

Comparing the platforms first? See Snowflake vs Microsoft Fabric and Delta Lake vs Apache Iceberg. Browse all migration guides or use the platform chooser.

Sources

Further reading from other practitioners

Not sure where your own platform stands? Take the free 3-minute data platform scorecard, or see how we work on Snowflake. Unfamiliar terms are explained in the data engineering glossary.

Frequently asked questions

Do we have to move everything off Snowflake to use Fabric?

No. Fabric mirroring can replicate Snowflake tables into OneLake continuously, and OneLake can read Snowflake-managed Iceberg tables. Many organisations keep Snowflake for some workloads and use Fabric for Power BI, data science or new domains. A full migration makes sense when consolidating on Microsoft is the goal.

Is there a tool to convert Snowflake SQL to Fabric Warehouse?

Not from Microsoft at the moment: the Fabric Migration Assistant supports Azure Synapse dedicated SQL pools, SQL Server and Teradata metadata, not Snowflake. Snowflake SQL is converted to T-SQL with third-party tools or by hand, and procedural logic is often rebuilt as notebooks or pipelines.

What does Fabric mirroring of Snowflake cost?

Fabric does not charge for the compute used to replicate data into OneLake, and mirrored storage is free up to a limit based on capacity size. Snowflake still charges warehouse compute when changed data is read for mirroring, plus cloud services credits, and mirroring runs continuously. Mirror only the tables you need.

Have 30 minutes? Get a senior architect’s view of your data platform.

No sales deck. You talk to the engineer who would lead the work.

Book an architecture review