The shape of this migration
Snowflake to BigQuery is roughly 80-85% dialect-overlap and 15-20% rewrite. The rewrite work concentrates in five places: JavaScript UDFs, Time Travel-dependent workflows, semi-structured (VARIANT) access patterns, stored procedures, and BI-tool semantic layers tied to Snowflake-specific functions. The rest is mechanical translation handled by the rule library.
The harder decisions are architectural, not dialect-level. CLUSTER BY column choice, partition strategy, slot commitment shape, Iceberg-vs-native storage call per dataset, and whether to consolidate or split downstream BI access. The Discovery report enumerates these per dataset with the trade-off shown.
What typically breaks first
- JavaScript UDFs. Snowflake JS UDFs do not have a direct BigQuery analogue. Most rewrite as BigQuery SQL UDFs; a minority become BigQuery JavaScript UDFs (different runtime); a small subset move to Cloud Run as remote functions. Discovery enumerates each one with the chosen path.
- Stored procedures. Snowflake JavaScript stored procs become BigQuery routines or scheduled queries. Control-flow-heavy procs sometimes move out of the warehouse entirely into Cloud Workflows or Composer.
- Time Travel-dependent debugging. Any workflow that uses time travel for audit, debugging, or "what was the table at time T" gets replaced with BigQuery table snapshots — but the team's debugging muscle has to move with it. Parallel run keeps both alive for 2-4 weeks.
- BI semantic layers. Looker, Tableau, or Sigma models referencing Snowflake-specific functions (PIVOT variants, semi-structured paths, QUALIFY edge cases) need a regen against the BigQuery target. Discovery enumerates the BI surface explicitly so this lands in the wave plan, not at week 9.
- dbt model fan-out. dbt model graphs that worked cheaply on Snowflake credits sometimes blow up on BigQuery slot economics — a model that re-reads source-table data 12 times is much more expensive under slot pricing. The fan-out audit catches this before cutover.
What you receive at each wave
- Written inventory: every table, view, UDF, stored proc, dbt model, BI artifact, with the chosen translation path.
- Translated DDL + DML, generated from the codified rule library + bespoke handlers for the residual.
- Reconciliation report per wave: row-count parity, schema parity, float-tolerant checksums, query-result diffs on top-50 + top-20-by-cost queries.
- Parallel-run window: 2-4 weeks of source + target both live with daily diff reports until consumer owners sign off per-dashboard.
- Cutover document co-signed by your platform lead + ours. You keep it forever.
Related reading on this pair
Background on the dialect work, slot economics, and the cutover playbook lives in the writing section:
- Cost Per Query Is the Only Warehouse Metric Your CFO Should See — the metric framing that makes Snowflake-vs-BigQuery pricing comparable
- The BigQuery Teardown: Seven Query Patterns That Explained Most of a $1.2M Bill — what BigQuery cost discipline looks like once you land
- When Snowflake to BigQuery Migration Is the Wrong Answer — the cases where we will tell you not to move
How to start
The fast path is a Cloud Cost X-Ray on the Snowflake side — currently free 90-min review (through Q3 2026), names the top-20 waste sources and the rewrite shape before any migration commitment. The free framing runs through Q3 2026; after that the same review reverts to a $100 5-day paid diagnostic, credited 100% to Execution if you sign within 60 days. If your situation is already past the diagnostic phase, book a 30-minute call and we will quote the Discovery Sprint directly.