Skip to content
Cloud Efficiency Hub

Lack of Functional Cost Attribution in Databricks Workloads

The short version

Databricks cost optimization begins with visibility.

Benjamin van der Maas

Manager, Cloud FinOps @ Johnson & Johnson

Databricks service
Databricks
Category
Other
Reference
CER-0020
Type
Governance Gap

Explanation

Why the waste happens and who it affects.

Unlike traditional IaaS services, Databricks operates as an orchestration layer spanning compute, storage, and execution - but its spend is often hard to attribute by workload, job, or team: the billing system table (system.billing.usage) records DBU usage by job, warehouse, cluster, and custom tag, yet it excludes the underlying cloud provider VM, storage, and transfer costs, and team-level attribution depends on consistent tagging. This creates a visibility gap: costs fluctuate without clear root causes, ownership is unclear, and optimization efforts stall due to lack of actionable insight. When costs are not attributed functionally - for example, to orchestration (query/job DBUs), compute (cloud VMs), storage, or data transfer - it becomes difficult to pinpoint what's driving spend or where improvements can be made. As a result, inefficiencies persist not due to a single misconfiguration, but because the system lacks the structure to surface them.

Billing model

The pricing dimensions that drive this cost.

Databricks costs are composed of:

  • Databricks Units (DBUs): Charged per second of execution based on workload type and cluster configuration
  • Underlying compute costs: Passed through from AWS, Azure, or GCP (e.g., EC2, VMs)
  • Storage and data transfer: Separate charges based on object store access and inter-service communication

Without clear attribution, these components blend together, obscuring usage patterns and hiding optimization opportunities.

How to detect

3 checks to find it in your estate.

Review billing exports and internal dashboards for Databricks to determine whether spend is broken down by:

  • Workload type (interactive, job, SQL)
  • Component (DBU vs. cloud infrastructure vs. transfer)
  • Team or business unit

Check whether tags, cluster names, or workspace structures allow attribution Look for teams reporting fluctuating or opaque Databricks costs without clear levers to act on them

How to fix

5 ways to remove the waste.

Break Databricks costs into functional layers to establish traceability and accountability:

  • Orchestration (DBUs): Analyze query/job-level execution and optimize workload design
  • Compute: Review underlying VM types and cost models (e.g., Spot, RI, Savings Plans)
  • Storage: Align S3/ADLS/GCS usage with lifecycle policies and avoid excessive churn
  • Data Transfer: Identify cross-region or cloud egress patterns driving hidden charges
  • Attribution: Query the system.billing.usage system table, which ties DBU usage to jobs, warehouses, clusters, and custom tags, and join it with cloud provider billing data for VM, storage, and transfer costs

Implement job naming conventions, tagging standards, or workspace isolation to support attribution Build dashboards or reports that expose per-team or per-function Databricks spend Use structured cost data as the foundation for deeper optimization of queries, clusters, and data movement

Documentation

Vendor references for pricing and configuration.