See all Press Releases

Snowflake Cost Reduction: A Practical Guide

10
Nov 2025
5
min read

Get practical snowflake cost reduction tips. Learn how to manage compute, storage, and queries to keep your Snowflake bill under control.

You’ve probably already set your warehouses to auto-suspend and told your team to stop using SELECT *. But if your bill is still climbing, it’s time to look deeper. The low-hanging fruit will only get you so far. True Snowflake cost reduction requires a more comprehensive approach that addresses the root causes of high spend, from hidden storage fees and inefficient data lifecycle management to the fundamental architecture of your data pipelines. In this article, we’ll cover the advanced tweaks you can make inside Snowflake and then explore a more fundamental shift: processing data at the source to dramatically reduce the volume and complexity your warehouse has to handle.

Key Takeaways

  • Control Your Compute Costs from Within: The fastest way to lower your bill is by actively managing your Snowflake environment. Set aggressive auto-suspend policies on warehouses, start with smaller compute sizes, and rewrite inefficient queries that scan more data than necessary.
  • Rethink Your Data Management Habits: How you handle data has a huge impact on your bill. Process information in larger, efficient batches instead of constant small updates, and implement a lifecycle policy to archive or remove old data to cut down on storage costs.
  • Bring Compute to Your Data's Source: The most effective long-term strategy is to process data before it enters Snowflake. By filtering and transforming data where it's generated, you send only clean, valuable information to your warehouse, fundamentally cutting costs on transfer, storage, and compute.

What's Driving Your Snowflake Bill?

That moment when the monthly Snowflake bill arrives can be a little stressful, especially when it’s higher than you expected. Snowflake is an incredibly powerful platform, but that power comes with a consumption-based price tag that can quickly spiral if you’re not paying close attention. Before you can start cutting costs, you need to understand exactly where your money is going. It’s rarely one single thing, but rather a combination of factors across compute, storage, and daily operations.

Think of it like a utility bill. You wouldn’t try to lower your electricity costs without first figuring out if it’s the air conditioning, the old refrigerator, or lights being left on that’s the real problem. We’re going to do the same for your Snowflake account. Let’s break down the four main culprits that are likely inflating your bill so you can take targeted action.

The Real Cost of Compute Warehouses

The vast majority of your Snowflake spending—often over 80%—goes toward compute. These are the virtual warehouses that do all the heavy lifting, from running queries to loading data. The more complex your tasks and the larger your warehouses, the more credits you burn through. The first step to getting this under control is to identify which specific workloads are using the most compute power. Are your ETL jobs running on an extra-large warehouse when a medium would do? Are data science teams running exploratory queries on massive production-sized warehouses? Answering these questions is critical. By understanding your compute consumption, you can begin to explore more efficient architectures, like a distributed data warehouse that processes data closer to its source.

Hidden Fees in Storage and Data Transfer

While compute gets most of the attention, storage and data transfer costs can quietly add up. Every table, even one you haven’t touched in months, costs money to store. Over time, this digital clutter of unused or redundant tables becomes a constant, unnecessary drain on your budget. Beyond simple storage, features like Time Travel and Fail-safe, while useful for data recovery, also contribute to your total storage footprint and costs. Furthermore, if you’re moving data between cloud providers or regions to get it into Snowflake, you’re likely paying egress fees. These transfer costs are especially painful when you realize much of that data could have been processed or filtered before ever leaving its original location, a core principle behind Expanso's solutions.

How Inefficient Queries Inflate Costs

Not all queries are created equal. A poorly written query can be a huge budget killer, forcing your warehouse to run longer and scan far more data than necessary. A classic example is a SELECT * query on a massive table when you only need a few columns. Another common issue is frequency. Running a complex data transformation job every hour when a daily run would suffice can have a massive impact. For instance, switching a job from hourly to daily could cut its compute cost by over 90%. Reviewing your query history to find the longest-running and most frequent queries is a great starting point. Often, these are prime candidates for optimization or for pre-processing data before it lands in Snowflake, especially for use cases like log processing.

The Price of Idle Resources

