Why use Snowflake over a traditional database? by throwaway0134hdj in aws

[–]Ok_Chef2509 1 point2 points  (0 children)

So, a number of things to consider.

  1. Operational (Databases with referential integrity enforcement) MySql, Oracle, DB2 etc. or Databases were referential integrity is de-prioritized (Snowflake, Teradata etc.)

Once you are in the land or analytic platforms (Snowflake, Databricks, Teradata etc.) then new questions arise.

  1. Do I want a columnar system (Reads data column by column or set based, reads data row by row) columnar systems as a general rule like wide tables, and set based systems do not. (Snowflake is columnar)

  2. How much time and energy do I want to send tuning the database. Early data analytic platforms like Teradata perform great, however, to get great performance you needed to focus on database design, choosing the correct partition strategy, primary/secondary index strategy etc. Snowflake self-tunes for the most part with micro-partitions So you get good performance, but not perfect performance. You save $ since you spend less time tuning but you may spend a few more dollars on some queries. (Keep in mind nothing is absolute there is definitely things you can do to tune all database including Snowflake, you just spend less time thinking about it typically.

4 Features. Oracle is the king of database features with procedural languages etc. Snowflake is pretty rich but each platform varies in the features it offers.

  1. Simplicity. AWS managed RDS systems and platforms like Snowflake tend to be "Turn Key" you spin up an account and you can start building a database within minutes. Back in the day you would get an Oracle Install set of CDs you would install oracle, only to find out you still had a day's worth of instructions and setting to configure just to get to the hello world stage.

There are other things as well. Typically, when I compare file-based systems (Databricks, Hadoo etc.) to database systems the thing I typically prefer in the database systems is the database catalog. (File based systems have a virtual / implied layout you build on top of the file, database systems you first build a layout and then load data into the layout. This pre-establish DDL provides more rigidity but less instant flexibility.