Databricks cost optimization: taming DBUs and cluster spend
Databricks cost is DBUs (the platform fee) plus the underlying cloud compute. Optimizing means right-sizing clusters, using autoscaling and spot, choosing the right compute type, and avoiding idle clusters. Here is the full playbook.
Quick answer
Databricks bills two things at once: DBUs (the Databricks platform fee, which varies by workload tier like Jobs, All-Purpose, or SQL) and the underlying cloud VMs from AWS, Azure, or GCP. To cut cost: run production pipelines on cheaper Jobs compute rather than All-Purpose clusters, enable autoscaling and aggressive auto-termination so idle clusters stop, use spot or preemptible instances for fault-tolerant jobs, right-size instance types to the workload, and prefer Photon or serverless where it finishes work faster. The DBU rate and the VM rate multiply, so reducing runtime helps both.
Databricks cost confuses people because you pay twice for the same cluster: a DBU charge to Databricks for the platform, and a separate charge to your cloud provider for the virtual machines the cluster runs on. Both scale with how big the cluster is and how long it runs, so optimization is about running the right compute for the shortest necessary time.
The two-part bill
| Charge | What it is | Who bills it |
|---|---|---|
| DBU | Databricks platform fee, varies by workload tier | Databricks |
| Cloud VMs | The EC2 / Azure VM / GCE instances in the cluster | Your cloud provider |
| Storage | DBFS, Delta tables in object storage | Your cloud provider |
The DBU rate depends on the compute type: Jobs compute (for scheduled pipelines) is cheaper per DBU than All-Purpose compute (for interactive notebooks), and SQL warehouses have their own rate. Premium and enterprise tiers cost more per DBU than standard. Because the DBU charge and the VM charge both scale with runtime, anything that shortens a job helps both at once, similar to the size-times-time model in data warehouse sizing.
Use the right compute for the job
The single biggest mistake is running production pipelines on All-Purpose clusters, which cost far more per DBU than Jobs compute designed for exactly that. Move scheduled ETL to Jobs clusters, reserve All-Purpose (interactive) clusters for genuine development work, and use SQL warehouses for BI queries. For sporadic interactive work, serverless compute can be cheaper than a dedicated cluster because you pay only while it runs.
Autoscaling, auto-termination, and spot
Enable autoscaling so clusters add workers only under load and remove them after, and set aggressive auto-termination so idle interactive clusters shut down (an interactive cluster left on overnight is pure waste). For fault-tolerant batch jobs, run worker nodes on spot or preemptible instances, which can cut the VM portion of the bill substantially, keeping the driver on-demand for stability. These are the same levers as general waste elimination, applied to Spark clusters.
Right-size and speed up
Match instance types to the workload: memory-optimized for large shuffles, compute-optimized for CPU-bound transforms, and avoid over-allocating workers a job cannot use. Photon (Databricks' vectorized engine) often finishes jobs faster, and because cost is DBU-rate times runtime, a faster engine can be cheaper overall even at a higher DBU rate. Tune Delta tables (compaction, partitioning) so jobs read less data. Track DBU consumption by job and team so cost is attributable, and price cluster configurations before you deploy them. For a broader view of data-stack spend, compare with dbt Cloud versus Core and see the resource catalog.
FAQ
Why does Databricks cost so much?
Because you pay twice for each cluster: a DBU charge to Databricks for the platform, plus a separate charge to your cloud provider for the underlying VMs. Both scale with cluster size and runtime. High bills usually come from running production pipelines on expensive All-Purpose clusters, leaving interactive clusters idle, or over-provisioning workers, rather than from the DBU rate alone.
What is a DBU in Databricks?
A DBU (Databricks Unit) is the platform's unit of processing consumption, and the DBU charge is Databricks' fee on top of the cloud VM cost. The DBU rate varies by workload type (Jobs compute is cheaper than All-Purpose, SQL warehouses differ) and by tier (standard, premium, enterprise). Your total cost is the DBU charge plus the separate cloud VM charge for the same cluster.
How do I reduce Databricks cost?
Run production pipelines on cheaper Jobs compute instead of All-Purpose clusters, enable autoscaling and aggressive auto-termination so idle clusters stop, use spot or preemptible instances for fault-tolerant batch workers, right-size instance types to the workload, and use Photon or serverless where it finishes work faster. Since cost is DBU rate times runtime, anything that shortens jobs helps both charges.
Should I use spot instances with Databricks?
Yes for fault-tolerant batch jobs. Running worker nodes on spot or preemptible instances can cut the VM portion of the bill substantially, since Spark can recover from lost workers. Keep the driver node on-demand for stability so a reclaimed driver does not kill the whole job. For latency-critical or non-recoverable workloads, weigh the interruption risk against the savings.
Are Jobs clusters cheaper than All-Purpose clusters?
Yes. Jobs compute has a lower DBU rate than All-Purpose (interactive) compute because it is designed for scheduled, automated pipelines. Running production ETL on All-Purpose clusters is one of the most common Databricks overspends. Reserve All-Purpose clusters for genuine interactive development, and move scheduled workloads to Jobs clusters to pay the lower rate.
Does C3X help optimize Databricks cost?
C3X prices the cloud infrastructure behind your data platform from Terraform before deploy, so the VM and storage cost of a cluster configuration is visible in the pull request. That surfaces the underlying cloud portion of Databricks cost at design time, complementing DBU tracking, and helps you choose instance types and sizes before an expensive cluster ships.
What to do next
Price the cloud compute behind your data platform before you deploy. C3X reads your Terraform and prices your resources against a live catalog. Start with the quickstart.
Share this post
Try C3X on your own Terraform
Free and open source. No API key required. One command to install, one command to estimate.