Lakshya

Databricks & Snowflake · Chapter 8 of 10

Cost control, which is the skill people get hired for

Half of data-platform postings name cost. This chapter is the practical part.

3 min read0 diagramsAll 10 chapters

Both platforms are consumption-priced, which means a single badly-written query or a forgotten cluster can cost more than an engineer's week. Cost control is not finance work here — it is engineering work, and it is one of the most reliably valued things you can bring.

Where the money actually goes

CauseDatabricksSnowflake
Idle computeAll-purpose clusters left runningWarehouses with long auto-suspend
OversizingBig clusters on shuffle-bound jobsXL warehouses for small queries
Full recomputeFull refresh where incremental would doSame — full table rebuilds nightly
Unpruned scansNo partitioning or clusteringNo clustering key on a filtered column
Dashboard refreshesScheduled jobs nobody readsHourly refreshes on weekly dashboards
Retained historyOld Delta versions never vacuumedLong Time Travel plus Fail-safe
Dev environmentsCopies of production dataCopies rather than zero-copy clones

The sequence that works

  • Attribution before optimisation. Tag clusters and warehouses by team. Until spend is attributable nobody owns it and every conversation is about the total. This is the step people skip and it is the one that unlocks the rest.
  • Find the top ten consumers. Spend is always concentrated — a handful of jobs or queries account for most of it. Both platforms expose usage views for this.
  • Kill the free wins first. Auto-suspend, auto-termination, dropping unused dashboards' schedules, and vacuuming or expiring history. No engineering effort and often a double-digit percentage.
  • Then incremental. Converting the biggest full refresh to incremental is usually the single largest saving available.
  • Then pruning. Clustering the most-scanned table on the most-filtered column.
  • Then commitments — and deliberately last, because buying a multi-year commitment on an architecture you are about to change locks in waste.

The number to report

Cost per unit of business value — per active user, per pipeline run, per resolved query — and its trend. Aggregate spend rising while cost per unit falls is a healthy, growing platform. Aggregate flat while cost per unit rises is a problem, and the total hides it in both directions.

Then publish it per team, monthly, and let them see their own number. They know which pipelines are safe to turn off and you do not.

← Making queries fast on eachGovernance and security on both →