Paying for resources you aren’t even using is one of the most frustrating ways to waste money. In Snowflake, this happens when a virtual warehouse is left running but isn't actively processing any queries. Even when idle, an active warehouse consumes credits. Luckily, this is also one of the easiest problems to fix. Snowflake has an auto-suspend feature that automatically shuts down a warehouse after a set period of inactivity. Reducing this idle time is a highly effective way to save money. If your warehouses are configured to wait 30 minutes before suspending, that’s 30 minutes of potential waste every time a job finishes. Setting an aggressive auto-suspend policy—even just a few minutes—ensures you only pay for the compute you actually use, which is a key part of the Expanso philosophy on efficient resource use.

How to Optimize Your Warehouse Configuration

Your virtual warehouses are the engines of your Snowflake environment, and they're also the primary driver of your compute costs. Misconfigurations here can lead to significant budget overruns, even if your queries are perfectly tuned. The key is to align your warehouse setup with your actual workload patterns, ensuring you have enough power when you need it without paying for idle resources. It’s a balancing act, but getting it right provides a strong foundation for cost control.

Think of it less as a one-time setup and more as an ongoing practice of observation and adjustment. As your data and query patterns evolve, so should your warehouse strategy. By focusing on four key areas—right-sizing, automating suspension, managing clusters intelligently, and setting safety nets for queries—you can make a substantial dent in your monthly bill. These adjustments are often simple to implement but have a compounding effect on your savings. A well-configured warehouse environment is the first step toward a more predictable and efficient data platform, which is a core principle behind a distributed computing strategy.

Right-Size Your Virtual Warehouses

It’s tempting to throw a larger warehouse at a performance problem, but this is often the most expensive solution. In Snowflake, the cost doubles with each size increase, so over-provisioning can burn through your budget fast. The best approach is to start with a smaller warehouse size and only scale up if performance metrics show it's necessary. For many routine tasks, a smaller warehouse is perfectly adequate.

Monitor your query performance and queuing. If queries are consistently slow or getting queued up, that’s your signal to test a larger size. But don’t just set it and forget it. Treat warehouse sizing as an iterative process. This ensures you’re only paying for the compute power you actually need. You can always find more detailed guidance in Snowflake's own documentation on warehouses.

Implement Auto-Suspend and Auto-Resume

An active warehouse that isn't running queries is like leaving the lights on in an empty room—it’s pure waste. The auto-suspend feature is your best defense against this. By setting a low auto-suspend time, you ensure that warehouses pause quickly when they become idle. A good starting point is 60 seconds. This is aggressive enough to capture significant savings but not so short that you risk paying twice for quick, back-to-back tasks.

The companion feature, auto-resume, ensures the warehouse wakes up automatically when a new query is submitted. This combination gives you the best of both worlds: on-demand compute power without the cost of 24/7 availability. Implementing this simple rule across all your warehouses is one of the quickest ways to cut costs and is a fundamental part of building efficient data solutions.

Use a Multi-Cluster Warehouse Strategy

Multi-cluster warehouses are fantastic for handling high-concurrency workloads, as they can automatically spin up new clusters to manage query queues. However, a common mistake is setting the minimum number of clusters to more than one. If you start with two or three clusters by default, you are paying for that capacity even during off-peak hours when a single cluster would suffice.

To use this feature cost-effectively, configure your multi-cluster warehouses to start with a minimum of one cluster. Let Snowflake’s scaling policy add more clusters as query loads increase and then scale them back down as demand subsides. This "scale-out" approach lets you manage concurrency without pre-paying for capacity you might not use, ensuring you only pay for what you need, when you need it.

Set Query Timeouts and Limits

A single runaway query can keep a warehouse active for hours, racking up huge, unexpected costs. This often happens with ad-hoc analytical queries or due to a simple mistake in the SQL code. Setting a statement timeout is a critical safety net that prevents this. You can set a parameter, like STATEMENT_TIMEOUT_IN_SECONDS, at the account, user, or session level.

When a query exceeds this time limit, Snowflake automatically cancels it, protecting your budget from a costly mistake. This not only prevents bill shock but also helps identify inefficient queries that need to be optimized. By flagging these long-running jobs, you can get a better handle on performance issues, which often become apparent during log processing and analysis. Start with a reasonable timeout (like one hour) and adjust based on your specific workload requirements.

