Snowflake is an insanely cool next generation SaaS data warehousing solution that operates in the cloud!
Engineered from the ground up, Snowflake takes advantage of the elasticity that the cloud provides – and is truly revolutionary in every aspect.
Harnessing the power of the cloud, Snowflake has unique capabilities in the form of unlimited and instant scalability, making it perhaps the ultimate data warehouse solution. Cloud elasticity is very much at the heart of Snowflake – making its unique architecture and value proposition difficult to compete with in the market.
From an end user perspective, Snowflake is incredibly appealing. Building data warehouses and petabyte data scaled solutions without having to worry about on-prem compute and storage issues means your focus remains solely on the data itself and even more importantly, the analytics you derive from
In this course, you'll learn about the many distinguishing features that set Snowflake apart from its competitors.
For any feedback, queries, or suggestions relating to this course, please contact us at support@cloudacademy.com.
Learning Objectives
- Learn about Snowflake and how it can provision cloud-hosted data warehouses
- Learn how to administrate a Snowflake data warehouse
- Learn how to scale Snowflake data warehouses instantly and on-demand
- Learn how to use Snowflake to perform analytics on petabyte scale and beyond datasets
Intended Audience
- Anyone interested
in learning about Snowflake, and the benefits of using it to build a data warehouse in the cloud
Prerequisites
To get the most from this course, it would help to have a basic understanding of:
Basic Cloud and SaaS knowledge
- Basic DBA knowledge
- Basic SQL knowledge
Welcome back. In this lesson, I'll provide a quick review of Snowflake pricing, making sure that you understand where and how cost is incurred, and how it is paid for through the use of Snowflake credits. Let's begin. For starters, Snowflake builds you on a monthly cycle, with bills being generated towards the end of each month. There are three main types of costs associated with running a Snowflake account. They are data storage, virtual warehouses or compute time, and cloud services, the running time associated with the cloud services layer. Regardless of how cost is incurred, it's important to know and acknowledge that Snowflake's architecture has been purposely designed in a way that works for you to reduce and minimize expenditure.
A quick example of this is the auto suspend feature on virtual warehouses which automatically kicks in when an activity is detected. Beyond the three main types of cost highlighted here, there are other residual types of cost, such as those involved with data transfer and all costs attributed to, say, the serverless features of Snowflake, for example, automatic clustering and/or Snowpipe, and/or database replication. Having just said that, the majority of costs that you incur will still likely be due to the three main cost types discussed earlier. I'll now review these individually in more detail.
Drilling into virtual warehouses, when a virtual warehouse is running, it does so at a cost to the account owner. Billing is measured in seconds with a default 62nd billing period for any launch or resumed launch. To minimize the amount of compute costs associated with running a virtual warehouse, ensure to set up auto suspend policies to kick in when idle time is detected. The exact rate at which you are billed is set in credits per hour and is dependent on the size of the virtual warehouse. Snowflake provides a range of predetermined virtual warehouse sizes, starting with the x small and going all the way up to the largest, the 6x large, currently only available on AWS. Each successive size of a virtual warehouse is a doubling in terms of its compute power and cost. Credits are nothing more than a unit of virtual measure used to pay for the consumption of resources within Snowflake, including compute resources associated with running a virtual warehouse.
Now, when it comes to purchasing Snowflake credits, the actual real dollar cost in doing so, again, depends on the specifics of your Snowflake account, such as the cloud provider and region it is deployed within and which Snowflake version you're actually running. Choices being standard, enterprise, or business-critical. To give you an idea of how the USD dollar cost per credit fluctuates, consider the following two scenarios. Scenario 1, Snowflake deployed and AWS in the US East region. The USD cost is $2 per credit for the standard edition, $3 per credit for enterprise, and $4 per credit for business-critical. Scenario 2, Snowflake deployed in Asia and the Australia East region. The USD cost is $2.75 per credit for the standard edition, $4.05 per credit for enterprise, and $5.50 per credit for business-critical. With this in mind, you should carefully consider which version of Snowflake you require and the cloud provider in region you provision your Snowflake account into.
When it comes to data storage costs, Snowflake uses a simple pricing model charged monthly based on the average amount of compressed data stored each day in your Snowflake account. Pricing is then set at a flat rate per terabyte. The exact flat rate per terabyte that you pay is dependent on the characteristics of your Snowflake account such as the cloud provider platform you are running it within in the region it is deployed to. Additional to this, there are two storage billing options you can choose from. Option one, you pay on demand. Here you pay for the usage incurred month-to-month at the end of each month. Option two, you pay for capacity storage; that is, you pay for an expected usage upfront.
The capacity storage option is basically a commitment plan and therefore will be at a discounted or cheaper rate. For example, consider the following two Snowflake storage scenarios. The first scenario involves a Snowflake account hosted within AWS in the US West Oregon region. For this scenario, the cost for on demand storage is set at $40 USD per terabyte per month. For capacity storage, it is set at $23 USD per terabyte per month. The second scenario involves a Snowflake account hosted within Asia and the Australia East Sydney region. For this scenario, the cost for on demand storage is set at $46 USD per terabyte per month, and for capacity storage, it is set at $25 USD per terabyte per month.
The cloud services layer is also a contributor to cost. You are only charged for usage of this layer when your daily consumption of cloud services exceeds 10% of the daily usage of the compute resources. Snowflake runs a daily charge job in the background to calculate and determine accurately how much cost is added to the monthly bill for the usage of the cloud services layer on any given day. When it comes to billing and reporting, as earlier mentioned, Snowflake bills monthly towards the end of the month.
Snowflake's web admin console provides detailed billing and reporting features allowing you to easily understand where and how cost is being generated. Reporting can be performed across a particular time period and for a particular named virtual warehouse etc. Reporting can be broken down for a particular time period and for a particular named virtual warehouse. Likewise, for storage, you can report on the amount of storage cost attributed to data in particular database tables. Storage cost reporting can also be aggregated and viewed either in daily or monthly form.
Jeremy is a Content Lead Architect and DevOps SME here at Cloud Academy where he specializes in developing DevOps technical training documentation.
He has a strong background in software engineering, and has been coding with various languages, frameworks, and systems for the past 25+ years. In recent times, Jeremy has been focused on DevOps, Cloud (AWS, Azure, GCP), Security, Kubernetes, and Machine Learning.
Jeremy holds professional certifications for AWS, Azure, GCP, Terraform, Kubernetes (CKA, CKAD, CKS).