Migration
Google BigQuery to Snowflake migration: a practical guide
How to migrate BigQuery to Snowflake: exporting to Cloud Storage and loading with COPY INTO, converting GoogleSQL (UNNEST, STRUCT, SAFE functions), partitioning and clustering, scheduled queries, authorized views and BigQuery ML.

Hemant Walchale
· 2 min read
Teams move from BigQuery to Snowflake to standardize on one warehouse across clouds, to get per-workload compute isolation, or to use Snowflake’s data sharing. Both are managed, SQL-first platforms, so the concepts carry over. Nested data and cost modelling deserve the most attention.
This is the approach we recommend.
1. Inventory
List datasets, tables (partitioned and clustered), views, authorized views, routines, scheduled queries, Dataform or dbt projects, BigQuery ML models and dashboards. INFORMATION_SCHEMA.JOBS shows what is queried and how much it costs; retire the rest.
2. Map BigQuery to Snowflake
| BigQuery | On Snowflake |
|---|---|
| Projects and datasets | Databases and schemas |
| Partitioned and clustered tables | Automatic micro-partitions; clustering keys where measured |
STRUCT, ARRAY |
OBJECT, ARRAY, VARIANT |
UNNEST |
LATERAL FLATTEN |
SAFE_CAST and SAFE. functions |
TRY_CAST and TRY_ functions |
QUALIFY |
Supported |
| Routines (SQL and JavaScript UDFs) | SQL, JavaScript or Python UDFs |
| Scheduled queries | Snowflake Tasks |
| Dataform | dbt |
| Authorized views, row-level security | Secure views, row access and masking policies |
| BigQuery ML | Snowpark Python, or Cortex ML functions |
| Slots and reservations | Virtual warehouses sized per workload |
Conversion tools can translate much GoogleSQL; review every query that uses nested data.
3. Export and load
Export tables to Cloud Storage as Parquet with EXPORT DATA, create an external stage over the bucket, and load with COPY INTO. Keep tables in sync for the parallel run by re-running loads or with replication from the original sources.
4. Reconcile and repoint
Compare every table by domain, especially nested fields, TIMESTAMP versus DATETIME semantics (map to TIMESTAMP_TZ and TIMESTAMP_NTZ deliberately) and NUMERIC and BIGNUMERIC precision. Repoint dashboards domain by domain.
5. Reduce BigQuery spend
Cut reservations or on-demand usage as workloads move, and archive datasets once owners sign off.
The short version
Model costs on your top workloads, export tables to Cloud Storage and load with COPY INTO, convert UNNEST, STRUCT and SAFE functions, replace scheduled queries with Tasks and authorized views with secure views and policies, reconcile nested data carefully and reduce BigQuery spend by domain.
Compare with BigQuery to Databricks, or model Snowflake costs with the cost calculator.
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.