How Snowflake Pricing Works.
Introduction to how Snowflake's pricing works.
For more 🚀
Check what I'm currently working on at Typedef.ai
How Snowflake Pricing Works
Snowflake pricing is a bit complicated, this is a result of usage based pricing together with their evolution into a serverless database. Let’s start with the fundamentals.
The basics
The pricing landing page is an excellent starting point to the Snowflake pricing model and to its complexity. Pricing is affected by the following factors:
-
Platform - Cloud Provider: (AWS, Azure, GCP)
-
Region: This is platform specific, e.g. AWS US West(Oregon)
-
Currency: (USD or EU) This is probably less of a choice but it helps people compensate for currency volatility although USD / EU is not the most volatile forex relationship out there.
After you have chosen the above, you get credit prices for different product bundles. More specifically:
- Standard: The basic offering that most people start with
- Enterprise: Standard + Multi cluster warehouses, Materialized views, additional security features and more
- Business Critical: HIPAA, PCI compliances, AWS Privatelink, “end-to-end” encryption in general this is extremely focused in security and compliance and probably appeals to specific verticals (e.g. healthcare and financial services)
- Virtual Private Snowflake: Probably this is the closest to an on-prem offering with an offering of a private cloud deployment where nothing is shared with other tenants.
Then we also have storage costs on top of the credits, with two options:
- On Demand Storage
- Capacity Storage (Pay upfront)
In terms of pricing increments, each additional tier adds cost to the previous one with the Virtual Private Snowflake being a “contact us” for pricing option.
An example of prices for:
-
Plattform: AWS
-
Region: West(Oregon)
-
Currency: USD
-
Standard: $2 / Credit
-
Enterprise: $3 / Credit
-
Business Critical: $4 / Credit
-
VPS: Contact us
And for storage we have:
- On Demand Storage: $40 / TB / Month
- Capacity Storage: $23 / TB / Month
Based on the above, to understand how pricing works for Snowflake, we need to understand how credits are consumed by interacting with the platform, that’s where things get really interesting.
What consumes Credits
Everything that you do on Snowflake consumes credits, but in different ways. Let’s see the different categories of credit consumption.
- Compute
- Cloud Services
- Storage
Compute
Is the main source of credit consumption, when you run a warehouse and process data. This is the main driver for consumption on Snowflake. The entity that represents compute is the Warehouse and it comes in different sizes from XS to 6X-LARGE with XS costing 1 credit per hour and 6X-LARGE costing 512 credits per hour.
Credits are consumed by a warehouse only when the warehouse is running, if you suspend it you don’t get charged for it. But it is important to note that:
Each time a warehouse is resized, started or resumed, the warehouse is billed for 1 minute worth of usage based on the hourly rate of the warehouse size.
This is important to note because if you plan to resume, execute a query and then suspend a warehouse and the query takes less than a minute to complete, then you’ll pay for at least a minute of execution time.
After the first minute, billing is calculated on a per second basis.
Cloud Services
Many services are billed as part of cloud services but the most important ones are the following.
- Authentication
- Infrastructure Management
- Metadata Management
- Query parsing and optimization
- Access control
- SQL API
What’s interesting with Cloud Services is that you are supposed to be billed for the usage of cloud services that exceeds 10% of the daily usage of the compute resources.
In any case, cloud services are never going to dominate the costs, but it’s interesting to note that even when you load a worksheet on the Snowflake UI, you pay for cloud services.
Data Storage
Is calculated monthly and includes:
- Files stored in Snowflake locations.
- Data stored in database tables, including historical data for Time Travel.
- Historical data maintained for Fail-safe.
Data Storage does not consume credits, instead there’s a flat rate per terabyte.
Examples
Snowflake offers TPCH as a dataset that can be used for testing. Let’s see some examples of queries and their cost.
Query | Cloud Services Cost | Compute Cost |
---|---|---|
tpch_q6 | 0.0000505 | 0.00196419 |
tpch_q18 | 0.0001067 | 0.129133 |
Tech_q9 | 0.0001662 | 0.0827203 |
The above costs are in credits consumed for the total execution of the query. It’s easy to notice the difference in cost between compute and cloud services, in this case the main driver behind cloud services cost is query compilation and optimization.
To get the above numbers I used a Warehouse of size Large and the dataset TPCH with scale factor 1000.
In another post, I’ll go through the tools you have to calculate the above costs for your own workloads.
Check what I'm currently working on at Typedef.ai