Snowflake is one of the most popular data warehouses today.
But is it a good option for your budget? How does Snowflake's pricing model actually work?
And will its auto-scaling features leave you with sticker shock at the end of the month?
We'll explain the details behind Snowflake's pricing so you can make a smart decision for your data needs.
Snowflake is a leading cloud data warehouse with easy scalability and a usage-based, pay-as-you-go pricing model.
It uses columnar, relational databases and supports ANSI SQL. Its data management features make it popular as a data platform for business intelligence, data analytics, machine learning, and other data engineering needs.
Unlike some competitors, Snowflake separates its storage and computing architectures. That means you pay a fairer, clearer price that isn't inflated by features you don't use.
Pricing is based on your Snowflake credit usage with zero flat monthly fees.
But that pricing model, while transparent, is very complex. It depends on dozens of factors that all affect how much you'll pay.
In general, Snowflake pricing is in the mid to high range for data warehouses.
But its cutting-edge speed optimizations can mean that for certain use cases, Snowflake is even cheaper than more cost-effective platforms like Redshift.
Snowflake charges by credit for compute resources, with per-terabyte flat rates for data storage, plus extra fees for a few miscellaneous features.
All prices depend on your cloud provider, region, and Snowflake edition (which we'll discuss later), but US customers can expect to pay around $2.00-4.00 per credit.
We'll start with Snowflake's three compute resources: virtual warehouses, serverless, and cloud services.
A virtual warehouse, commonly just called a warehouse, is a cluster of Snowflake compute resources. There are two different kinds of warehouses: Standard and Snowpark-optimized.
For most data analytics applications you'll want Standard warehouses. But if your processes have large memory requirements, like machine learning training datasets with stored procedures, Snowpark-optimized will work better.
You only pay for a warehouse when it's running, and Snowflake has built-in processes to suspend or resume warehouses automatically, so you only pay for what you use.
Snowflake charges per second, rounded to the nearest thousandth of a credit, with a minimum of 60 seconds. So a process that takes 30 seconds will be billed at 60 seconds.
(Note that 5X-Large and 6X-Large warehouse sizes are not available across all cloud providers and regions.)
For most businesses, virtual warehouse compute power is by far the biggest component of their Snowflake costs. This is how queries, analysis, ETL processes, data pipelines, and more are calculated.
The next type of Snowflake process is serverless compute hours. These are used for some specific processes like:
Serverless processes are handled on Snowflake-managed resources, meaning you don't have control over the warehouse type used. They're automatically scaled depending on the workload.
Snowflake also uses a credit pricing model for serverless compute power. It's billed at one credit per hour, equivalent to an X-Small size virtual warehouse.
The final compute category is Snowflake cloud services. These work behind-the-scenes on overhead tasks, like:
Query parsing and optimization
Request query caching
Cloud services are also billed per credit hour. But unlike other compute services, cloud services have a unique discount model. You only pay when cloud services account for more than 10% of your total daily usage.
For example, if you use 120 Snowflake credits for your virtual warehouse in one day, you have a cloud service discount of 12 credits (10% of 120). If you used 12 cloud service credits, they're all free. If you used 13 cloud service credits, you'll only pay for one.
This discount only applies to cloud services. So if you only use 8 credits for cloud services, a 12-credit discount will pay for it, but the extra 4 discounted credits don't roll over to other compute usage.
Snowflake's unique separate architecture model means you pay for data storage separately from compute resources.
In addition to general data warehousing, storage costs also cover data stored for other uses, like:
Internal stages for data loading
Historical data for Time Travel (backups)
Temporary and transient tables
Snowflake's storage costs are calculated as a flat rate per terabyte, based on the average bytes stored during the month. The flat rate changes on your cloud platform and region, but most US customers should expect to pay around $25-40 per terabyte.
The final Snowflake service with its own billing model is data transfer. Snowflake doesn't charge you for data ingress (importing) but does charge for data egress (exporting).
These charges apply when moving data between regions or between cloud platforms. So if your data is currently stored in Amazon Web Services US East, you would be charged for moving data to Google Cloud or Amazon US West.
Now that we've explained the specific pricing models for Snowflake's services, let's cover the different plans and options you have to choose from.
Knowing how many Snowflake credits you'll use is helpful, but the credit price varies wildly depending on several factors. Here's how to choose the right options for your organization.
Snowflake is not owned by AWS, Microsoft, or Google, meaning its infrastructure is platform-independent. You can choose to run Snowflake in any one of the three major cloud providers: Amazon Web Services (AWS), Google Cloud Platform (GCP), or Microsoft Azure.
AWS is the most popular choice with 80% of Snowflake customers, followed by Azure with 18% and GCP with 2%. If you're already using one ecosystem ---for example, most of your data comes from Microsoft software--- that cloud provider is probably your best choice.
Each cloud provider has a set of regions to choose from. For example, AWS regions in the United States include:
US East (Northern Virginia)
US East (Ohio)
US West (Oregon)
Choose a region based on your regulatory requirements. It's also a good idea to choose a region closest to your end users to reduce latency time. Note that the region doesn't restrict access to your data---so a user in Europe can still access data stored in the US.
Snowflake has four pricing plans which it calls "editions."
Each edition includes all the features of previous editions, with some extra upgrades. You'll pay more for each credit with each edition.
Standard has the lowest credit price. It includes all the most important Snowflake features and is a good balance for smaller organizations without advanced data needs.
Enterprise includes everything in Standard, plus a few features for larger enterprises. These include extended Time Travel (backups) for up to 90 days and column-level security.
Business Critical includes everything in Enterprise, plus better data protections. These include compliance with HIPAA, HITRUST CSF, and PCI DSS among other standards, and data failover/failback support.
Virtual Private Snowflake includes everything in Business Critical in a separate environment. This means your organization's data is isolated from all other customers on Snowflake, providing the highest level of protection for strict data requirements, like those for financial institutions.
Finally, you'll need to decide which payment structure you'll use to buy Snowflake credits.
On-Demand lets you scale up or down as needed, with no usage commitments. It's the most flexible option.
Capacity provides large discounts for committing to use compute power in advance. It's the most affordable option.
If you're still undecided about Snowflake, you can take advantage of its one-month free trial offer with $400 in credits. The trial expires after one month or once you use the $400 in credits, whichever comes sooner.
If you're already using the Snowflake data cloud, how can you see what you're paying?
The easiest way is to review your real-time billing data. You can find this under Account > Billing & Usage.
Alternatively, you can use several SQL functions to research more granular usage. This is helpful if you want to see the usage per database, per data, per query, or another specific requirement.
Snowflake can be cost-effective or expensive, depending on how you use it. It's designed to optimize your processes automatically, but there are some optimization strategies you can take to reduce the amount you pay each billing cycle.
Use SQL to find which queries, tables, or databases cost the most. For example, this script will find the most expensive queries from the last 30 days.
Set resource monitors to manage your data usage. Once triggered, they can notify, notify and suspend, or notify and suspend immediately (which cancels all active queries being executed).
It's easy to think a bigger virtual warehouse works faster or that a smaller warehouse runs lighter, but you'll save the most by using a warehouse that's the right size for your data. Aim for queries that take 5-10 minutes to complete.
Many queries waiting in a queue will slow down the entire workload, resulting in higher charges for the same processes. Try to minimize queues as much as possible.
Built-in Snowflake features like search optimization, table clustering, and materialized views can help you reduce the costs of some queries, especially with very large datasets.
Snowflake is a popular data warehouse choice due to its flexibility and scalability. Its separate architecture and pay-as-you-go pricing model make Snowflake an attractive option for organizations of all sizes.
But the details of Snowflake's pricing model can be confusing.
Understanding what Snowflake charges for your unique needs is the best way to decide which data warehouse will work best for you.
Looking for the best Snowflake ETL tool? Get started with Portable.