In my opinion, Snowflake does not penalize its customers for bad queries. In fact, it protects the customers from disastrous Billings and help them navigate emergency situations better. Let me give you two examples from my past and current jobs.
Besides Snowflake’s consumption model - customer pay a fixed number of credits (dollars) by hour - there are two other business models:
Google Big Query: consumption model by amount of data - charge you by amount of bytes you pull. Billed monthly.
On prem: yearly or multi-year contract. You sign with a fixed size compute cluster, pay a fixed price, then share this resource across the company. It is possible to expand if one needs more compute but it is usually a nightmare if you don’t get it right by the time you sign the multi-year contract.
I will not go into Databricks here since I don’t have first hand experience.
Example 1: GCP Big Query
In one of my past jobs, one of the analysts
wrote a SQL query for a report that cost the company a fortune. By fortune I meant that GCP billed an amount that can pay for a dozen full time employees for a year - for a single query.
How did this happen? It is because GCP charges by amount of data pulled. If you accidentally run a large query very efficiently — say joining some sort of website click event data of all the website visitors to a completely irrelevant data — then you get a large bill. There are ways to prevent this but it requires set up the correct cloud monitoring parameters for the company. Instead, my company found out only after the fact. This one query blew the whole team’s year 1 cloud budget during our migration to cloud. It was bad. I did not probe into how much we were able to negotiate back or was the bill completely forgiven on this one incident.
Advantage of Snowflake pricing model for customer: because Snowflake credit usage is tied to the “warehouse size” (think of how many computers are I. Your cluster) - if this analyst’s computation was assigned to a size Small warehouse (2 credits an hour), then no matter what mistake this person makes, the company will not get charged by more than 48 credits a day, or 1,440 credits a month. For most teams that would be about $5k-$8k a month. So there are never “billing surprises” - the only way you can get surprised by the Snowflake consumption model is if your IT team can’t do basic math or Snowflake decided to charge you a lot more dollars per credit during the next contract renewal.
Example 2: On prem queries
On prem set up always mean you have to estimate how much compute the company uses. And the amount is fixed over longer periods - you can’t decide to double the compute today and shrink it back tomorrow. They tend to be “cheaper” by the amount of compute per dollar but it means the team loses flexibility to scale up and down when needed - so the invisible cost is developer/analyst productivity.
An example at my previous job would be a Hadoop cluster that we had. At one point we have a scheduled query that needs to run daily for compliance reasons. But the query is soooo slow and compute intensive that everyone elses’ query took 5-10x longer to run. So usually I would be getting a result in a minute, now it would take me 10 minutes. Some longer workloads we have that takes 30 minutes becomes 5 hours. This was a significant hit to people’s productivity but there was no way around it. How much does it cost the company? Think 100+ people with $100k+ salary - so 10 million+ in wage and productivity that was severely impacted for a month.
Advantage of Snowflake pricing model for customers:
Just a few weeks ago we had to do a “full refresh” of our data warehouse in Snowflake because of an issue. Our warehouse usually runs on size M (4 credits per hour) during business hours for analyst queries. At size M this would take 10+ hours. But since it was an emergency and had to be done during business hours - what do we do? We went to the UI and toggle the warehouse size to XL (16 credits per hour) the ran the full refresh. It only took us 1 hour. And then we sized down the warehouse to M and we were back to business as usual. It was seamless. This is impossible with on prem contracts. We paid only a little more (~$60) on that day for a data engineering team of 10’s sanity and productivity during an emergency.
The bottom line
Snowflake has a brilliant product and their pricing strategy on top of their product provides superior customer experience. I believe this is the source of their success. I hope this provides a better view on how their pricing strategy compares to others.