Fine-Tune Your Queries to Cut Costs

Configuring your warehouses correctly is a great first step, but the queries you run are what actually consume your compute credits. An inefficient query running on a perfectly sized warehouse can still blow through your budget in minutes. Think of it like having a fuel-efficient car but keeping your foot slammed on the gas pedal. By focusing on query performance, you can make a significant and immediate impact on your Snowflake spending.

The best part is that well-written queries not only save money but also run faster, delivering insights to your team more quickly. It’s a win-win. Let’s look at a few practical ways you can optimize your queries to reduce compute time and lower your monthly bill.

Master Query Performance Tuning

The most effective way to save money is to prevent unnecessary costs from happening in the first place. Proactive query performance tuning is your best defense against runaway compute usage. Before you even think about resizing a warehouse, take a look at the queries running on it. Snowflake’s Query Profile is an excellent tool for this, helping you visualize every step of a query’s execution plan and pinpoint bottlenecks.

Look for common issues like "exploding" joins that create a massive number of rows, or full table scans on large tables where a more targeted approach would work better. By identifying and rewriting these inefficient queries, you can often achieve dramatic cost savings without changing anything else about your infrastructure.

Use Clustering Keys and Partitioning

For your largest tables, proper clustering can be a game-changer for query performance and cost. A clustering key organizes your data within the table based on the contents of one or more columns. Think of it like a well-organized filing cabinet. When you run a query that filters on a clustered column, Snowflake knows exactly which micro-partitions to scan instead of having to check every single one.

This process, known as partition pruning, drastically reduces the amount of data the query needs to read, which means it runs faster and uses fewer compute credits. While there is a small cost associated with maintaining the clustering, the savings on your most frequent and heaviest queries will almost always outweigh it.

Optimize Your Result Cache

One of Snowflake’s most powerful cost-saving features is its result cache. When you run a query, Snowflake automatically caches the result set. If anyone runs that exact same query again within 24 hours and the underlying data hasn't changed, Snowflake simply returns the cached result without spinning up a virtual warehouse. This uses zero compute credits.

This is especially useful for BI dashboards and reporting tools that repeatedly run the same queries. Encourage your teams to build reports that reuse queries whenever possible. It’s also important to know that even minor changes to a query—like adding a comment or changing capitalization—will cause a cache miss. Standardizing your queries can help you get the most out of this free performance feature.

Avoid Unnecessary Data Scans

Many teams fall into the trap of reprocessing entire datasets when they only need to work with new or updated information. Instead of rebuilding massive tables from scratch every time your ETL pipeline runs, adopt an incremental approach. By designing your jobs to only process the data that has changed since the last run, you can cut your compute consumption by 90% or more.

This same principle applies to your analytical queries. Always use the most specific WHERE clause possible to limit the amount of data Snowflake has to scan. The core idea is to minimize data movement and only touch the data you absolutely need. This is a foundational concept behind modern, efficient architectures that process data at the source to reduce downstream costs.

How to Monitor and Track Your Snowflake Spend

You can’t fix a spending problem you can’t see. Gaining clear visibility into your Snowflake usage is the first step toward reining in your costs. Without proper monitoring, even the most well-intentioned optimization efforts are just shots in the dark. Getting a handle on your consumption patterns helps you identify waste, attribute costs to the right teams, and make data-driven decisions about where to focus your efforts. It’s about moving from reactive bill shock to proactive cost management. Let’s walk through some practical ways to set up a robust monitoring and tracking system.

Use Built-In Resource Monitors and Alerts

Your first line of defense against runaway costs is Snowflake’s own toolkit. The platform includes resource monitors that act as spending watchdogs for your virtual warehouses. You can configure these monitors to automatically send alerts when your credit consumption hits certain thresholds within a specific time frame. For more aggressive control, you can set them to suspend a warehouse entirely once it reaches its limit, preventing any further credit usage. This is a simple yet powerful way to enforce budgets and ensure a single rogue query or inefficient job doesn't blow up your monthly bill.

Leverage Third-Party Monitoring Tools

