April 13, 2023

Understanding Snowflake Cloud Services Costs

By John Thomason

The Snowflake Data Cloud is a powerful platform for data-driven organizations, and as Snowflake’s Partner of the Year, phData is here to help guide organizations into getting the most out of Snowflake. 

A significant part of our guidance is minimizing the costs associated with Snowflake. 

Snowflake’s costs primarily come from processing data on its Virtual Warehouses (the Compute Costs). The other cost that all Snowflake users should be knowledgeable about is the Snowflake Cloud Services Cost.

In this blog, we’ll explain what the Snowflake Cloud Services that make up this cost are, why it is important for Snowflake users to understand this cost, how it impacts the total cost for Snowflake usage, and how to reduce the Cloud Services cost. 

What Are Snowflake’s Cloud Services?

Snowflake’s Cloud Services are a collection of services to manage and maintain all the different aspects of the platform. These services are run in the background by Snowflake. Snowflake’s Cloud Services include:

  • Authentication – Identifies and validates users when they log into Snowflake.
  • Access Controls – Maintains the roles and privileges users are assigned to access objects in Snowflake.
  • Infrastructure Management – Oversees the resources (warehouses etc) that makeup Snowflake.
  • Metadata Management – Handles all data about the data and objects processed by Snowflake.
  • Security – Administers Snowflake’s security, such as data encryption.
  • Sharing and Collaboration – Manages how data is shared between Snowflake accounts.
  • SQL Optimization – Processes the user-entered SQL queries to be run in Snowflake.
  • Transactions – Ensures SQL queries are ACID compliant.
The costs of running all these different services are summed up into the Snowflake Cloud Services Cost.

What is the Snowflake Cloud Services Cost?

Snowflake Cloud Services are run in the background by Snowflake. As they run, they consume Snowflake credits. This consumption is totaled in the Snowflake Cloud Services Cost. This cost is created daily and is included along with the Compute Cost to calculate the total cost for that day. 

However, the total cost has a Credit Adjustment for Cloud Services value which is subtracted from the total by Snowflake. This adjustment is set to either 10% of the Compute Cost or the Snowflake Cloud Services Cost, whichever is smaller. So it is important to pay attention to the Snowflake Cloud Services Cost because if the cost does not exceed 10% of the Compute Cost, it will not impact the total on the invoice.

How Snowflake Cloud Services Cost Impacts the Total Cost

As mentioned in the previous section, Snowflake provides a daily total cost for using the platform. This total cost sums up the Compute Cost, Snowflake Cloud Services Cost, and a Credit Adjustment for Cloud Services. The Credit Adjustment for Cloud Services is set to either 10%of the Compute Cost or the Snowflake Cloud Services Cost whichever is smaller.

The formula for calculating the daily total cost for Snowflake is:

Total Cost = Compute Cost + Snowflake Cloud Services Cost – Credit Adjustment for Cloud Services

We will go through examples to illustrate how Snowflake Cloud Services Cost impacts the total cost. The table below lists four dates with their associated costs and totals. The values are in Snowflake credits. 

Date Compute Cost Snowflake Cloud Services Cost Credit Adjustment for Cloud Services Total Cost
Oct 1 110 30 11 129
Oct 2 130 12 12 130
Oct 3 100 4 4 100
Oct 4 70 12 7 75

Oct 1 Example

The Credit Adjustment for Cloud Services is set to either 10% of the Compute Cost, which in this case is 11 (10% of 110) or 30 the Snowflake Cloud Services Cost. Since 11 is less than 30, the Adjustment is set to 11. The formula for this date looks like Total Cost = 110 + 30 – 11  = 129. 

The total cost for Oct 1 is 129 credits. 

*The Snowflake Cloud Services Cost exceeded 10% of the Compute Cost, increasing the total cost. 

Oct 2 Example

The Credit Adjustment for Cloud Services is set to either 10% of the Compute Cost which in this case is 13 (10% of 130) or 12 the Snowflake Cloud Services Cost. Since 12 is less than 13, the Adjustment is set to 12. The formula for this date looks like Total Cost = 130 + 12 – 12  = 130. 

