
Snowflake is an analytical data warehouse that is provided as Software-as-a-Service (SaaS). Built on new SQL database engine, it provides a unique architecture designed for the cloud. It stands out among the other enterprise data warehouses by providing lot of features. Like I mentioned, it is a SaaS offering, and hence it makes it a lot more flexible than traditional data warehouse offerings.The distinctive features of Snowflake as a cloud service are as below:
Here’s a detail on the architecture of Snowflake.The architecture is three layered:
Snowflake has a mechanism to reorganize the data into its internal optimized, compressed and columnar format and stores this optimized data in cloud storage. This stage handles all the aspects of data storage like organization, file size, structure, compression, metadata, statistics. The data objects are accessible only through SQL query operations run using Snowflake.
Query processing in Snowflake is done using virtual warehouses. A virtual warehouse is an MPP compute cluster composed of multiple compute nodes allocated by Snowflake from a cloud provider. Each virtual warehouse acts independently and does not share compute resources with other virtual warehouses. Hence each warehouse has no impact on the performance of the other.
This layer is a collection of services that coordinate activities across Snowflake. This ties together all the different components of Snowflake in order to process users request, from login to query dispatch. The services provided in this layer include authentication, infrastructure management, metadata management, query parsing and optimization, access control etc.DBT (Data Build Tool) is a command line tool that enables analysts to transform data in a data warehouse more effectively. A lot of data transformation is required between loading data into the warehouse and analyzing it. Dbt allows that process to anyone with a little knowledge of SQL.When DBT is used in Snowflake, data transformation can be achieved more easily.The use cases for using DBT with Snowflake include:
Though there are plenty of data transformation tools like Azure Data Factory, Apache Kafka, SAP Data Services etc, are available in the market, DBT stands out because its open source and lot more approachable than the rest.