A team adopts an elastic analytical platform and receives a surprising invoice. What controls should have existed, and why do they get added late?
Show the full answer Hide the answer
Why the surprise happens
Elasticity moves the constraint from capacity to cost, and cost is a softer constraint that fails silently. A fixed cluster refuses work when full, which is visible immediately. An elastic platform satisfies whatever is asked, including a dashboard refreshing every thirty seconds and a runaway query scanning years of data — and reports it a month later.
The controls that should have existed
- Auto-suspend on idle, aggressively. Warehouses left running overnight are the most common single source of waste and the easiest to fix.
- Statement timeouts, so a runaway query is bounded rather than open-ended.
- Per-workload budgets with alerts at a threshold, not only at the limit, so there is time to act.
- Result caching enabled and understood, since repeated identical queries should not re-scan.
- Separate warehouses per workload class, which is both an isolation control and a cost-attribution one — and attribution is what changes behaviour, because a team that can see its own spend reduces it.
- Query cost visibility for the analyst who ran it, at the time they ran it, which is far more effective than a monthly report to a manager.
Why they get added late
They are invisible until the first surprising invoice, and before that they look like friction on a platform that was bought for its ease of use. The controls that prevent cost overruns are exactly the ones that make the platform feel less elastic, which is a genuine tension rather than an oversight.
The architectural half
Cost is dominated by data scanned, which is a layout property: partitioning, clustering and file sizes determine how much a query must read. Compute-storage separation does not excuse you from modelling — it makes the cost of bad modelling visible and per-query rather than absorbed into a fixed cluster.
Small-file proliferation from streaming writes is a specific and common cause: it slows every reader and no individual writer is responsible for it, which makes compaction a platform obligation rather than a per-pipeline one.
The governance framing that works
Budgets owned by the teams that spend, with the platform team providing visibility rather than approval. An approval gate becomes a bottleneck and gets routed around; a visible budget with an owner produces the behaviour change without the queue.