FinOps for Data Platforms — Cost is a First-Class SLA

Warehouse credits, storage tiers, partition pruning audits, the cost-per-query habit.

0/2 done

Theory

A query that costs $50 every refresh is a bug

Cloud warehouses (Snowflake credits, BigQuery slot-hours, Databricks DBUs) make storage cheap and compute the dominant line item. The DE platform owns this cost. Four habits keep it under control:

  1. Tag everything. Warehouse, query, dbt model, dashboard — all tagged with cost_centre, pipeline, owner. You can't cut what you can't attribute.
  2. Audit partition pruning. Most expensive queries scan data they didn't need. Run a weekly 'top N most-scanned tables' report; fix the partition layout or the WHERE clause.
  3. Size warehouses for workload, not for peace of mind. Auto-suspend, multi-cluster scaling, and per-environment warehouse separation.
  4. Lifecycle storage. Cold partitions to S3 Glacier / BigQuery long-term storage / Snowflake remote stages — usually automatic, frequently forgotten.

Analogy

Cloud-warehouse FinOps is sub-metering an apartment building. When everyone shares one electricity bill split evenly, the person running three air-conditioners pays the same as the one who unplugs everything — so nobody saves. The moment you put a meter on each apartment (tag every query and warehouse with an owner) and post the bill on each door (showback dashboards), consumption drops without a single rule being written. A query that scans 100% of the table to answer a one-day question is just a tenant leaving the heating on with the windows open — invisible until someone reads the meter.

Reflect

FinOps isn't austerity — it's attribution. The moment each team sees its own warehouse credits in the dashboard next to its OKRs, behaviour changes without policy. Make the bill legible, and the bill goes down.

  • Can every team see their warehouse spend today — and is it tagged accurately enough to be actionable?
  • What's the biggest single query in your platform last week, and who owns it?

Reading in progress · 0 of 2 activities done