We will cover the cloud-native platform Snowflake (SF), looking at its key features. We will also compare SaaS products with on-premises products and discuss some of the differences between OLAP optimized database systems, such as SF, and traditional OLTP databases such as ORACLE or PostgreSQL.
SF is essentially a cloud-based data warehousing platform and one of the representatives of the endless list of relational database management systems (RDBMS).
That means that the firm does not have to spend resources on the maintenance of on-premises servers. This means a decrease in the costs for IT department employees, who would usually have to set up and maintain the hardware.
Other important features of Snowflake include:
- Columnar storage — SF stores data in the columnar format (as opposed to the more frequent row format). That means that the data is organized by field, so that data for a given field are next to each other in the memory. The most known representatives of these so-called C-store DBs are Snowflake, BigQuery, and AWS Redshift. They all provide great query performance as regards data read. On the other hand, other traditional DBs keep data associated with a record next to each other in the memory. We call those DBs row store databases (row-oriented). While row-oriented DBs are perfect for OLTP applications, columnar storage DBs such as Snowflake are a more suitable choice for OLAP use cases, where multiple aggregations and ad hoc queries take place.
- Automatic compression — By default, Snowflake determines the optimal compression algorithm and compresses data out of the box as opposed to some other DBs, where the compress method has to be specified to save storage.
- Support of semi-structured data formats — SF provides above-average support for semi-structured data formats such as JSON, Avro, Parquet, or ORC.
- Row-level policies — SF enables the use of row access policies. These are schema-level objects that essentially determine which rows will be returned based on the role, which executes the query.
- Dynamic data masking — This is one of the data security features. It enables the anonymizing of attributes using a predefined masking strategy.
- Data sharing — Snowflake allows database sharing between SF accounts.
- the interesting part is that no data is copied between those accounts as the whole process is done via the metadata store.
As you can see, Snowflake is a very versatile data warehousing solution that offers modern features and great support.