FinOps for Data Platforms: Keeping Fabric, Databricks and Snowflake Costs in Check

Consumption pricing is wonderful, right up until the bill arrives. Data platforms are now among the fastest-growing lines on many cloud invoices, and for a good reason: their cost grows with success. More data, more users, more reports and, lately, more AI.

FinOps is how you stay in control without slowing that success down. It isn't about spending less at any cost. It's about knowing what you spend, why, and what you get for it, so every dollar on your data platform earns its keep.

Key takeaways

  • FinOps is a shared practice across engineering, finance and the business, not a one-off cost-cutting exercise.
  • Data platform spend leaks through idle compute, oversized capacity, unused refreshes and duplicated data.
  • Every platform has a few big levers: auto-suspend, right-sizing, workload separation and tagging.
  • Track a unit cost, such as cost per active user, so cost conversations become value conversations.
  • Start with visibility and ownership. Optimisation sticks only when someone owns the number.
Datum the turtle beside a dashboard showing data platform spend coming back under budget

What is FinOps?

The FinOps Foundation describes FinOps as an operational framework and cultural practice that maximises the business value of cloud, through timely, data-driven decisions and shared financial accountability between engineering, finance and business teams.

In practice, it works as a loop with three phases:

1InformSee what you spend, who spends it and what it delivers.
2OptimiseRemove waste and get better rates for what you keep.
3OperateBuild the habits, owners and guardrails that keep it that way.

Teams move through these phases again and again, getting a little more mature each time. The FinOps Foundation calls the stages of maturity Crawl, Walk and Run, and you'll find a quick self-check for each phase further down.

Why data platforms need FinOps of their own

Traditional cloud cost management focuses on servers. Data platforms are different. Their cost is driven by workloads: queries, pipelines, report refreshes, notebooks and AI calls. Much of it runs on shared capacity, so it's hard to say which team or product caused it. And because it's so easy to spin up another warehouse, workspace or copy of a dataset, spend tends to creep rather than jump, which makes it easy to miss.

Where data platform spend leaks

These are the leaks we see most often when we review data platforms. Most have simple fixes.

Always-on compute

Clusters, warehouses and capacities that run when nobody is using them.

FixAuto-suspend, auto-termination and scheduled pausing.

Oversized capacity

Sized for the busiest day of the year, paid for every day.

FixRight-size regularly, scale up for peaks and back down after.

Refreshing what nobody reads

Reports and pipelines refreshing every hour for an audience of none.

FixCheck usage, then reduce frequency or retire them.

Copies of copies

The same data stored and processed in several places.

FixOne governed copy, shared rather than duplicated.

Forgotten environments

Development and test workspaces left running after a project ends.

FixOwners, expiry dates and automatic shutdown.

Inefficient processing

Full reloads and unoptimised queries that do far more work than needed.

FixIncremental loads, partitioning and query tuning.

No tags, no owner

Spend nobody can explain, so nobody acts on it.

FixTag everything to a team, project or product.

Unplanned AI usage

Usage-based AI services adopted faster than anyone is tracking.

FixQuotas, budgets and usage reporting from day one.

Check your FinOps maturity

Answer nine quick questions. Your results update as you go, with a fix list built from your answers. Nothing is sent anywhere.

1Inform

We can see our data platform spend by team, project or product.

People who run workloads can see what those workloads cost.

We track a unit cost, such as cost per active report user.

2Optimise

Compute shuts down automatically when it's idle.

We've right-sized capacities and warehouses in the last six months.

We've removed refreshes, pipelines and data copies nobody uses.

3Operate

Budgets and alerts warn us before costs blow out.

Every workspace, warehouse or cluster has a named owner.

Technology, finance and the business review cost together.

Your results

InformNot answered
OptimiseNot answered
OperateNot answered

Answer the questions to see where you stand.

Your biggest cost levers, platform by platform

Every platform bills differently, but each has a handful of levers that make most of the difference. Choose a platform:

  1. Size the capacity to real usageUse the Fabric Capacity Metrics app to see how much of your capacity you actually use, then resize the F SKU to match.
  2. Pause what you don't needCapacities bought pay-as-you-go can be paused and resumed, for example for development capacities outside business hours.
  3. Reserve what you'll always useIf a capacity runs all year, reserved capacity pricing costs less than pay-as-you-go.
  4. Tame refreshesSemantic model refreshes and pipelines consume capacity. Refresh only as often as people need, and refresh incrementally.
  5. Separate noisy workloadsPut heavy engineering and critical reporting on different capacities, so one can't throttle the other.

