Learn more
7 ways to reduce your Snowflake costs

7 ways to reduce your Snowflake costs

Snowflake is a cloud-based data warehouse built on top of the Amazon Web Services (AWS), Azure, and Google Cloud Platform (GCP).

If you aren't keen on investing large capital upfront, Snowflake's pay-as-you-go pricing model can be attractive. Still, if you don't keep an eye on your setup, monthly bills can quickly spiral out of control. 

In this article, we'll go through the top seven ways you can reduce your Snowflake spending. But first, let's examine how Snowflake costs are calculated.

Snowflake pricing: compute, storage and data transfer costs

Snowflake's pricing depends on your usage of compute, storage and data transfer services. 

    • Compute costs are likely to constitute the largest portion of your bill and are based on how long your warehouses are running and how much compute power they're using. Warehouses come in a range of sizes, from x-small to 6X-large, with the price doubling between each tier.
  • Storage costs are typically lower than compute costs and are based on how much data you're storing across tables, clones, and regions.
  • Data transfer costs are incurred when you transfer data between Snowflake regions, or to another cloud provider. 

Now that you understand what exactly Snowflake is charging you for, you can take steps to optimize resources and reduce your spending. 

Finout's Snowflake Dashboard1. Choose the right size of your warehouses

As mentioned, the size of your Snowflake warehouse has a direct impact on your monthly bill. 

Your use case will be key in deciding whether to run large or small warehouses. In general, running heavy queries on large warehouses and light queries on small warehouses is the most cost-effective way to go.

But warehouses don't cost anything when they're turned off. This brings us to our next tip:

2. Suspend warehouses that are sitting idle

If you have virtual warehouses that are inactive, you can suspend them to make sure you're not getting charged for unused compute power. 

This feature is enabled automatically, but you can reduce the time it takes for a warehouse to shut down after executing a query. In your Snowflake app, go to Warehouses tab and set a time limit after which a warehouse will autosuspend. You can also turn on auto-resumption to resume the warehouse when it gets queried.

3. Update the query timeout default value

By default, a Snowflake statement runs for 48 hours (172800 seconds) before the system aborts it. 

This means that Snowflake will charge you for the time it took to compute a query that may have been initiated by mistake.

To change the query timeout value, update the STATEMENT_TIMEOUT_IN_SECONDS parameter.

4. Use resource monitors to track credit usage

To make sure you're staying within your Snowflake budget, you can use a resource monitor to suspend a warehouse when it reaches its credit limit. 

A great trick is to set credit thresholds at different levels. For example, you could set an alert for when 70% credit consumption is reached and then another for when 90% of the credit consumption is reached.

Alternatively, you can use cloud cost management tool like Finout to see at a glance whether you're trending toward overspending or underspending (or easily set up cost alerts). 

5. Split large files to minimize processing overhead

To distribute the load across the compute resources in an active warehouse, export large files in smaller chunks using a split utility. 

This will allow Snowflake to divide the workload into parallel threads and load multiple files simultaneously, which will reduce the compute time of your virtual warehouse.

6. Create alerts for reader accounts

To share data with non-Snowflake customers, you can create reader accounts. This will let them execute queries on any data shared with them, but it's you who will bear the cost of their usage.

Keeping track of reader accounts can help you prevent unexpected costs spikes caused by active warehouses that are no longer in use. You can set resource monitors to limit credit usage for reader accounts and make sure you don't get sticker shock at the end of the month.

7. Use zero-copy cloning

This unique feature lets you create database, table and schema clones which use pointers to the live data and don't need additional storage. 

As a result, you can save on storage costs and the time it takes to configure the cloned environment. 

Note that by deleting the original table, storage fees transfer to the cloned table. Always delete both the original and cloned tables you're not using.

Cut costs without compromising performance 

We hope the tips outlined in this article will help you optimize your Snowflake costs. Here's a summary of what you can try:

  • Choose the right size of your warehouses
  • Suspend warehouses that are sitting idle
  • Update the query timeout default value
  • Use resource monitors to track credit usage
  • Split large files to minimize processing overhead
  • Create alerts for reader accounts
  • Use zero-copy cloning

All of these methods are easy to implement and revert if things don't go to plan. Just try them out and keep track of their impact on your monthly bill.


Learn More

A comprehensive guide to Kubernetes cost management tools for 2023

How to monitor Snowflake usage and spend with Datadog

A comprehensive guide to choosing the right FinOps tools in 2023

Recommendations for AWS RDS Cost Reduction

How FinOps helps businesses enjoy the economic advantages of the cloud

Rightsizing tips and recommendations for getting your cloud costs down

Google Cloud Platform (GCP) Services and Pricing

7 ways to reduce AWS S3 spend

FinOps Essentials: Understanding cloud usage optimization

7 Ways to Improve Your Cloud ROI

AWS Recommendations for EC2 Cost Reduction

How FinOps can help cyber security vendors rein in cloud costs

Cloud Economics: Cost of Cloud Services Explained

What is FinOps

How to Choose a Payment Option for EC2 Reserved Instances (RIs)

How FinOps takes cloud cost management to the next level

4 Cloud Cost Management Questions that FinOps Answers

Finout's guide to understanding multiple cloud bills complexity

How to Use AWS Cost and Usage (CUR) Report

What is AWS Cost Usage Report (CUR)?

How Unit Economics help SaaS companies optimize their cloud spend

How FinOps helps make sense of cloud spending complexity

Discovering Finout's brand identity

5 Best Practices for Cloud Cost Management on Google Kubernetes Engine

The complete guide for Google Cloud pricing

DynamoDB Pricing: How to Optimize Usage and Reduce Costs

Introduction to Cost Management in Google Cloud

How to Manage Cloud Costs on GCP and GKE

AWS tagging: Why tagging is not enough

AWS tagging: Top 5 Cost Management Challenges

Finout Integrates with all your usage-based tools