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
Step
Action
Compute Cluster
Storage Access
Result
1
Create Warehouse WH1
WH1 created
No data accessed
Ready to run queries
2
Create Warehouse WH2
WH2 created
No data accessed
Ready to run queries
3
Run query on WH1
WH1 active
Reads data from central storage
Query result from WH1
4
Run query on WH2
WH2 active
Reads data from central storage
Query result from WH2
5
WH1 and WH2 run independently
Both active
Shared storage accessed concurrently
Results returned separately
6
Stop WH1
WH1 stopped
No storage access
No queries run
7
WH2 continues
WH2 active
Reads data from storage
Query results continue
8
End
WH1 stopped, WH2 active
Storage remains intact
System stable
💡 Execution stops as warehouses are stopped or queries complete; storage remains separate and persistent.
Status Tracker
Variable
Start
After Step 1
After Step 2
After Step 3
After Step 4
After Step 6
Final
WH1 State
Not created
Created
Created
Active
Active
Stopped
Stopped
WH2 State
Not created
Not created
Created
Created
Active
Active
Active
Storage State
Data stored
Data stored
Data stored
Accessed
Accessed
Accessed
Accessed
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.