Migration
Snowflake to Databricks migration: when and how to consolidate
How to move workloads from Snowflake to Databricks: deciding what to move, federating Snowflake into Unity Catalog, unloading to Delta, converting Snowflake SQL, Streams and Tasks, Snowpark and governance policies.

Hemant Walchale
· 2 min read
Some organizations run Snowflake for analytics and Databricks for engineering and machine learning, and eventually decide to consolidate on one. When Databricks becomes the main platform, the Snowflake workloads move across. The two are similar enough that the migration is mostly mapping concepts, not rewriting logic.
This is the approach we recommend.
1. Decide what moves
Score each workload by cost, how much it duplicates Databricks pipelines, and who uses it. Data sharing with partners on Snowflake, or teams deeply invested in Snowflake-native apps, may justify keeping some workloads where they are. Move the rest in domains.
2. Federate first
Connect Snowflake to Unity Catalog with Lakehouse Federation, so Databricks users can query Snowflake tables immediately under one governance model while tables migrate.
3. Map Snowflake to Databricks
| Snowflake | On Databricks |
|---|---|
| Databases and schemas | Catalogs and schemas in Unity Catalog |
| Tables (incl. Iceberg tables) | Delta tables; Iceberg tables can be read directly |
| Virtual warehouses | SQL warehouses and job compute per workload |
| Clustering keys | Liquid clustering |
VARIANT, FLATTEN |
VARIANT with variant functions, or explode on structs and arrays |
| Snowflake Scripting and JavaScript procedures | SQL or Python |
| Streams and Tasks | Lakeflow Declarative Pipelines and Lakeflow Jobs |
| Dynamic Tables | Materialized views and streaming tables |
| Snowpipe | Auto Loader |
| Snowpark | PySpark (a similar DataFrame API) |
| Time Travel, zero-copy clone | Delta time travel, SHALLOW CLONE and DEEP CLONE |
| Secure data sharing | Delta Sharing |
| Masking and row access policies | Unity Catalog column masks and row filters |
4. Move data and reconcile
Unload tables to cloud storage as Parquet (COPY INTO @stage), load or convert them to Delta, and keep them in sync for the parallel run. Compare every table by domain; watch timestamp types (TIMESTAMP_NTZ versus TIMESTAMP_LTZ), numeric precision and collation settings.
5. Reduce Snowflake spend as you go
Suspend and remove warehouses as their workloads move, and size the next Snowflake commitment to what remains.
The short version
Decide what to move by workload, federate Snowflake into Unity Catalog, unload tables to Delta, map Streams and Tasks to Lakeflow, Snowpark to PySpark and policies to Unity Catalog, reconcile and shrink Snowflake as domains move.
Still deciding? Compare platforms with the platform chooser and the cost calculator, or read Databricks vs Snowflake for banks and insurers.
Not sure where your own platform stands? Take the free 3-minute data platform scorecard, or see how we work on Databricks. Unfamiliar terms are explained in the data engineering glossary.