Most teams shopping for a Databricks alternative are trying to solve a pricing problem with a replatforming project. It rarely works, because the part of the bill that hurts is not the part that is hard to leave.
Here is the verdict up front. Databricks made managed Apache Iceberg tables generally available in May 2026, so your table format is no longer the lock — but read the docs, not the blog: writes to managed Iceberg tables from external engines are still Private Preview. You can read your data out today. You cannot yet run your production write path somewhere else. That single gap defines the whole migration decision. Move your GPU serving off the platform, where Databricks charges roughly 2x a dedicated GPU cloud. Keep the lakehouse until the write path is GA and your transformations live in portable tooling. If you are a Power BI shop, Microsoft Fabric is the one full replacement whose economics are decisive rather than marginal.
| Option | What you actually pay (list, 5 Sep 2026) | Catalogue you get | Who should NOT pick it |
|---|---|---|---|
| Databricks (stay) | SQL Serverless $0.70/DBU-hr; Automated Serverless $0.45; Interactive Serverless $0.95 | Unity Catalog: lineage, ABAC, Genie, agent governance | Anyone whose bill is dominated by GPU model serving or all-purpose clusters |
| Snowflake | ~$2.00/credit Standard on AWS US East; Cortex at $2.00 per AI Credit | Horizon plus Apache Polaris (ASF) | Teams with heavy PySpark and custom ML — you are trading one bundle for another |
| Microsoft Fabric | $0.18/CU-hr PAYG; F64 reserved $938/CU/yr = $5,002.67/mo | OneLake plus Purview | Anyone who is not already standardised on Power BI |
| Starburst Galaxy | $0.50–$0.80/credit Pro; 1 worker = 6 credits/hr = $3.00/worker-hr | Bring your own (Polaris, Glue, Lakekeeper) | Shops that need training and serving, not just federated SQL |
| Dremio Cloud | $0.20/DCU; XS engine = 32 DCU/hr = $6.40/hr | Dremio catalog on Iceberg | Bursty or low-utilisation workloads — the smallest engine is not small |
| Self-managed (Iceberg + Trino + Glue) | Athena $5/TB scanned; Glue Data Catalog free to 1M objects; EMR Serverless $0.052624/vCPU-hr | Whatever you operate | Teams under roughly ten data engineers, or anyone who needs column-level policy on day one |
What Databricks Actually Locks In Now
The lock moved from the file format to the operating layer, and almost every "open lakehouse" pitch is still arguing against the old version. Databricks first shipped Iceberg managed tables in a June 2025 release explicitly framed as eliminating table format lock, and the May 2026 announcement took Managed Iceberg, Iceberg v3 and Foreign Iceberg to GA, with cross-engine attribute-based access control still at Beta. Trino, DuckDB, Spark, Daft and Dremio can all reach those tables through the Iceberg REST Catalog.
So the Parquet files are portable. What is not portable is everything you built around them.
dbutils has no clean equivalent anywhere else. Microsoft publishes its own Databricks-to-Fabric mapping table, and the honest rows are the ones marked Not available: dbutils.secrets.listScopes(), dbutils.library.install*() at runtime, dbutils.data.summarize(), and dbutils.widgets, which has "no direct equivalent" and has to be redesigned around parameter cells. dbutils.jobs is a "different model" entirely. dbfs:/ paths do not exist off-platform. Declarative pipelines cannot be ported verbatim; they get rewritten as parameterised notebooks under a different orchestrator.
That is the real exit cost, and it is denominated in engineer-weeks, not dollars per hour.
The Catalogue Is the Cheapest Thing to Replace
A metadata catalogue is close to free, which is why "we need to get off Unity Catalog" is almost never the reason to move. The AWS Glue Data Catalog is free for the first million metadata objects and the first million requests, then $1.00 per 100,000 objects per month. A forty-thousand-table lakehouse costs nothing to catalogue. Apache Polaris is an ASF project implementing Iceberg's REST API for multi-engine interoperability, Lakekeeper is an Apache-licensed Iceberg REST catalog written in Rust with OpenFGA authorisation and an OPA bridge for enforcement inside Trino, and Unity Catalog itself is Apache 2.0 open source on GitHub, supporting Delta, Iceberg and Hudi through UniForm plus the Iceberg REST catalog API.
What you do not get for free is governance. Column masks, row filters, cross-engine ABAC, end-to-end lineage and a governed natural-language query surface are the managed product, not the open-source server. If your regulator wants an auditable lineage graph across 4,000 tables, budget for building it or budget for keeping it — that is the same decision pattern as choosing an MLOps platform under model-risk rules.
Where the Bill Actually Comes From
Databricks SQL is not where you are being overcharged, and the SQL-versus-SQL comparison every competitor leads with is the least interesting number on the page. Working from the Azure retail price list for Azure Databricks in East US, Premium Serverless SQL is $0.70 per DBU-hour, and Databricks documents a 2X-Small serverless warehouse at 4 DBU/hour. That is $2.80 an hour, all in, with no separate VM charge.
Compare like for like, at one warehouse-hour of the smallest production-grade unit each vendor sells:
| Engine | Smallest unit | List price per hour |
|---|---|---|
| Databricks SQL Serverless | 2X-Small (4 DBU/hr) | $2.80 |
| Snowflake Standard* | X-Small (1 credit/hr) | ~$2.00 |
| Starburst Galaxy Pro | 1 worker (6 credits/hr) | $3.00 |
| Dremio Cloud | XS engine (32 DCU/hr) | $6.40 |
| Amazon Athena | per TB scanned | $5.00 / TB |
Those are within noise of each other, and the engines are not identical, so treat this as a floor check rather than a ranking. The useful signal is what it rules out: nobody is going to save a material fraction of a seven-figure platform bill by swapping the SQL engine.
Note the asterisk on the Snowflake row. Snowflake is the only vendor here that does not publish a per-credit dollar rate on a static page — its pricing page routes you to a legal consumption table and a calculator that is explicitly "not a quoting tool". The widely-cited list rate of roughly $2.00 per credit on AWS US East, with storage at $40 per TB-month on demand against $23 pre-purchased, comes from third-party analysis rather than the vendor. If you are modelling a switch to Snowflake, get the rate card in writing before you model anything else.
Starburst Galaxy and Dremio Cloud are the two managed-open middle options, and they solve different problems. Starburst is Trino with a company attached: credits are a universal compute unit, a one-worker cluster burns 6 credits an hour, and its strength is federating query across systems you are never going to consolidate — the lakehouse plus the operational databases plus whatever the last acquisition brought with it. It does not train or serve models, so it replaces part of Databricks, not the platform. Dremio is the more direct lakehouse substitute, Iceberg-native with its own catalog and reflections for acceleration, and it is one of the engines Databricks names as able to reach managed Iceberg tables through the REST catalog. Its pricing carries the honest catch: the smallest engine is XS at 32 DCU/hour, or $6.40, which makes it a poor fit for bursty or low-utilisation work where a serverless warehouse can scale to nothing. Both are credible; neither is a reason on its own to leave.
The reference workload, priced. Take a forty-terabyte shop: one Medium serverless warehouse for 60 analysts at 250 hours a month, 3,600 serverless job DBU-hours, 300M input and 60M output tokens a month against a 70B-class open model, and 5M vectors indexed. At the Azure East US list rates above, that is $4,200 of SQL (24 DBU/hr × $0.70 × 250), $1,620 of jobs (3,600 × $0.45), $240 of tokens and roughly $613 of vector search — about $6,700 a month, or $80,000 a year, before object storage. Scale it to your own burn before drawing conclusions: the shops that genuinely need this decision are running twenty to thirty times that, and the ratios between SKUs matter far more than the absolute figure.
The expensive Databricks SKUs are the ones nobody puts in a slide. Premium Interactive Serverless — serverless notebooks — is $0.95 per DBU-hour, more than a third above serverless SQL. Premium All-Purpose Compute is $0.55 per DBU-hour plus the underlying VM, against $0.30 for Jobs Compute. If your engineers develop interactively on all-purpose clusters and forget to terminate them, you have a discipline problem that follows you to every platform you migrate to.
One warning about the arithmetic: a DBU is not convertible to a vCPU-hour. Any comparison that hands you a clean conversion factor between DBUs and raw compute is selling you something. Compare on the unit each vendor actually bills and on your own measured burn.
GPU Serving Is Where the Markup Lives
This is the finding worth acting on this quarter. Databricks bills GPU model serving against the Serverless Real-Time Inference SKU at $0.07 per DBU, and documents a single A100 80GB endpoint at 78.60 DBU per hour — $5.50 per GPU-hour. Lambda lists A100 SXM 80GB on-demand at $2.79 per GPU-hour, available only on its 8x instance — its widely-quoted $1.99 rate is the 40GB card, not the 80GB part — and H100 SXM at $3.99. You are paying roughly 2x a dedicated GPU cloud for the convenience of serving inside the platform.
Check the purchasable unit before you act on that ratio, because the two sides are not sold the same way. Databricks bills the A100 80GB one GPU at a time; Lambda sells it only in an eight-GPU instance at $22.32 an hour, and CoreWeave's 8x A100 system is $21.60 — also eight-GPU minimum. The per-GPU rate is real and the smaller clouds do rent single 80GB cards at comparable money, but you only realise the saving if you can fill the box or you buy from one of those. For a single endpoint at low utilisation, a serverless SKU that scales down can still win on the monthly bill while losing on the hourly rate.
Token pricing tells the opposite story, which is why you have to separate the two. From the Databricks foundation model serving price list, Llama 3.3 70B is 7.143 DBU per million input tokens and 21.429 per million output — $0.50 in, $1.50 out at the $0.07 rate. Claude Sonnet 4.5 short-context runs 42.857 and 214.286 DBU, which lands at exactly $3.00 and $15.00 per million tokens; Opus 4.5 at 71.429 and 357.143 DBU lands at $5.00 and $25.00. Those are, to the cent, Anthropic's own published list prices. Databricks takes no markup on the tokens it resells.
The markup it takes is in time, and that is the part to check before you route your agents through it. Databricks' Anthropic catalogue tops out at Opus 4.5 and Sonnet 4.5 — models Anthropic now lists under Legacy, with Sonnet 5, Opus 5 and Fable 5.1 absent from the Databricks price list entirely. Opus 4.5 and Opus 5 happen to share the same $5.00 and $25.00 rate card, so that generation gap costs nothing. Sonnet does not: Sonnet 5 is $2.00 in and $10.00 out direct from Anthropic against $3.00 and $15.00 for Sonnet 4.5 through Databricks. Zero markup on a superseded model is still half again the price of the current one bought elsewhere.
So the rule is narrow and specific. Buying a model Databricks carries costs you nothing extra — verify it carries the generation you actually want. Renting Databricks GPUs to host your own weights costs you roughly twice the going rate. If you fine-tuned an open model and are serving it on a provisioned endpoint, that workload — and only that workload — should move to a dedicated runtime on a GPU cloud. The runtime choice is a separate question we have worked through in the vLLM versus TensorRT-LLM comparison, and the accelerator choice in the analysis of NVIDIA alternatives for inference.
Vector search sits in between. Databricks AI Search Standard bills 4.0 DBU/hour per unit of 2 million vectors — about $204 per month per 2M vectors at 730 hours. That is defensible against managed vector services and expensive against pgvector on a database you already run, which is the same conclusion as our vector database pricing teardown.
Microsoft Fabric Wins on One Number, and Only One
Fabric's case is a licensing arbitrage, not a technology argument, and it is completely decisive for the shops it applies to. Azure prices Fabric capacity at $0.18 per capacity-unit hour with a one-year reservation at $938 per CU. An F64 is 64 CU: $11.52 an hour pay-as-you-go, or $5,002.67 a month reserved. OneLake hot storage is $0.026 per GB-month.
The number that matters is the threshold. Microsoft documents that on F64 or larger, users with only a Free licence and a viewer role can view Power BI content; below F64, every viewer needs Pro or PPU. Power BI Pro is $14.00 per user per month. So F64 reserved pays for itself at 358 report viewers — and everything else in Fabric, the lakehouse, the warehouse, Spark, the pipelines and the Copilot features, rides on the same capacity at no marginal licence cost.
If you have 800 report consumers, this is not close. If you have 30, or your BI layer is Tableau or Looker, the entire Fabric economic case evaporates and you are buying a less mature Spark runtime to save nothing.
Who should not pick Fabric: anyone with heavy custom PySpark, anyone who needs a specific Spark or Delta version pinned, and anyone whose data cannot sit in a Microsoft tenant.
What the Migration Actually Costs
Price the rewrite in engineer-weeks before you price the platform in dollars, because the rewrite is the bigger number for the first two years. The scope is knowable in an afternoon. Run an inventory and sort your workload into three buckets.
Portable today. SQL models in dbt, orchestration in Airflow or Dagster, tables already in Iceberg or Delta with UniForm, models tracked in MLflow. Databricks and Microsoft both document that the MLflow data model and APIs are fully open source and exportable, so experiment history moves. This bucket costs days.
Mechanical rewrite. Notebooks using dbutils.fs, dbutils.secrets, dbfs:/ paths and spark.databricks.* configs. Every one needs touching, none needs thinking. Budget one engineer-day per twenty notebooks and a full regression run.
Genuine re-architecture. Declarative pipelines, Workflows job graphs, Unity Catalog row filters and column masks, anything using Genie or Agent Bricks, and every dbutils.widgets parameterisation. This is where projects die. Budget in months and assume you will run both platforms in parallel for at least one quarter, paying for both.
The raw infrastructure underneath a self-managed stack really is cheap, and the numbers are worth knowing before you dismiss the option. EMR Serverless bills $0.052624 per vCPU-hour and $0.0057785 per GB-hour; S3 Tables storage is $0.0265 per GB-month for the first 50 TB, with compaction at $0.002 per 1,000 objects processed plus $0.005 per GB; the catalogue is free. Nothing in that list is a markup. The catch is that Athena's $5 per terabyte scanned is metered by a variable you do not control — analyst SQL — so a badly partitioned table turns a predictable warehouse bill into an unbounded one.
Then price the thing nobody puts in the business case: the platform team. A self-managed Trino-and-Iceberg stack on Kubernetes needs someone who owns Spark, Iceberg and catalogue version compatibility, namespace resource quotas so one runaway job cannot saturate the cluster, and compaction and lifecycle jobs that become their own toil vector past a few hundred tables. Two fully loaded platform engineers cost several times the $80,000 a year the reference workload above spends on Databricks compute — which is why self-managed only pencils out at scale, and why it is the first option to strike for a small team. That is the same run-cost trap that shows up in software build-versus-buy decisions generally.
AI Feature Parity Is Not About the Models
Every serious platform now resells the same frontier models, so parity is decided by the governance runtime, not the model list. Unity AI Gateway reached GA on 4 August 2026 with hard spend caps, guardrails, granular cost attribution across models, providers and teams, and coverage that extends to external agents, MCP servers and coding assistants — not just Databricks-hosted endpoints. Agent Bricks supports LangGraph, CrewAI and the OpenAI and Claude Code agent SDKs.
Snowflake Cortex is the closest bundled equivalent; its docs price AI functions in AI Credits per million tokens, at $2.00 per AI Credit for global routing and $2.20 for regional, with Cortex Search billed as credits per GB per month plus embedding tokens.
On the open side, the pieces exist and do not assemble themselves. MLflow open source gives you tracking, the model registry and tracing; Microsoft's own comparison lists what it does not give you: production-scale trace ingestion, a continuous LLM-judge monitoring service over sampled production traffic, and Unity Catalog governance over models, feature tables, vector indexes and tools. For the gateway layer you would run something like Kong or LiteLLM in front of your providers — and as we found when comparing AI gateways with API management platforms, the spend-cap behaviour is exactly where those products differ most.
Budget honestly: replacing the AI half of Databricks is three products and an on-call rotation, not one line item. If your agents are already metered per action, read that alongside how agentic pricing models are actually structured.
When Staying Is the Right Answer
Staying is correct more often than the alternatives market wants to admit, and there are three clear cases.
You have not cleaned up first. Moving interactive development off all-purpose clusters onto Jobs Compute takes the DBU rate from $0.55 to $0.30 and changes nothing about your architecture. One buyer-side negotiation advisory reports, across the 10 to 15 Databricks deals it worked in 2024 and 2025, that job cluster hygiene and auto-termination policies cut baseline DBU burn 15 to 25 percent, and that opening commits land 25 to 40 percent above measured trailing burn. That is a small self-reported sample from a firm that sells negotiation help, so take the direction rather than the decimal. Do that work before you price a migration, or you will migrate your waste — and you will negotiate against a number that was inflated on purpose.
Your leverage is the migration, not the move. Databricks passed a $7 billion revenue run-rate in August 2026 at a $190 billion valuation, with more than 1,000 customers consuming above $1 million a year. A credible, costed exit plan — Iceberg tables, dbt models, Airflow DAGs, a proof-of-concept on a second engine — is worth more at renewal than most teams get from actually executing it. Build the plan. Use it.
The write path is not open yet. Until external writes to managed Iceberg tables leave Private Preview, a multi-engine architecture means Databricks writes and everything else reads. That is a perfectly good architecture. It is not vendor independence, and you should not tell your board it is.
What Should Change Your Mind
These are the criteria that predict regret, in the order they actually bite.
- Where is your spend concentrated? Pull the last three months by SKU. GPU serving and interactive compute justify action; SQL and jobs almost never do.
- What fraction of transformation logic is in dbt or plain SQL? Above 70%, migration is tractable. Below 40%, and mostly in declarative pipelines and notebooks, it is a rewrite wearing a migration's clothes.
- How many report consumers do you have on Power BI? Past roughly 358, Fabric's licensing arithmetic dominates every other consideration.
- Do you have a platform team today? Not a data engineering team. A team that gets paged for Kubernetes. If the answer is no, self-managed is not on your menu.
- What does your contract's true-down and carry-forward language say? A right to reduce the annual commitment at the anniversary is worth more than a slightly deeper discount band.
- Is your data allowed to live where the alternative runs? This filters faster than any benchmark, and it is the same constraint driving cross-cloud lakehouse designs built on Iceberg.
Three Things to Do in the Next 90 Days
This Month: Export your billing by SKU and rank it. Separately, count the notebooks that import dbutils and the pipelines defined declaratively. Those two numbers are your entire migration business case and they take an afternoon to produce.
This Quarter: Move one fine-tuned model off provisioned GPU serving to a dedicated GPU cloud — one that rents single cards, or you will be buying eight — and measure the delivered cost per million tokens, not the hourly rate. This is the highest-return single change available, it is reversible, and it needs no platform decision. Separately, convert one production table to managed Iceberg and query it from Trino or DuckDB — that read test tells you more about your real portability than any vendor assessment.
Before Your Next Renewal: Put the costed exit plan in writing, with the engineer-weeks per bucket. Take it to the negotiation. Ask specifically for a true-down right at the anniversary, a price-protection clause for the term, and carry-forward on unused commitment. Unspent commitment forfeits by default; the clause only exists if you write it in at signature. Those terms are worth more than the headline discount, and they are the ones you will need if the answer changes next year.
The Bottom Line
The last decade of data platform lock-in was about file formats, and the industry won that argument: Iceberg is GA on Databricks, Snowflake and every serious engine, the REST catalog is an Apache project anyone can run, and the catalogue costs approximately nothing. Everyone declared victory and moved on.
The lock did not disappear. It relocated — into notebook utilities, declarative pipelines, job graphs, governance policies and an agent runtime, none of which has a standard and none of which exports. That is a harder problem than Parquet ever was, and it is quieter, because no vendor has an incentive to name it.
Which is why the right move is surgical rather than total. Take the GPU serving, where you are paying roughly twice the market rate for convenience. Put your transformations somewhere portable. Convert your tables. Then negotiate from a position where leaving is a decision rather than a fantasy.
You do not need to leave. You need to be able to.
Continue Reading
- Snowflake Cortex vs Databricks Mosaic AI: Pick on Exit Cost
- Vector Database Pricing: Only pgvector Publishes a Rate
- RAG Build vs Buy: Buy the Index. Build the Eval Set.
- vLLM vs TensorRT-LLM vs SGLang: Default to vLLM
- AI Gateway vs API Management: No Managed Gateway Caps Your Spend
- GPU Clouds Compared: Nebius on Price, CoreWeave at 3AM
- AWS Didn't Buy DuckDB. It Hired Its Board Majority.
