If your Snowflake bill is growing because of AI, the first alternative to Snowflake is a different door into Snowflake. The same Claude model carries three different prices inside one Snowflake account, depending on whether a SQL function, the REST API or an agent calls it. Your negotiated warehouse discount does not touch any of them. Fix that first. It takes days, not quarters, and no table moves.
Here is the verdict. Stay on Snowflake for now, and change how it is used, in this order. Move application-originated LLM calls from the AI_COMPLETE SQL function to the Cortex REST API, which Snowflake's Service Consumption Table (effective 30 September 2026) prices about 17% lower per token for the same model. Then convert your largest tables to Snowflake-managed Iceberg on storage you own, and point a cheaper engine at them for batch work through Horizon Catalog, which keeps masking and row-access policies enforced for external engines. Only after both of those should you price a full exit. The loser is the wholesale migration to Databricks done to cut AI spend. At list, it charges the same $3.00/$15.00 per million tokens for Claude Sonnet 4.5 that Snowflake's REST path does, so you would pay for a re-platforming to get a price you can already have. The one thing to ask first is whether a Databricks commit discount would cover those Claude DBUs. Databricks does not publish that, and if it does, the comparison changes.
| Option | What you pay (list, checked 1 Oct 2026) | What it actually fixes | Who should NOT pick it |
|---|---|---|---|
| Snowflake, AI path changed (stay) | Claude Sonnet 4.5: $3.00/$15.00 per M tokens via REST; $3.60/$18.00 via AI_COMPLETE; $3.90/$19.52 via Cortex Agents |
The 20-30% token premium on SQL and agent paths | Teams whose spend is mostly custom ML training, not LLM calls or SQL |
| Snowflake + a second engine on Iceberg | Horizon REST catalog: 0.5 credits per million API calls (billing starts H2 2026); your cloud bills storage | Batch compute you pay warehouse rates for; owning the files | Anyone with one data engineer and no appetite to run a second engine |
| Databricks | SQL Serverless $0.70/DBU-hr (2X-Small = $2.80/hr); Claude Sonnet 4.5 $3.00/$15.00 | Spark-heavy ML, training and model serving | Anyone whose motive is the token bill — the price is the same |
| Starburst Galaxy | Pro $0.50-$0.80/credit; 1 worker = 6 credits/hr = $3.00-$4.80/hr | Federated SQL over Iceberg plus systems you will never consolidate | Teams that need ML, notebooks or LLM functions in the same platform |
| MotherDuck | Business $250/org/month + Standard instance $2.40/hr; storage $0.04/GB-month | Cheap ad hoc and departmental analytics on DuckDB | Organisations over 10 internal analysts, or that need enterprise policy controls |
| Self-managed (Iceberg + Spark/Athena + Glue) | Athena $5 per TB scanned, 10 MB minimum per query | The largest structural saving, if you can operate it | Teams under roughly ten data engineers, or with a regulator that wants one audit trail |
What Actually Costs Money in an AI Workload on Snowflake?
In an AI workload the token line usually dwarfs the warehouse line, and the token line is the one your contract does the least to discount. Snowflake bills two currencies. Warehouses consume Platform Credits — $2.00, $3.00 and $4.00 on demand for Standard, Enterprise and Business Critical in AWS US East, with an X-Small warehouse burning one credit an hour and each size doubling it, per Tables 1(a) and 2(a) of the consumption table. AI features consume AI Credits at a flat $2.00 per credit for global routing and $2.20 for regional, "regardless of edition".
The second currency is where negotiators get surprised. The consumption table says it in one line: "the Platform Credit Discount does not apply to AI Credits." AI Credits have their own capacity ladder, and it is shallow — $2.00 on demand falling to $1.88 only at $40 million of annual contract value, a 6% discount at the very top. The same page adds that "Cortex Inference may not be eligible for Capacity AI Credit Pricing" at all. If your account team won a 30% warehouse discount and your AI usage is climbing, the discount is applying to a shrinking share of the bill.
Here is the workload this article normalises to, so every number below is comparable: an enrichment pipeline that summarises and classifies 100,000 documents a day with Claude Sonnet 4.5, at 2,000 input and 300 output tokens each — 6 billion input and 900 million output tokens over a 30-day month, run from an Enterprise-edition account in AWS US East.
| Path for the same model and the same tokens | Rate per M tokens (in / out) | Monthly token cost |
|---|---|---|
Snowflake AI_COMPLETE SQL function (Table 6(a): 1.80 / 9.00 AI Credits) |
$3.60 / $18.00 | $37,800 |
| Snowflake Cortex Agents / Analyst / CoWork (Table 6(d): 1.95 / 9.76) | $3.90 / $19.52 | $40,968 |
| Snowflake Cortex Inference, i.e. the REST API (Table 6(b): 1.50 / 7.50) | $3.00 / $15.00 | $31,500 |
| Databricks Anthropic serving (42.857 / 214.286 DBU at $0.07 per DBU) | $3.00 / $15.00 | $31,500 |
| Anthropic API direct | $3.00 / $15.00 | $31,500 |
| Anthropic Batch API (50% off, asynchronous) | $1.50 / $7.50 | $15,750 |
Two things fall out of that table. First, the $6,300 a month between AI_COMPLETE and the REST API is pure routing — same model, same account, same data, same governance boundary. Second, every platform charges the same $31,500. Leaving Snowflake for Databricks moves you from one $3.00/$15.00 rate to another. The only cheaper row is the batch tier at the model vendor, and that one sends your documents outside the platform boundary, which is a governance decision rather than a pricing one.
The warehouse does not stop billing while the LLM works, either. Snowflake's own cost guidance says "the cost associated with keeping a warehouse active continues to apply" during a Cortex function call, and recommends a warehouse "no larger than MEDIUM", because a bigger one adds cost without adding speed. A Large warehouse left on a nightly AI_COMPLETE job is paying 8 credits an hour to wait on a model.
Is the Model Choice a Bigger Lever Than the Platform?
Yes — swapping the model saves more than swapping the platform, and it is a one-line change. Claude Sonnet 5.5 lists at $2/$10 per million tokens against $3/$15 for Sonnet 4.5, and Snowflake's REST path passes that through at 1.00/5.00 AI Credits — exactly $2.00/$10.00.
There is a catch the per-token rate hides. Anthropic says Claude 4.7 and later models use a newer tokenizer that "produces approximately 30% more tokens for the same text." So the same 100,000 documents become roughly 7.8 billion input and 1.17 billion output tokens. At REST rates that is $27,300 a month — still 28% below the $37,800 AI_COMPLETE + Sonnet 4.5 baseline, but not the 44% the sticker price implies. Run your own eval before you switch; a cheaper model that needs a second pass costs more, not less. We walked through the per-task arithmetic in Inference Cost per Million Tokens: Price the Task, Not the Rate.
The steel-man for staying on AI_COMPLETE: it is the only path with per-query usage attribution. Snowflake warns that "you can't get granular usage information for requests made with the REST API". If chargeback by team matters more to you than 17%, keep SQL for internal analysts and move only the high-volume application traffic. Practitioners already find the attribution hard: SELECT's Jeff Skoldberg wrote in October 2025 that each Cortex service "has its own pricing model, its own monitoring views, and its own ways to accidentally rack up costs." Tag the REST traffic at your gateway, as in Best FinOps Tools for AI Spend.
Why Are Open Table Formats the Exit Route?
Apache Iceberg is the exit route because it separates who owns the files from who computes on them — and Snowflake now lets other engines both read and write its managed Iceberg tables. Apache Iceberg is an open table format: a specification for metadata over Parquet files in object storage that any compliant engine can query transactionally.
Snowflake offers two flavours. A Snowflake-managed Iceberg table keeps Snowflake as the catalog and handles compaction, while the data can sit on an external volume in your own bucket — in which case "your cloud storage provider bills you directly for data storage usage". An externally managed table uses another catalog, and "Snowflake does not assume any life-cycle management on the table."
The recent change is on the write side. Snowflake took external-engine writes to its managed Iceberg tables to general availability on 26 May 2026. Its documentation lists Spark, Flink, Trino, Dremio, DuckDB, PyIceberg, StarRocks and Doris as supported engines through Horizon Catalog's Iceberg REST endpoint. Read the limitations before you plan on it:
- Only Snowflake-managed Iceberg tables are exposed. Native Snowflake tables, remote tables and externally managed Iceberg tables are blocked, so every table you want a second engine to touch has to be converted first.
- "CREATE TABLE AS SELECT (CTAS) from an external engine is not supported", and "equality deletes aren't supported" — which rules out some CDC writers that emit them.
- "Reading and writing cloned or converted tables is not supported with vended credentials." Test your conversion path on one table before you script four hundred.
Do not move tables to save on storage. Snowflake's on-demand storage in AWS US East is $23.00 per TB-month, falling to $13.80 at the top capacity tier — not the cost centre most teams assume. The reason to own the files is optionality: once they are in your bucket under an open catalog, which engine computes on them becomes a procurement decision you can revisit every year.
Performance is close but not identical. Prequel's TPC-DS test at 100 GB in October 2024 found Snowflake-managed Iceberg far ahead of external tables and only slightly behind native storage. It is an old, small benchmark, so treat it as directional and run your own top-20 queries before converting a latency-sensitive table.
Which Query Engines Can Run Over the Same Data?
On a like-for-like hour of the smallest production unit, every engine here costs $2 to $5 — so the saving comes from utilisation and workload fit, not the sticker rate. One hour of the smallest unit each vendor sells:
| Engine | Smallest unit | List price per hour, 1 Oct 2026 |
|---|---|---|
| Snowflake Enterprise, AWS US East | X-Small standard warehouse (1 credit/hr) | $3.00 (Gen2: 1.35 credits = $4.05) |
| Databricks SQL Serverless | 2X-Small (4 DBU/hr at $0.70) | $2.80 |
| Starburst Galaxy Pro | 1 worker (6 credits/hr at $0.50-$0.80) | $3.00-$4.80 |
| MotherDuck Business | Standard instance | $2.40 (+ $250/org/month) |
| Amazon Athena | per TB scanned | $5.00 / TB |
Databricks is the only full-platform replacement here, and it is the right one if your next three years look like training, fine-tuning and serving your own models rather than calling a hosted one. It is the wrong one if you are leaving to cut tokens: as the first table shows, it charges what Snowflake's REST path charges. Who should not pick it: an SQL-first analytics team with no PySpark — you would trade one bundle for a harder one. We made the inverse case in Databricks Alternatives: Move Serving, Not the Lakehouse, and the two articles reach the same conclusion from opposite sides: the lock is the operating layer, not the files.
Starburst Galaxy is Trino with a company attached, and its strength is federation — querying the Iceberg lake alongside the Postgres, the Oracle and whatever the last acquisition brought, without copying any of it. A credit is the same unit across tiers; Enterprise runs $0.75-$1.19 and Mission Critical $1.00-$1.59 per credit, so the governance features cost you up to double per worker-hour. Who should not pick it: anyone expecting notebooks, ML or LLM functions — Galaxy is a SQL engine, and you would still need somewhere to run the model calls.
MotherDuck is the cheapest way to take departmental and ad hoc analytics off a warehouse that bills a 60-second minimum on every resume. DuckDB's Iceberg extension now supports REST catalogs with INSERT, UPDATE, DELETE and MERGE, so it can work on the same tables Snowflake manages. Who should not pick it: an enterprise standard. The Business plan caps at 10 internal users, and the engine's roadmap now sits closer to a hyperscaler — AWS's DuckLabs deal put two of the DuckDB Foundation's three directors on AWS's payroll, which a buyer should weigh before building on it.
Self-managed Iceberg — Spark on Kubernetes or EMR for batch, Athena or Trino for SQL, Glue as the catalog — is where the largest documented saving lives. New Relic moved more than 1,000 batch and streaming datasets from Snowflake to Iceberg on S3 with a Glue catalog and reported a "35-52% reduction in our annual data platform spend" (April 2026) — a self-reported range on its own blog, not an audited figure. Read the rest of the post, though: running both systems in parallel meant "twice the infrastructure to watch, twice as many pipelines that can fail," and the migration ran on row-level parity checks and incremental, consumer-by-consumer cutover. Who should not pick it: a team under roughly ten data engineers. New Relic is an observability company with a data-engineering director; your platform team probably is not.
What Governance Do You Lose Leaving a Single Platform?
You lose nothing while Horizon stays the catalog, and you lose almost everything the moment it stops being one. That is the single fact that should set the pace of any migration.
While the tables are Snowflake-managed and external engines come in through Horizon, your policies follow. Snowflake documents two enforcement routes: the Spark connector, which "enforces policies by routing queries through Snowflake", and the Iceberg REST Scan Plan API, which shares "a temporary, policy-filtered dataset" with any compliant engine on Iceberg SDK 1.11 or later. Snowflake's documentation does not say what either route costs in warehouse credits when a protected table is read. Ask before you plan a policy-heavy domain around it — routing through Snowflake to save Snowflake compute may save nothing.
Move the catalog to Glue, Polaris or Unity Catalog and the masking policies, row-access policies, tag-based masking, access history and data classification stay behind in Snowflake. You rebuild them in Lake Formation, OPA or your new platform's policy model — and you need to prove to an auditor that the rebuilt version matches. That is the real cost of the last stage of a migration, and it is measured in compliance sign-offs, not dollars per hour.
The agent layer is no simpler. Snowflake's agent features run with the caller's privileges in ways that surprised teams this summer. Rebuilding that boundary on another platform is a security project, not a data project.
A Staged Migration You Can Stop Halfway
Each stage below pays for itself on its own, and each ends at a point where stopping is a legitimate outcome rather than a failure.
Stage 0 — Measure (week 1). Split last quarter's bill into Platform Credits by warehouse and AI Credits by service and model. Snowflake exposes the SQL side through CORTEX_AISQL_USAGE_HISTORY. If AI Credits are under 15% of spend, skip to Stage 2; the AI path is not your problem.
Stage 1 — Change the AI path (weeks 2-4). Move application-originated LLM calls from AI_COMPLETE to the REST API. Evaluate Sonnet 5.5 against Sonnet 4.5 on 500 real documents. Cap any warehouse that calls Cortex functions at MEDIUM. Stop point: on the reference workload this alone takes $37,800 to between $27,300 and $31,500 a month, with no data moved and no governance change.
Stage 2 — Own the files (month 2-3). Convert your ten largest tables to Snowflake-managed Iceberg on an external volume you control. Snowflake keeps querying them as before. Stop point: you now hold the Parquet in your bucket and can leave whenever the economics say so — which strengthens your hand at the next renewal even if you never use it.
Stage 3 — Add a second engine for batch (month 3-6). Point Spark, DuckDB or Trino at those tables through Horizon's REST catalog for feature preparation, embedding backfills and heavy transforms. Policies stay enforced. Stop point: two engines, one catalog, one policy model. For most enterprises this is the destination, not a waypoint.
Stage 4 — Move the catalog (only with a reason). Re-home the tables in Glue or Polaris and retire Snowflake for that domain, as New Relic did. Do it one domain at a time, with parity checks, and only for domains whose governance you are prepared to rebuild and re-certify.
What Changes the Answer?
Three facts would move this recommendation, and you should check each before your next renewal.
- If AI Credits start taking the platform discount. The capacity ladder is the single term most likely to change. If your account team will extend your warehouse discount to AI Credits in writing, Stage 1 matters less.
- If your AI work is training, not inference. Teams fine-tuning and serving their own models on GPUs should run the Databricks comparison seriously; Snowflake's Cortex fine-tuning list is short and its strength is hosted inference.
- If the Horizon catalog API starts billing at scale. External-engine API calls are listed at 0.5 credits per million, with billing scheduled to begin in the second half of 2026. That is small for batch, but measure it on a chatty engine before Stage 3 goes wide.
The regret predictors are the same in every platform decision: who owns the files, who owns the policy model, and whether your largest cost line is covered by the discount you negotiated. Answer those three, and the vendor choice mostly makes itself.
The Bottom Line
The last decade of warehouse migrations taught a hard lesson: teams moved the data to escape the bill, then found the bill had followed the workload. Open table formats change that by letting the workload move without the data. But the first move here is not a migration at all. It is reading Table 6 of a PDF and changing which door your LLM calls walk through.
Move the compute. Keep the files in your bucket. Leave the catalog last.
Continue Reading
- Databricks Alternatives: Move Serving, Not the Lakehouse
- Snowflake Cortex vs Databricks Mosaic AI: Pick on Exit Cost
- Inference Cost per Million Tokens: Price the Task, Not the Rate
- Snowflake Agents Run as All Your Roles. Revoke From PUBLIC.
- Best FinOps Tools for AI Spend: No Dashboard Fixes an Untagged Key
- Snowflake Copilot vs Genie vs ThoughtSpot: Copilot Is the Wrong Tool