The total cost for Oct  2 is 130 credits. 

*The Snowflake Cloud Services Cost is effectively nullified as it did not exceed 10% of the Compute Cost. 

Oct 3 Example

The Credit Adjustment for Cloud Services is set to either 10% of the Compute Cost which in this case is 10 (10% of 100) or 4 the Snowflake Cloud Services Cost. Since 4 is less than 10, the Adjustment is set to 4. The formula for this date looks like Total Cost = 100 + 4 – 4  = 100. 

The total cost for Oct 3 is 100 credits. 

*The Snowflake Cloud Services Cost is effectively nullified as it did not exceed 10% of the Compute Cost. 

Oct 4 Example

In our final example, the Credit Adjustment for Cloud Services is set to either 10% of the Compute Cost, which in this case is 7 (10% of 70), or 12 the Snowflake Cloud Services Cost. Since 7 is less than 12, the Adjustment is set to 7. The formula for this date looks like Total Cost = 70 + 12 – 7  = 75. 

So the total cost for Oct 4 is 75 credits. 

*The Snowflake Cloud Services Cost exceeded 10% of the Compute Cost, increasing the total cost.

How to Reduce the Snowflake Cloud Services Cost

There are several actions users can take to reduce their Snowflake Cloud Services Cost. All these actions impact the Metadata Management service, whose usage is included in the Snowflake Cloud Services Cost.

Action 1: Copy Commands

When using Snowflake COPY commands, only copy a targeted list of files. For example, if using Amazon S3 Storage consider setting up the bucket’s directory structure so it uses date prefixes in the folders to separate out the files by those dates. The COPY command can then use the date to get a smaller target list of files (instead of every file).

Action 2: Reduce Data Definition Language Operations

Review and reduce frequent SQL Data Definition Language (DDL) operations, Cloning, simple queries, and Information_Schema queries. If the DDL/clone operations involve large objects, consider reducing the scope of the operation (clone-specific tables instead of an entire schema, for example). The costs of running frequent simple queries or queries to the Information_Schema will increase over time, increasing the Snowflake Cloud Services Cost.

Action 3: Reduce Show Commands

Review and reduce frequent Show commands. Show commands often come from third-party tools connected to Snowflake. Users should contact those parties to change their frequency of runs.

Action 4: Bulk/Batch Data Loads

Do bulk/batch data loads instead of single-row inserts. Snowflake is not an OLTP platform so doing single-row inserts is not efficient.

Action 5: Rewrite Complex SQL Queries

Large queries take a significant amount of time to compile which happens in the Snowflake Cloud Services. Consider doing these actions in the Snowflake to reduce the Snowflake Cloud Services Cost.

Closing

Snowflake’s Cloud Services are an important part of Snowflake. They operate in the background so that users can focus on using the platform to create their data solutions. However, these services have the Snowflake Cloud Services Cost associated with them.  This cost can increase the overall cost of using Snowflake. 

Fortunately, users can take action to reduce the Snowflake Cloud Services Cost by changing how they use Snowflake. This explanation of the Snowflake Cloud Services Costs is just some of the expertise we at phData provide.

For more information, check out all the services and guidance we provide on our Snowflake page!

FAQs

				
					select
    WAREHOUSE_NAME
    ,SUM(CREDITS_USED) as CREDITS_USED
    ,SUM(CREDITS_USED_CLOUD_SERVICES) as CREDITS_USED_CLOUD_SERVICES
    ,SUM(CREDITS_USED_CLOUD_SERVICES)/SUM(CREDITS_USED) as PERCENT_CLOUD_SERVICES
from SNOWFLAKE.ACCOUNT_USAGE.WAREHOUSE_METERING_HISTORY
where TO_DATE(START_TIME) >= DATEADD(month,-1,CURRENT_TIMESTAMP())
    and CREDITS_USED_CLOUD_SERVICES > 0
group by 1
order by 4 desc;
				
			

Data Coach is our premium analytics training program with one-on-one coaching from renowned experts.

Accelerate and automate your data projects with the phData Toolkit