Estimate your Fabric capacity and cost

Not sure which platform suits your workload and budget? Our Fabric vs Databricks vs Snowflake guide compares their pricing models side by side.

Free script from our consultants

Auto-pause idle Azure Synapse dedicated SQL pools

A dedicated SQL pool is billed for compute every hour it's online, whether or not anyone is running queries. When it's paused, you pay only for storage. Our consultants built this PowerShell runbook to pause idle pools automatically, and we've made it free to use.

  1. 1Runs on a scheduleAs an Azure Automation runbook, signed in with a managed identity, so there are no passwords to store.
  2. 2Finds every poolScans all Synapse workspaces in the subscription and checks each online dedicated SQL pool.
  3. 3Checks for real activityReads the pool's query history, ignoring its own and internal system activity.
  4. 4Pauses only idle poolsPauses pools idle for longer than your threshold (30 minutes by default) and leaves busy ones alone.
  • Never pauses a pool with running or queued queries
  • Leaves a pool untouched if it can't check it
  • Dry run with -WhatIf
  • Least-privilege permissions
  • Fails the job, so alerts fire, if anything goes wrong
  • Works with private networking via a Hybrid Runbook Worker
Try it safely first: a dry run that changes nothing
.\Suspend-IdleSynapseSqlPools.ps1 -SubscriptionId '<your-subscription-id>' -Action Suspend -WhatIf
Architecture: a scheduled Azure Automation runbook on a Hybrid Runbook Worker connects through a private endpoint to Synapse, checks each dedicated SQL pool's activity and pauses pools idle longer than the threshold
How it fits together when public network access to Synapse is disabled. Select the diagram to enlarge it.

You'll need: an Azure Automation account with the Az.Accounts, Az.Synapse and SqlServer modules, the Synapse Contributor role on your workspaces, and VIEW DATABASE STATE on each pool for the managed identity. Full details are in the script header.

Free and open source under the MIT licence. Test it in a non-production subscription first.

Unit economics: the number that changes the conversation

"We spent $40,000 on the data platform last month" starts an argument. "It cost $4.20 per active user, down from $5.10" starts a conversation about value. A unit cost connects spend to what the business gets, so growth in spend is fine as long as the unit cost holds or falls.

Try it with your own numbers. Nothing leaves your browser.

Cost per active user$80per month
Cost per data product$500per month
Potential annual saving$36,000$68 per user per month after

Illustrative only. The result depends entirely on the numbers you enter.

A practical 90-day FinOps plan for data teams

  1. Days 1 to 30, Inform: tag workspaces, warehouses and clusters to owners, build a simple monthly cost report by team, and choose one unit cost to track.
  2. Days 31 to 60, Optimise: switch on auto-suspend and auto-termination, right-size the biggest capacities, and retire or slow down unused refreshes and pipelines.
  3. Days 61 to 90, Operate: set budgets and alerts, give every resource a named owner, and start a short monthly cost review with technology, finance and the business.

After 90 days, take the maturity check again. Moving one phase from Crawl to Walk is real progress.

Frequently asked questions

What is FinOps?

FinOps is a practice that brings engineering, finance and business teams together to manage cloud costs. The FinOps Foundation describes it as an operational framework and cultural practice that maximises the business value of cloud through timely, data-driven decisions and shared financial accountability.

Is FinOps just about cutting costs?

No. The aim is more value for every dollar. Sometimes that means spending less, and sometimes it means spending more on the workloads that matter, with a clear view of what you get in return.

Who should own FinOps in a data team?

Everyone shares it, but someone should lead it. Engineers own the efficiency of what they build, finance owns budgets and forecasting, and business owners decide which outcomes are worth paying for. A named platform owner usually brings these together.

How quickly can we see results?

Quick wins such as auto-suspend settings, removing unused refreshes and shutting down idle environments can reduce spend within weeks. Lasting results come from visibility, ownership and a regular review rhythm.

Do FinOps principles apply to AI workloads?

Yes. AI services are usually priced by usage, such as tokens or provisioned throughput, so the same habits apply: tag usage to an owner, set quotas and budgets, monitor consumption and measure cost against the value delivered.

Want a second pair of eyes on your cloud bill?

Our fixed-scope Azure Cloud Cost Review finds the quick wins and the structural fixes across your data platform, and our managed services keep costs in check month after month.

Azure Cloud Cost Review Managed services