Pythian Blog: Technical Track

Snowflake Feature Applicability At a Glance

Preparing for the Snowflake SnowPro Advanced: Architect Certification can be challenging. You need to have a deep understanding of the core concepts as well as specific feature capabilities. Snowflake’s excellent documentation provides detailed information. However, it is difficult to determine feature applicability at a high level. In this blog post, I will share a matrix that can help you do that for some of the main features.

I recently took the Snowflake SnowPro Advanced: Architect certification exam. Preparing for it was demanding; I went through the exam guide, and the main sections of the documentation, did tons of practical exercises and even did some practice tests. The main resource is the documentation, which contains everything you need to know to pass the exam. However, it is very detailed, and it is hard to make a “summary picture” in your head. For this reason, I prepared the matrix below to help me remember the applicability of some of the main features.

Snowflake feature applicability per object type

A red cross means that the feature is not supported for that object, while a red circle means that the feature is supported. In addition, a red circle in a yellow box means that the feature is currently in preview. Finally, an empty box means that the feature doesn’t apply to that type of object.

There are many constraints for each feature, so you will still need to read the fine print in the documentation. Below you can find some additional notes, as well as links to the sections in the documentation:

Streams

Streams on views are currently in preview. You need to enable change tracking on the underlying tables, also, be aware that some restrictions apply to the supported SQL.

Cloning

In the matrix above, “Internal” in the “Stages” section refers to internally named stages. Since internally named stages cannot be cloned, any pipe that references them cannot be cloned.

Replication

If you are trying to replicate a database that contains an external table, you will get an error message. Therefore, the workaround is to move the external table to a separate database that will not be replicated.

Search optimization

It is not possible to apply search optimization directly on standard views, but you can apply it on the underlying tables. As a result, you could indirectly improve their performance.

Row access policies

The feature is easy to understand and use, but take a good look at the limitations and considerations sections. Many constraints apply to specific situations.

Data masking policies

Similar situation to the row access policies feature. Consequently, take a good look at the limitations and considerations sections to understand the constraints.

Data classification

This feature attaches tags to columns in your tables and views based on the results of the analysis it performs. Henceforth, look at the documentation for tag-based masking policies to understand the constraints.

Data sharing

In the matrix above, “Secure” in the “Views” section includes both standard and materialized views. Remember that shared objects are read-only and cannot be cloned or re-shared. However, consumers can create streams on them to detect changes.

Clustering

Use it only on large tables (1TB +) where you require the fastest possible response times, regardless of cost. Or when your improved query performance offsets the credits required to cluster and maintain the table.

Snowflake is truly amazing, and it offers many features not available in other products in the market. However, you need a good understanding of the platform to architect solutions that apply best practices and provide the best performance.

Oh, by the way, if you are wondering if I passed the exam, I’m happy to share that I did.

Thanks for reading. Feel free to drop any questions or share your thoughts in the comments.

 

No Comments Yet

Let us know what you think

Subscribe by email