Cloud data warehouse bills rarely explode overnight. They creep: a warehouse left on XL after a one-off backfill, a dashboard refreshing every five minutes for a team that checks it weekly, a dev environment that never suspends. By the time finance asks questions, nobody remembers which knob was turned.
With engineering leadership under real economic pressure, FinOps has moved from a nice-to-have to a quarterly OKR. The good news: the biggest savings usually come from a handful of unglamorous fixes, and the warehouse itself will tell you where they are.
Find the idle compute first
Start where the money is: compute, not storage. In Snowflake, query ACCOUNT_USAGE.WAREHOUSE_METERING_HISTORY and join it against QUERY_HISTORY — any warehouse burning credits with near-zero queries per hour is your first target. In BigQuery, the INFORMATION_SCHEMA.JOBS view exposes slot usage per job; sort by total_slot_ms and you will usually find one scheduled query responsible for a shocking share of spend.
Then fix the settings that let idleness cost money. Snowflake's auto-suspend default of ten minutes is generous — most interactive warehouses do fine at sixty seconds. In Databricks, enforce auto-termination on all-purpose clusters and push scheduled work onto job clusters, which are billed at a lower rate and die when the job does.
Make the pruning do the work
The second lever is scan efficiency. A well-chosen clustering key in Snowflake — or partitioning plus clustering in BigQuery — means queries touch a fraction of the data. Cluster on the columns your WHERE clauses actually filter by (almost always a date plus one high-cardinality business key), and check SYSTEM$CLUSTERING_INFORMATION before paying for automatic reclustering on tables that don't need it.
Beware the opposite failure too: clustering everything. Reclustering costs credits on every load, so a table that is only ever full-scanned gains nothing and pays constantly.
Make cost a metric, not an audit
One-off cleanups decay. The teams that keep bills flat treat cost like latency: a per-team dashboard fed by the metering views, budget alerts on anomalies, and a monthly review of the ten most expensive queries. When engineers can see the cost of a query next to its runtime, the expensive habits fix themselves.