Pro ยท Lesson 3 of 13

Architecture

Storage, warehouses, and cloud services scale on different clocks.

Sign in to save your place.

Picture it this way

The books stay on the shelves. Opening a second reading room does not photocopy the library. Closing a room does not throw the books away. The front desk remembers who is allowed in, which shelf a title is on, and which room should take the next question.

Storage is columnar and central

Table data is stored compressed in the cloud provider's storage, organized into micro-partitions. Snowflake's micro-partition page says each partition holds about 50 MB to 500 MB of uncompressed data, and the stored size is smaller because the data is compressed. Rows in a partition are stored by column.

Cloud services keeps metadata about those partitions, including enough statistics to skip partitions that cannot match a filter. That pruning is why a selective query can avoid reading the whole table.

Storage billing includes active bytes, Time Travel bytes, and Fail-safe bytes. Cloning does not copy those bytes until a change creates new partitions.

Compute is a warehouse you can stop

A virtual warehouse is an independent cluster. It does not share compute with other warehouses, so a heavy load on a loading warehouse does not slow a separate analyst warehouse pointed at the same tables.

You can resize a warehouse while it runs. Size is the resources per cluster. Multi-cluster warehouses, which require Enterprise Edition or higher, add more clusters of that size for concurrency. Resizing makes one query faster. Extra clusters help more people run at once.

If the warehouse does not have enough resources left, extra queries queue. They are not rejected. Multi-cluster warehouses in auto-scale mode start and stop clusters using a scaling policy. Standard favors responsiveness. Economy favors fewer credits.

Cloud services is the control plane

Cloud services handles authentication, access control, metadata, query compilation, and dispatch. It runs on compute that Snowflake provisions. You do not size it yourself.

The result cache lives on this layer. When Snowflake can reuse a stored result, the warehouse does not recompute the query. Treat the cache as a bonus you can see in the query profile, not as a design you should time to a fixed number of hours without reading the current cache page.

Cloud services credits are adjusted daily in UTC. Only the part above 10% of that day's virtual-warehouse credits is billed, and the adjustment cannot exceed the cloud services actually used that day.

If you need Change this Leave this alone
A faster single scan A larger warehouse size Do not copy the table into a second database just to go faster
More concurrent users Multi-cluster warehouse (Enterprise+) Do not give every user ACCOUNTADMIN
Less idle spend AUTO_SUSPEND and a resource monitor Do not turn off the storage layer

Two teams, one copy of the data

A nightly load and a busy dashboard share the same tables without slowing each other down.

  1. LOAD_WHWarehouse for the nightly load
  2. BI_WHWarehouse for dashboards
  3. Shared storageOne copy of every table
  4. Cloud servicesMetadata and transactions

Step 1 of 3Both teams read the same single copy of each table. Nobody exports or duplicates data to give another team access.

GRANT SELECT ON ALL TABLES IN SCHEMA sales TO ROLE analyst;

Lab: two warehouses, one table

Create a tiny table with the learning warehouse, then a second warehouse for a different kind of work. Both can see the table. Suspend the second warehouse when you are done so the trial does not keep paying for it.

USE WAREHOUSE LEARN_WH;
CREATE DATABASE IF NOT EXISTS LEARN_DB;
CREATE SCHEMA IF NOT EXISTS LEARN_DB.PUBLIC;
CREATE OR REPLACE TABLE LEARN_DB.PUBLIC.HELLO (
  ID NUMBER,
  NOTE STRING
);
INSERT INTO LEARN_DB.PUBLIC.HELLO VALUES (1, 'stored once');

CREATE WAREHOUSE IF NOT EXISTS LOAD_WH
  WAREHOUSE_SIZE = XSMALL
  AUTO_SUSPEND = 60
  AUTO_RESUME = TRUE
  INITIALLY_SUSPENDED = TRUE;

USE WAREHOUSE LOAD_WH;
SELECT * FROM LEARN_DB.PUBLIC.HELLO;
ALTER WAREHOUSE LOAD_WH SUSPEND;

Concept summary

Knowledge check

What does adding a second cluster to a multi-cluster warehouse change?

Why can a filter skip micro-partitions?

Which layer do you suspend to stop compute credits?

Official sources

Checked against Snowflake documentation in October 2026. Product behavior still depends on your edition, cloud, and region.