Snowflake

Snowflake Architecture: Three-Layer Design Explained

2026-03-26
更新: 2026-03-27
NicheeLab Editorial Team

Snowflake uses a multi-cluster shared-data architecture that differs from both traditional shared-disk and shared-nothing designs. Storage, compute, and cloud services are fully decoupled, and each layer scales independently. This article walks through the role of each layer, micro-partitions, the cache hierarchy, and the Cloud Services billing rule — the exam-relevant essentials plus what matters in production.

Three-Layer Architecture Overview

Snowflake's architecture is built from three layers. Each layer scales and fails over independently, freeing users from infrastructure management so they can focus on analytics.


┌─────────────────────────────────────────────┐
│         Cloud Services Layer                │
│  Auth / Access Control / Query Optimization │
│  Metadata Management / Transactions         │
├─────────────────────────────────────────────┤
│         Compute Layer (Virtual Warehouses)  │
│  WH-1 (XS)  │  WH-2 (L)  │  WH-3 (XL)    │
│  Independent clusters, isolated from each   │
├─────────────────────────────────────────────┤
│         Storage Layer                       │
│  Cloud Object Storage (S3 / Azure Blob / GCS)│
│  Micro-partitions (columnar, compressed)    │
└─────────────────────────────────────────────┘
      

Storage Layer

Data is stored on cloud-provider object storage (AWS S3, Azure Blob Storage, Google Cloud Storage) in a columnar format. Users never interact with storage directly — Snowflake handles all data management automatically.

How Micro-Partitions Work

Table data is automatically split into units called micro-partitions.

PropertyDetail
Size50-500 MB compressed (uncompressed equivalent is several hundred MB)
FormatColumnar storage format
ManagementSnowflake handles splitting and reorganization automatically (no user action required)
MetadataPer-partition min/max, NULL count, and distinct count metadata for every column
PruningWHERE clauses are matched against metadata so irrelevant partitions are skipped
ImmutabilityOnce created, partitions are immutable (INSERT/UPDATE/DELETE create new partitions)

Micro-partition immutability is what enables Time Travel (point-in-time queries) and Fail-safe (disaster recovery). When you run UPDATE, the affected partition is recreated as a new version, and the previous version is retained for the Time Travel window.

Compute Layer

Virtual Warehouses handle query execution. Each warehouse is an independent compute cluster — workloads in one warehouse don't impact others.

SizeCredits/HourTypical Use Case
X-Small1Development, testing, light queries
Small2Small dashboards
Medium4Medium ETL and BI workloads
Large8Large batch processing
X-Large16Full scans on TB-scale tables
2XL〜6XL32〜512Very large data processing

Warehouses support multi-cluster scaling, automatically adding clusters as concurrent query count grows. Auto-suspend stops idle warehouses, and auto-resume starts them again on the next query.

Cloud Services Layer

The 'brain' of Snowflake. Users never see this layer directly, but it handles these critical responsibilities:

  • Authentication & access control: User authentication, RBAC, and network policy enforcement
  • Metadata management: Table definitions and micro-partition statistics
  • Query optimization: Query parsing, optimization, and pruning decisions
  • Transaction management: Guarantees ACID transactions
  • Security: End-to-end AES-256 encryption with automatic key rotation

Cloud Services Billing (the 10% adjustment)

ItemValue
Billing threshold10% of daily warehouse credit consumption
What's billedOnly the portion exceeding 10%
How to checkACCOUNT_USAGE.METERING_HISTORY view
Common over-threshold casesHeavy SHOW/DESCRIBE usage, Snowpipe notification processing, high-volume COPY INTO

Example: if warehouses consume 200 credits in a day, the Cloud Services threshold is 20 credits. If Cloud Services consumed 25 credits, only 25 - 20 = 5 credits are billed on top.

The Three-Cache Hierarchy

Snowflake has three caches that improve query performance and reduce cost.

Cache typeLocationLifetimeHit conditionsCost
Result CacheCloud Services Layer24 hours (extended on reuse)Same query, same role, no data changeNo warehouse used (zero credits)
Metadata CacheCloud Services LayerAlways-onAggregation queries like COUNT/MIN/MAXNo warehouse used (zero credits)
Warehouse Cache (Local Disk Cache)Warehouse SSDWhile warehouse is runningSame warehouse accessing same tableIncluded in warehouse cost

Result Cache is the most cost-effective — it returns results without starting a warehouse. It shines for repeated identical queries like scheduled BI dashboard refreshes. But Result Cache is invalidated as soon as DML runs on the underlying table.

