One of the most frequently asked questions we get, deals with the costs associated with using Snowflake. In this post, we lift the veil and will explain the drivers that make up your bill. So let’s get started.
In short, Snowflake charges on 2 dimensions:
- The amount of data one stores in their services
- The time required to load that data in their services, to run data transformations on it, and to report back to queries launched by users.
The sum of both dimensions makes up the cost. It’s that simple. Or is it.
The storage charges
Storing data comes with a cost associated, whether that data is used in analytics or not. The cost is metered per megabyte, is balanced per month and the price is quoted per gigabyte for convenience.
Just like any other SAAS company, Snowflake favours upfront payments for the services one plans to use over a period of one year. This includes a hefty 55% discount on the storage costs at the time of writing.
The Compute Charges
Now here is where things get a little more complicated.
First, let’s talk measurements. The cost unit for compute capacity is in credit. A credit is simply the dollar amount to have one XS compute node work for one full hour. The meter starts running as soon as a warehouse is started, and stops as soon as the warehouse stops. Again for simplicity, this cost is quoted in credits per hour. Compute power is charged by the second. However, Snowflake will charge you for one full minute if your warehouse is online for less than one full minute.
Then, let’s talk license model. Snowflake has 5 different editions available, and each of them comes with a different set of capabilities. As we add capabilities to the Standard edition, the price per credit increases. It’s good to know that every Snowflake account is tied to one specific edition. Pricing comes straight off their website at the time of writing.
We did not mention the Virtual Private Snowflake edition. That’s a custom installation for organizations who have strict compliance requirements, so let’s leave that out of scope.
The compute engine size
We now know our price per credit as well as the way credits are measured. The third parameter to take into account it the instance size. These are measured in t-shirt size (ranging from XS to 4XL). Every time one steps up and takes the bigger size, the instance capabilities (CPU, memory) double, but so do the credits that are burned per hour.
As an example: having an XS warehouse online for one full hour, would consume 1 credit. Scaling that warehouse up to a S would account for 2 credits per hour, a M for 4 credits etc.
Total Cost Calculation
To calculate the monthly Snowflake charges, take this formula:
storage cost + (minutes consumed * cost per node * nodes per cluster) by cluster.
How to take it from here
Based on the architecture of your platform, take the number of virtual warehouses/custers, make a guesstimate of the number of minutes required per month.
Let us know if you need help here.