Skip to content
METRIC OAK

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

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

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.

Frequently asked questions

Can Snowflake run on Google Cloud?

Yes. Snowflake runs on Google Cloud as well as AWS and Azure, so a BigQuery migration can stay in the same region, with data exported to Cloud Storage and loaded into Snowflake from an external stage.

How are nested and repeated BigQuery fields converted?

STRUCT and ARRAY fields map to Snowflake OBJECT, ARRAY and VARIANT types. UNNEST in queries becomes LATERAL FLATTEN, and dot or bracket access becomes Snowflake path notation. Test these queries carefully, because row counts change if flattening is done differently.

How do BigQuery costs compare with Snowflake costs?

BigQuery charges by data scanned (on-demand) or by slot reservations; Snowflake charges for the time each virtual warehouse runs, plus storage. Workloads with many small queries or steady dashboards often cost differently on each, so model your top workloads before committing.

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