While Snowflake’s native tools are essential, specialized third-party platforms can provide a more granular view of your spending. These tools often offer dashboards that visualize cost trends, identify the most expensive queries, and help you understand usage patterns at a user or query level. Some can even show you the cost of individual queries before you run them. By integrating these tools, you can get deeper insights that help you pinpoint specific inefficiencies that might otherwise go unnoticed. This level of detail is crucial for teams looking to implement a serious FinOps strategy and build a culture of cost accountability.

Track Usage by Department

In a large organization, it’s easy for Snowflake costs to become a black box. To create accountability, you need to track spending by department or project. A straightforward way to do this is by assigning separate virtual warehouses to different teams, like marketing, data science, and finance. This allows you to see exactly who is spending what. You can then implement a chargeback or showback model, making each department responsible for its own consumption. This visibility not only helps you manage the overall budget but also encourages individual teams to adopt more cost-conscious practices with their data usage.

Automate Spending Controls

Automation is your best friend when it comes to consistent cost control. Beyond setting up alerts, you should enforce strict automated policies on your warehouses. The most critical one is auto-suspend. Ensure every warehouse is configured to automatically pause when it's not in use. While the default setting might be several minutes, consider reducing the auto-suspend timer to 60 seconds for warehouses with sporadic workloads. This simple change ensures you aren’t paying for idle compute resources, which can add up to significant waste over time. It’s a small tweak that delivers consistent savings without requiring manual intervention.

Storage Strategies That Lower Your Bill

While compute costs often get the most attention, your Snowflake storage bill can quietly grow into a major expense. Every terabyte of data you store, plus the historical data kept for Time Travel and Fail-safe, adds up. The good news is that you have significant control over these costs.

Implementing a smart storage strategy isn't about deleting valuable data; it's about storing it in the most cost-effective way based on its lifecycle and how you use it. By being intentional with your data retention policies, choosing the right table types for the job, and leveraging external storage for less frequently accessed data, you can make a significant dent in your monthly bill. These adjustments ensure you’re only paying for the storage you truly need.

Manage Your Data Lifecycle and Retention

Not all data is created equal, and it doesn't all need to be stored in high-performance storage forever. A solid data lifecycle management policy is your first line of defense against runaway storage costs. Start by classifying your data based on how frequently it's accessed—hot, warm, or cold. This helps you define clear retention rules. For example, recent transactional data might be "hot" and need immediate access, while logs from two years ago are "cold" and rarely queried. By setting automated policies to archive or delete data that's no longer needed for day-to-day operations, you can systematically reduce your storage footprint and ensure you're not paying to keep irrelevant data on hand.

Use Transient and Temporary Tables

Do you have tables that only exist for a short time, like staging tables for an ETL process? If so, you should be using transient or temporary tables. Standard permanent tables in Snowflake come with built-in safety nets like Time Travel and Fail-safe, which are great for critical data but add to storage costs. Transient tables skip these features, making them a much cheaper option for data that doesn't need long-term protection. They are perfect for tables that are "often deleted and remade." Using them for the right purpose is a simple switch that directly lowers your storage costs without any real downside for non-critical, temporary datasets.

Optimize Time Travel and Fail-Safe Settings

Snowflake's Time Travel feature is incredibly powerful, letting you query or restore data from a previous point in time. But this power comes at a cost, as it requires storing historical versions of your data. By default, the retention period might be longer than you actually need. Take a close look at your tables and ask yourself, "How many days of history do we truly need?" For many datasets, the standard setting is overkill. Adjusting the DATA_RETENTION_TIME_IN_DAYS parameter to match your actual business requirements can lead to immediate savings. Don't pay for a 90-day history on a development table when one day is more than enough.

Use External Tables for Cold Data

For large datasets that you don't need to query often, keeping them in Snowflake's managed storage can be expensive. This is where external tables come in. They allow you to query data that lives in your own cloud storage, like Amazon S3 or Azure Blob Storage, without actually ingesting it into Snowflake. You get the flexibility to analyze the data using Snowflake's powerful query engine while paying much lower rates for object storage. This approach is ideal for historical archives or raw data logs. It’s a core principle of a distributed data warehouse, where you process data where it lives to reduce movement and cost.

