Hacker News new | ask | show | jobs
by twawaaay 1395 days ago
Snowflake is not expensive. Snowflake is super cheap, IF you know what it is for and how to use it. Compared to if you had to solve the problem on your own.

The best way to describe Snowflake is that it is a brute force method to run complex queries without creating indexes.

If you have a more traditional database, you will notice you need to set up indexes to be able to get anything from it in finite time. What if you don't know the indexes upfront? What if you want your users to be able to ask arbitrary queries and get answers before bedtime?

That's what Snowflake is for. It automates using ENORMOUS amount of hardware to get your query executed fast, very inefficiently.

It is not for free though. That inefficiency will cause a lot of resources used for queries. It is meant for those few queries when your users try to get some insight into your data and you can't predict indexes beforehand. Sometimes this is exactly what you want, like when you let your data people in to figure stuff out. Or when you have very rare functionality that allows the user to build their own queries -- which you should avoid like hell (and there are tricks to make it index pretty well) but can't always avoid.

For everything else, whenever you can predict your indexes, you always want to use more traditional database that can be very efficient on queries properly supported by indexes.

The issue is a lot of people try to use Snowflake as a database or to support frequently executing queries of the same kind. This is bad and it will cost you.

5 comments

It is fair to critize that some workloads on Snowflake are expensive.

What I found however is that Snowflake is indeed super cheap if we look at Total Cost of Ownership (TCO). Compared with other cloud data warehouses it is even easy for to cost control (warehouse size with autosuspend and resource monitors).

I work with many Snowflake customers and the biggest cost they are concerned with is usually training users so they don't shoot themselves (wrong joins, external programs "pinging" the service, ...).

Snowflake is mainly expensive because of usage, not because of bad query optimization.

(Co-Founder at https://www.sled.so/)

Honestly, in the financial world, I think the value proposition may be less about anything to do with the query capabilities and more about the permissions model. Making it simple to provide clients with visibility into their data in a structured way that doesn't involve shoveling around text files (with numerous formatting gremlins to worry about) is a huge win in and of itself.
> The issue is a lot of people try to use Snowflake as a database or to support frequently executing queries of the same kind. This is bad and it will cost you.

It seems totally natural to expect these use cases to be well-supported & cost-efficient. That they're not I think is likely to be misunderstood by a great many people, even technical folks.

Materialized views help with this. It might not be perfect, but it isn't as bad as you say.
Very clear-minded take on what Snowflake is great and not so great for. Snowflake is great and cheap for what it's meant for. It gets expensive when you try to use it for something it was not designed for.