0
0
Snowflakecloud~10 mins

Why Snowflake separates compute from storage - Visual Breakdown

Choose your learning style9 modes available
Process Flow - Why Snowflake separates compute from storage
Data Stored in Central Storage
Compute Clusters Access Storage
Cluster A
Process Queries
Results Returned
Snowflake stores data centrally and lets multiple compute clusters access it independently to run queries.
Execution Sample
Snowflake
CREATE WAREHOUSE WH1;
CREATE WAREHOUSE WH2;
USE WAREHOUSE WH1;
SELECT * FROM table;
USE WAREHOUSE WH2;
SELECT * FROM table;
Two compute warehouses run queries on the same central data storage independently.
Process Table
StepActionCompute ClusterStorage AccessResult
1Create Warehouse WH1WH1 createdNo data accessedReady to run queries
2Create Warehouse WH2WH2 createdNo data accessedReady to run queries
3Run query on WH1WH1 activeReads data from central storageQuery result from WH1
4Run query on WH2WH2 activeReads data from central storageQuery result from WH2
5WH1 and WH2 run independentlyBoth activeShared storage accessed concurrentlyResults returned separately
6Stop WH1WH1 stoppedNo storage accessNo queries run
7WH2 continuesWH2 activeReads data from storageQuery results continue
8EndWH1 stopped, WH2 activeStorage remains intactSystem stable
💡 Execution stops as warehouses are stopped or queries complete; storage remains separate and persistent.
Status Tracker
VariableStartAfter Step 1After Step 2After Step 3After Step 4After Step 6Final
WH1 StateNot createdCreatedCreatedActiveActiveStoppedStopped
WH2 StateNot createdNot createdCreatedCreatedActiveActiveActive
Storage StateData storedData storedData storedAccessedAccessedAccessedAccessed
Key Moments - 3 Insights
Why can WH1 and WH2 run queries at the same time without interfering?
Because both warehouses access the same central storage independently, as shown in steps 3 and 4, they do not block each other.
What happens to data when a compute warehouse stops?
Data remains safe and unchanged in central storage, as seen in step 6 where WH1 stops but storage is still accessed by WH2.
Why is separating compute and storage beneficial?
It allows multiple compute clusters to scale and run queries independently without duplicating data, demonstrated by WH1 and WH2 running separately.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the state of WH1 after step 6?
AActive
BStopped
CNot created
DPaused
💡 Hint
Check the 'WH1 State' in variable_tracker after step 6.
At which step do both WH1 and WH2 run queries concurrently?
AStep 3
BStep 4
CStep 5
DStep 6
💡 Hint
Look for the step where both warehouses are active and accessing storage.
If storage was not separated, what would happen when WH1 stops?
AWH2 would also lose access to data
BWH2 would continue normally
CData would be duplicated
DQueries would run faster
💡 Hint
Think about the benefit of separate storage shown in steps 6 and 7.
Concept Snapshot
Snowflake separates compute and storage.
Data is stored centrally and persistently.
Multiple compute warehouses access data independently.
Compute clusters can scale up/down without affecting storage.
This design improves concurrency and cost efficiency.
Full Transcript
Snowflake stores data in a central storage layer. Multiple compute warehouses can be created to run queries independently. Each warehouse accesses the same data without copying it. This separation allows warehouses to scale and run queries concurrently without blocking each other. When one warehouse stops, data remains safe and accessible by others. This design improves performance and cost by separating compute resources from storage.