Avoid These Common Snowflake Cost Traps

Snowflake’s pay-as-you-go model is a huge advantage, but it can also lead to sticker shock if you aren’t careful. Many teams fall into a few common traps that quietly drive up their monthly bills. These aren't complex technical failures; they're often simple oversights in configuration or process that accumulate over time. Think of them as small leaks that can eventually sink the budget.

The good news is that these issues are entirely avoidable. By establishing a few best practices and building good habits around warehouse management, data processing, and user access, you can get ahead of runaway costs. It’s about being intentional with how you use your resources. Let’s walk through some of the most frequent mistakes we see and the straightforward steps you can take to correct them, ensuring your Snowflake investment delivers value without unnecessary expense. This proactive approach is key to maintaining control and predictability over your data platform spending.

Forgetting to Auto-Pause Warehouses

This is one of the easiest and most costly mistakes to make. A virtual warehouse consumes credits any time it’s running, whether it’s actively processing queries or sitting completely idle. Forgetting to enable the auto-pause feature is like leaving the lights on in an empty office overnight—you’re paying for a resource you aren’t using. Make it a standard practice to check that every warehouse is configured to automatically suspend after a short period of inactivity, such as five or ten minutes. This single setting ensures you only pay for compute when you actually need it, instantly cutting out a major source of wasted spend.

Over-Provisioning Compute Resources

It can be tempting to choose a larger warehouse size "just in case," but this habit is a direct path to an inflated bill. Snowflake’s warehouse costs double with each size increase, so an over-provisioned warehouse burns through your budget twice as fast as it needs to. The best approach is to start small. Begin with an X-Small warehouse for new workloads and monitor performance. Only scale up if you encounter query performance issues or bottlenecks that a larger size would solve. This principle of applying the right-sized compute for the job is fundamental to an efficient data processing strategy.

Choosing Small Updates Over Batch Processing

Snowflake is an analytical powerhouse designed for processing massive amounts of data at once. It is not optimized for frequent, small, row-by-row updates like a traditional transactional database (OLTP). Teams that treat it like one by running many small UPDATE, INSERT, or DELETE statements end up paying a premium for inefficient compute cycles. Instead, you should stage your changes and process them in larger, less frequent batches. This approach aligns with how the platform is designed to work and can reduce the cost of your data ingestion and transformation pipelines by 90% or more.

Giving Unrestricted Access to Large Warehouses

Not every user or query needs the power of a 2XL warehouse. When you give everyone on your team access to the largest, most expensive warehouses, you create a significant risk of accidental overspending. A single, poorly written query run by an analyst on an oversized warehouse can burn through a surprising amount of your budget in minutes. The solution is to implement proper security and governance through role-based access controls. Limit the use of larger warehouses to specific teams or service accounts whose workloads genuinely require that level of power. This prevents costly accidents and encourages users to be more mindful of the resources they consume.

Data Processing Strategies to Reduce Expenses

How you manage your data pipelines has a direct and significant impact on your Snowflake bill. While optimizing warehouses and queries is crucial, you can achieve even greater savings by adopting smarter data processing habits before your data even lands in Snowflake. Think of it as proactive cost control. Instead of just reacting to a high bill by pausing a warehouse, you can build efficiency directly into your ETL/ELT workflows.

By refining how you batch, transform, and load data, you reduce the strain on your compute resources from the very beginning. This approach not only cuts costs but also leads to more stable, reliable, and faster data pipelines. Your team spends less time firefighting expensive, inefficient jobs and more time delivering insights. Let’s walk through a few practical strategies that can make a real difference in your monthly spend.

Batch Process for ETL Pipeline Efficiency

It can be tempting to treat Snowflake like a traditional database, sending a constant stream of small updates and inserts. This is one of the fastest ways to run up your bill. Every time you run a small DML operation, Snowflake may need to rewrite an entire micro-partition (a large chunk of your data) in the background. This constant rewriting consumes a surprising amount of compute credits.

Instead, group your changes into larger, less frequent batches. By consolidating your updates, inserts, and deletes into a single, larger operation, you allow Snowflake to perform the work much more efficiently. Schedule your ETL jobs to run periodically—every hour or every few hours, for example—rather than every few minutes. This simple shift from micro-batching to batch processing can dramatically reduce background compute usage and lower costs.

