Compute Type
Which workloads belong on jobs compute, all-purpose compute, SQL warehouses or serverless.
Databricks Cost Optimization
Databricks cost optimization attributes DBU spend to workloads and teams, then changes the compute, cluster policies and table layout that drive it. AceMQ starts from your billing system tables and job history, ranks the cost drivers, and gives you a written plan. A recurring review is available if you want the gains to hold.
Is This You?
DBU consumption rises quarter on quarter and finance cannot say which team or workload causes it
Scheduled pipelines still run on all-purpose compute because that is where they were first built
Clusters are sized for the worst run and stay up between runs
A Spark job's run time doubled and the data did not
Nobody can say whether Photon, serverless or spot instances would help which workloads
Cluster policies are missing, or exist and are bypassed
The same cost problems return a few months after they were fixed
Outcomes
Concrete state changes, not deliverable counts. This is what actually differs about your Databricks estate when the engagement closes.
Before
Databricks spend is one number on an invoice.
Spend attributed by workload, team and compute type from system.billing.usage, with a tagging standard that keeps it attributable.
Before
Production ETL runs on interactive compute and idle clusters stay up overnight.
Scheduled work moved to jobs compute, with auto termination and autoscaling bounds set per workload.
Before
Slow jobs get bigger clusters until the run time recovers.
Skew, shuffle, small files and layout problems found and fixed at the cause before anyone resizes compute.
Before
Cost controls are advice in a wiki.
Cluster policies, budgets and tag rules that apply when someone creates compute.
Scope
Which workloads belong on jobs compute, all-purpose compute, SQL warehouses or serverless.
Minimum and maximum workers, inactivity timeouts, and the clusters that are never allowed to stop.
Who can create what, with caps on DBUs per hour, fixed settings and required tags.
Which jobs tolerate eviction, with the driver kept on-demand, and where fleet instance types (AWS) pick instances by price and availability.
Where the vectorized engine helps and where it does not, judged workload by workload.
Skew, shuffle, join strategy and adaptive query execution, read from query plans.
Small files, OPTIMIZE, liquid clustering and predictive optimization.
system.billing.usage queries, tag coverage, budgets and, for serverless, usage policies, so the next review starts from data.
The Engagement
Every phase has a defined duration and a concrete artifact handed over at the end of it. You always know what stage you're in and what you've received.
We pull billing usage by SKU, workspace, workload and tag, net out correction records, and list the clusters, warehouses and jobs behind the largest lines.
You receive
The heaviest workloads examined one by one: compute choice, scaling, idle time, query plans and table layout, tested against run history.
You receive
A ranked plan: what to change, the effort, the risk and the order, written for your engineering and finance leads.
You receive
Changes roll out workload by workload alongside your engineers, each checked against prior run time and usage.
You receive
A periodic pass over usage, policies and the heaviest jobs, delivered as a short written report.
You receive
Databricks cost is DBU consumption priced by SKU, plus, on classic compute, the virtual machine, disk and network charges from your cloud provider. For serverless compute the DBU rate already includes the virtual machine cost. The billable usage system table, system.billing.usage, records consumption in DBUs by SKU, workspace and tag, so it is the starting point for every review.
| Compute type | billing_origin_product | Cost behavior | Typical fit |
|---|---|---|---|
| Jobs compute | JOBS | Databricks documents non-interactive workloads as costing significantly less on jobs compute than on all-purpose compute. | Scheduled ETL and batch machine learning |
| All-purpose compute | ALL_PURPOSE | Billed while the cluster runs, so idle time counts. | Interactive development and exploration |
| SQL warehouses | SQL | Serverless warehouses start and scale in seconds, so idle termination and instant availability can both be had. Databricks recommends serverless where available. | BI, dashboards and ad hoc SQL |
| Lakeflow pipelines | DLT | Billed under its own product value, so pipeline cost can be separated from job cost. | Declarative batch and streaming pipelines |
| Serverless compute | Varies by product | Capacity management is handled by Databricks, and the DBU rate includes the virtual machine cost. | Workloads where startup time or idle capacity dominates |
Check before you query
system.billing.usage carries corrections as RETRACTION and RESTATEMENT records alongside the ORIGINAL ones. Sum usage_quantity across all three record types, or your totals will drift from the invoice.
Tags only apply to usage from the moment they are set, and missing tags cannot be added to past usage, so a tagging standard is the cheapest control to put in place early.
Compute policies are how an admin limits what users can create. A policy can fix and hide settings, cap the maximum DBUs per hour, require custom tags and install libraries, and Databricks provides policy families as starting templates. The other cost levers sit on the compute itself.
| Lever | What it controls | What we check |
|---|---|---|
| Cluster policies | Allowed attributes, DBUs per hour cap, required tags | Who can create unrestricted compute, and whether the tag rules are enforced. |
| Auto termination | Inactivity period in minutes after which compute stops | All-purpose compute with long or disabled timeouts. |
| Autoscaling | Minimum and maximum workers | Floors set above what the workload needs. Spark dynamic allocation switched on alongside Databricks autoscaling, which Databricks says not to do. |
| Spot instances | Workers on spare cloud capacity at a lower price | Whether the job tolerates eviction. The driver should stay on-demand. |
| Photon | Vectorized engine for SQL, DataFrame, ETL and stateless streaming | Where it is enabled versus where it helps. Queries that finish in under two seconds see no meaningful gain. |
| Tags and budgets | Attribution in usage data and spend tracking by workspace or tag | Tag coverage, and whether budgets exist for the teams that matter. |
For a service-level example of this work, see the DBU cost governance use case
A job whose run time grows while its data volume stays flat is usually a layout or skew problem, not a sizing problem. Adding workers hides it and raises the bill. The fixes below go after the cause.
For a service-level example, see the Delta small-file remediation use case
For open-source Spark outside Databricks, see Apache Spark consulting
Optimization drifts. New jobs, new teams and growing tables bring the same patterns back, and customers who fix them once tend to return a few months later with the same list. That is why a recurring review is an option: a periodic pass over usage, policies and the heaviest jobs, with a short written report. The cadence depends on how fast your estate changes.
The practice is led by a former Databricks professional-services resident solution architect.
Want the whole estate reviewed, not only spend? See the Databricks health check
Moving onto Databricks first? See Databricks migration services
For production cover once optimized, see Databricks support
Customer Success
See how enterprises trust AceMQ for their most critical Databricks workloads.
Global Payments Processor
Right-sizing Databricks compute by moving scheduled work off all-purpose clusters and tightening autoscaling, instance selection, and idle timeouts.
Healthcare Analytics Provider
Migrating off the legacy Hive metastore to Unity Catalog with external location mapping, table upgrades, and a grant model that survives audit.
Digital Retail Platform
Fixing Delta tables where streaming writes and over-partitioning have produced millions of tiny files, stalling reads and vacuum operations.
Insurance Services Group
Named-engineer support for production Databricks job failures — driver OOM, spot reclamation, library conflicts, and workflow retry storms.
Media Streaming Provider
Profiling a Spark estate to find over-provisioned jobs, redundant pipelines, and workloads better served by something other than Spark.
FAQ
It is the work of attributing DBU spend to workloads and teams, then changing the compute type, scaling settings, cluster policies and table layout that drive it. It starts from billing data in system.billing.usage and ends with a ranked, written plan and controls that keep spend attributable.
Compute type, run time and idle time. Jobs compute costs significantly less than all-purpose compute for non-interactive work, clusters that never terminate bill while idle, and slow jobs consume DBUs for longer. On classic compute you also pay your cloud provider for virtual machines, disks and network.
A cluster policy limits what users can create. It can fix and hide settings, cap the maximum DBUs per hour, require custom tags and restrict instance types, so expensive configurations cannot be created by accident and every cluster carries the tags needed for attribution.
We start from the query plan and run history. Skew, shuffle volume, join strategy and small files are fixed at the cause, using adaptive query execution settings, OPTIMIZE, liquid clustering and predictive optimization where they apply. Compute sizing comes last.
Read access to your billing usage data, a list of workspaces, and a conversation with the engineers who own the heaviest jobs. We confirm the exact list at scoping.
Yes. A recurring review repeats the usage baseline and the heaviest-workload check on a cadence you choose. It is optional, and the first engagement stands alone.
We do not promise a savings percentage before seeing your usage, and we do not publish a price list. Scope depends on workspaces and workloads. Send the number of workspaces and your rough monthly spend band and we will come back with a written quote within 24 hours.
Let's talk
Tell us how many workspaces you run and where your Databricks spend is concentrated. We will scope the review and come back with a written quote within 24 hours.
Send us a message and we'll follow up within one business day — or book a free 30-min consultation directly.
305-204-2607info@acemq.comPrefer to talk now? Call us directly or use the consultation tab to find a time that works.