Traditional data warehouses bolt query processing directly onto the disks that hold the data, so storage and compute must be sized — and paid for — together. Snowflake's architecture splits them into independent layers: a single shared, columnar, micro-partitioned storage layer in cloud object storage, and any number of virtual warehouses — independent clusters of compute — that read from it concurrently without contending with each other.
Because compute and storage are decoupled, two teams can run completely different warehouse sizes against the exact same tables at the same time — an analyst running ad-hoc SQL on an X-Small and a nightly ETL job running on a Large — without either one slowing the other down or duplicating any data.
A shared, micro-partitioned storage layer sits below independent virtual warehouses that query it above — resize compute, add or suspend warehouses, and watch billing and query behaviour respond without the data ever moving.
Storage (the disc of micro-partitions) and compute (the floating warehouse platforms) are decoupled: multiple warehouses can read the same partitions concurrently, each scaling and billing independently of the data layer beneath it.
Add active warehouses, change their size, and dial up query load. Toggle clustering-key pruning to compare a targeted scan against a brute-force full scan, and toggle auto-suspend to see idle warehouses shrink and stop billing credits.
Because compute is elastic and separate from storage, Snowflake warehouses can resize or suspend in seconds — you pay per-second for compute you actually use, while storage is billed separately and far more cheaply.