Create Materialized Views for Frequent Queries

If you have dashboards or reports that run the same complex, resource-intensive queries over and over, you’re essentially paying for the same computation repeatedly. Materialized views offer a straightforward solution. A materialized view pre-computes and stores the results of a query, so when users access it, they’re just reading the stored result instead of re-executing the entire query.

This is a game-changer for BI tools and frequently accessed analytics. You pay the compute cost once to create or refresh the view, and subsequent reads are incredibly fast and cheap. You can even use Snowflake Tasks to automatically refresh the materialized views on a set schedule, ensuring your data stays fresh without manual work. This keeps your dashboards snappy and your compute costs predictable.

Minimize Data Movement and Transfers

Moving massive volumes of data is expensive, both in terms of egress fees from cloud providers and the compute required to process it. A full table reload every time you run a pipeline is often unnecessary and wasteful. A more cost-effective approach is to process data incrementally. By identifying and processing only the new or changed records since the last run, you can reduce your data processing volume by 90% or more.

This method, often implemented using Change Data Capture (CDC) techniques, ensures you’re not wasting credits re-processing data that hasn’t changed. It’s about working smarter, not harder. The less data you have to move and transform within your pipeline, the faster your jobs will run and the lower your Snowflake bill will be. This is a foundational principle of efficient, modern data architecture.

Pre-Process Data Before You Load It

The most expensive data to process is the data you don’t need. Filtering, cleaning, and structuring your data before it enters your Snowflake environment can lead to massive savings. By handling this work upstream, you reduce the volume of data you store and the complexity of the transformations you have to run using Snowflake’s virtual warehouses. For instance, you can filter out noisy, low-value logs or deduplicate records at the source.

Optimizing file sizes before loading also makes a difference. Loading many tiny files or one massive file is less efficient than loading well-sized chunks of around 100-250MB. Effective log processing and pre-staging can streamline ingestion, ensuring you’re only paying to store and analyze the data that truly matters for your business.

A Smarter Approach: How Distributed Computing Cuts Costs

The strategies we’ve covered so far are great for optimizing your existing Snowflake setup. But what if you could fundamentally change your data architecture to prevent those high costs from ever happening? Instead of focusing solely on fine-tuning your warehouses and queries, you can adopt a distributed computing model that processes data before it even reaches Snowflake. This approach is all about bringing compute to your data, not the other way around.

Think about it: a huge chunk of your Snowflake bill comes from paying for compute and storage to process massive volumes of raw data. By handling the initial filtering, transformation, and aggregation closer to the source—whether that’s in another cloud, an on-premise server, or an edge device—you send only the clean, valuable data to your warehouse. This dramatically reduces the workload on Snowflake, leading to significant savings on compute, storage, and data transfer fees. It’s a proactive strategy that tackles the root cause of high data warehousing bills, giving you a more efficient and cost-effective pipeline. This is the core idea behind right-place, right-time compute, ensuring every piece of data is handled in the most efficient location.

Process Data at the Source

The traditional approach of extracting, loading, and then transforming (ELT) data in a central warehouse is incredibly expensive. You’re paying to move and store raw, unfiltered data, much of which might be redundant or low-value. A distributed approach flips this model on its head. By processing data at the source, you can clean, filter, and normalize it before it ever hits the network.

Instead of re-doing all your data every time, you can process only the new or changed parts. This simple shift can cut data processing costs by 90% or more in some cases. For example, you can filter out noisy logs or duplicate records right where they’re generated, ensuring only high-signal data is sent to Snowflake for analysis. This lightens the load on your warehouse and makes your entire analytics pipeline faster and more efficient.

Cut Data Transfer and Storage Costs

Moving data around is expensive, especially between different cloud providers or from on-premise locations. Every gigabyte transferred adds to your bill. When you process data at the source, you’re not just saving on compute—you’re also slashing these data transfer costs. By transforming and aggregating data locally, you drastically reduce the volume of data that needs to be moved across the network.

