Updated: Oct 23, 2020
Snowflake is a Data Analytic warehouse provided as Software as a Service (SaaS). Snowflake is a unique layered platform where SQL is used to store data.
Snowflake provide a robust, faster, flexible data warehouse Solution.
There is no hardware or software to be installed on premise. Snowflake data warehouse solution can be deployed on any cloud service provider.
Snowflake has 3 different layers:
Cloud Services Layer
Snowflake stores the data in multiple small partitions which are already optimised and compressed. It uses the column storage which helps in better performance. As the data is stored in cloud, it helps elasticity of the data and simplifies user's in data management. As the data is stored in cloud as a shared-disk model, users do not have to pay much but can pay only as per the usage per TB every month.
Compute layer communicates with Storage layer to fetch data for query processing.
Snowflake separates the query processing layer and storage layer. The data is stored in Storage Layer, and query processing is done in Compute layer by using the data from the storage layer.
Several Virtual Warehouses are present in the Compute layer, which individually interacts with the Storage Layer. Each Virtual Warehouse interacts with one storage layer and Virtual Warehouse have their own clusters and doesn't interact with other Virtual Warehouses.
Virtual Warehouses, can be individually managed. They can be started and stopped separately.
Virtual Warehouses, can be auto-suspended or auto-resume, based on the time limit.
Virtual Warehouses, can be set to auto-scale with limited number of clusters.
Cloud Services Layer
Activities like authorisations, metadata management, security management and query optimisations in Snowflake are done over here.
The above 3 layers are individually maintained in Snowflake and they can be scaled up/down independently.
Benefits of Snowflake:
Multi Cloud: Snowflake can be deployed on any of the cloud service providers. Business can decide on to which Cloud Service Provider needs to be used based on their budget requirements. Users will have uninterrupted services irrespective of the cloud where Snowflake is deployed.
Snowflake is available on Amazon Web Services, Google Cloud Platform and Microsoft Azure.
Pricing: Snowflake work on per second usage basis. Users only pay for the storage they use and computing power to process they query.
Scalability: Scale up or down is automatically managed based on the resources utilised.
Disaster recovery: Data recovery is no longer an issue. Two data centres will have the data saved automatically and can be recovered at any point of time.
Infrastructure Services: Maintenance of hardware or server is not an issue anymore. Snowflake manages maintenance of system upgrades, patches and OS automatically without any manual intervention.
Leave a comment with your suggestions if any.