End-to-End Query Processing

  1. User submits SQL
  2. Cloud Services Layer parses and optimizes the query
  3. If Result Cache has a matching result, it returns immediately without a warehouse
  4. If an aggregation query can be answered from Metadata Cache, it returns without a warehouse
  5. Otherwise the query runs on the specified warehouse
  6. Micro-partition pruning reads only the relevant data
  7. Data already in Warehouse Cache skips storage access
  8. Results are returned to the user and stored in Result Cache

Snowflake Editions and Architecture Features

FeatureStandardEnterpriseBusiness CriticalVPS
Multi-cluster warehouses-YesYesYes
Time Travel (up to 90 days)1 day onlyUp to 90 daysUp to 90 daysUp to 90 days
Materialized views-YesYesYes
Search Optimization Service-YesYesYes
Tri-Secret Secure--YesYes
AWS PrivateLink / Azure Private Link--YesYes
Dedicated metadata store---Yes

Exam Focus Areas

On the SnowPro Core exam, the Architecture domain is about 25% of the test — the single biggest area. These are the points you should expect to be tested on:

  • Role of each layer and which processing happens where
  • Concrete benefits of decoupled storage and compute
  • Micro-partition properties (size, immutability, columnar, automatic management)
  • Differences across the three caches (location, warehouse start required or not, invalidation conditions)
  • The Cloud Services Layer 10% billing rule
  • Feature differences across editions (multi-cluster, Time Travel window, Tri-Secret Secure)

Check Your Understanding

SnowPro Core

問題 1

Which statement about Snowflake's Result Cache is correct?

  1. Result Cache is stored on the warehouse's local disk and is cleared when the warehouse stops
  2. Result Cache lasts 24 hours and returns results without a warehouse when the same query is run by the same role and the data has not changed
  3. Result Cache is only available on Enterprise Edition or higher
  4. There is a 50 MB upper limit on data that can be stored in Result Cache

正解: B

Result Cache lives in the Cloud Services Layer for 24 hours. It hits when the query text and role match and no DML has changed the underlying tables, returning results without starting a warehouse. Option A actually describes Warehouse Cache (Local Disk Cache).

Frequently Asked Questions

What are the benefits of separating storage and compute in Snowflake's three-layer architecture?

Storage and compute scale independently, so you can grow only storage as data volume rises, or scale warehouses up and down based on query load. You don't carry idle capacity the way a traditional on-prem DWH forces you to, and cost efficiency improves dramatically. A second major benefit: multiple warehouses can access the same data concurrently without lock contention.

How is Cloud Services Layer billing calculated?

Cloud Services credits are billed only for usage that exceeds 10% of daily warehouse credit consumption (the 10% adjustment rule). For example, if warehouses consume 100 credits and Cloud Services consume 15, only 15 - 10 = 5 credits are billed. The design effectively makes core services like authentication, metadata management, and query optimization free.

How do micro-partitions relate to clustering keys?

Snowflake automatically splits data into 50-500 MB compressed micro-partitions and stores per-partition min/max metadata. When you set a clustering key, partitions are reorganized (reclustered) by the specified columns, which improves pruning efficiency. Reclustering consumes credits, so the typical recommendation is to consider clustering keys only when tables are larger than 1 TB and frequently filter by a specific column.

Check what you learned with practice questions

Practice with certification-focused question sets

Try free practice questions
Author

NicheeLab Editorial Team

NicheeLab editorial team focused on data engineering and cloud certification learning. Content is structured around practical study needs and official exam domains.


Related articles
Snowflake

Snowflake Certifications: All 11 Exams Explained (2026)

Every SnowPro certification — Associate, Core, Specialty, Ad...

Snowflake

Snowflake Exam Difficulty Ranking: All 11 Certs Compared (2026)

All 11 SnowPro exams ranked by difficulty with study-time es...

Snowflake

Snowflake Study Guide: Fastest Pass Route by Exam (2026)

How to pass SnowPro certifications efficiently — official ma...

Snowflake

SnowPro Core (COF-C03): Complete Exam Guide (2026)

Pass the SnowPro Core exam — six domains, scope, sample ques...

Snowflake

SnowPro Associate Platform (SOL-C01): Complete Guide (2026)

The entry-level SnowPro Associate exam — scope, weighting, s...

Browse all Snowflake articles (103)
© 2026 NicheeLab All rights reserved.