This also helps you load data into Snowflake more efficiently. For instance, you can ensure files are the right size—around 100-250MB—before loading them. Processing many tiny files or one massive file is less efficient and can drive up costs. A distributed platform can pre-process and batch data into these optimally sized chunks, streamlining ingestion and further reducing your spend on your distributed data warehouse.

Optimize Your Hybrid Cloud Strategy

Most enterprises today operate in a hybrid or multi-cloud environment. While Snowflake can connect data across AWS, Azure, and Google Cloud, moving data between these environments can create complexity and high egress fees. A distributed computing layer acts as an intelligent fabric over your entire infrastructure, allowing you to run jobs wherever your data lives.

This means you can process AWS data on AWS and Azure data on Azure, then send only the compact results to Snowflake. This approach is a game-changer for security and governance, as it helps you meet data residency requirements like GDPR by keeping sensitive data within its geographic or network boundaries. You get the flexibility of the hybrid cloud without the punishing costs of constant data movement.

Apply Right-Place, Right-Time Compute

Ultimately, the smartest way to reduce costs is to use your resources more intelligently. Instead of relying on a single, massive compute engine for every task, you can apply right-place, right-time compute. This means running each processing job in the most logical and cost-effective location. Simple filtering might happen on an edge device, while more complex aggregations run in the cloud region where the data is stored.

This is a more advanced strategy than simply setting your Snowflake warehouse to auto-suspend after 60 seconds. It’s about proactively designing a data flow that minimizes data movement and leverages the most appropriate compute resources for each stage of the pipeline. By bringing compute to the data, you create a more resilient, secure, and cost-effective architecture that’s built for the demands of modern data operations.

Related Articles

Frequently Asked Questions

What's the quickest way to start saving money on Snowflake? The fastest way to make a dent in your bill is to tackle idle compute resources. Go through all of your virtual warehouses and make sure the auto-suspend feature is enabled and set to a low number, like 60 seconds or five minutes. This single change ensures you stop paying for warehouses the moment they finish a job, which can eliminate a surprising amount of waste from your daily operations.

My queries are slow, so should I just increase the warehouse size? While it's tempting to solve performance issues by simply choosing a larger warehouse, that's often a costly and temporary fix. Before you scale up, you should first investigate the query itself. A poorly written query on a massive warehouse will still be inefficient and expensive. Use Snowflake’s Query Profile to find the bottlenecks in your SQL code. Optimizing the query to scan less data will almost always give you better results and save you more money in the long run.

How can I figure out which specific queries or teams are driving up my costs? To get a clear picture of your spending, you need to connect usage to specific activities. Start by looking at Snowflake’s query history to identify the longest-running and most frequent queries, as these are often the most expensive. For a broader view, you can assign separate virtual warehouses to different teams or projects. This makes it easy to see which departments are using the most credits, which helps you create accountability and focus your optimization efforts where they'll have the most impact.

Is it better to use transient tables or just adjust my Time Travel settings to save on storage? These two strategies solve slightly different problems. Adjusting your Time Travel retention period is a great way to reduce storage costs on your permanent, critical tables by not keeping historical data for longer than you need. Transient tables are best used for data that is temporary by nature, like staging tables in an ETL process. Since they have no Time Travel or Fail-safe period, they are much cheaper for data that doesn't need recovery protection. The best approach is to use both: set appropriate retention policies on permanent tables and use transient tables for temporary ones.

You mentioned processing data before it gets to Snowflake. How is that different from just optimizing my ETL jobs? Optimizing your ETL jobs within Snowflake is about making your transformations more efficient once the data is already there. Processing data before it arrives is a more fundamental strategy. It involves using a distributed computing approach to filter, clean, and aggregate your raw data at its source, whether that's in another cloud or on-premise. This means you send a much smaller volume of high-value data to Snowflake, which drastically cuts costs on storage, data transfer, and the compute needed for final analysis. It’s about tackling the cost at the root rather than just managing it downstream.

Ready to get started?

Create an account instantly to get started or contact us to design a custom package for your business.

Always know what you pay

Straightforward per-node pricing with no hidden fees.

Start your journey

Get up and running in as little as
5 minutes

Backed by leading venture firms