┌────────────────────────────────────────────────────────────────────────────────────────────┐
│ CLOUD SERVICES LAYER │
│ ┌────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ Authentication & Access Service │ │
│ └────────────────────────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────┐ ┌────────────┐ ┌────────────────┐ ┌────────────┐ ┌────────────────┐ │
│ │Infrastructure│ │ Optimizer │ │ Metadata │ │ Security │ │ Availability & │ │
│ │ Manager │ │ │ │ Manager │ │ │ │ Transactions │ │
│ └──────────────┘ └────────────┘ └────────────────┘ └────────────┘ └────────────────┘ │
└────────────────────────────────────────────────────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────────────────────────────────────────┐
│ COMPUTE LAYER (VIRTUAL WAREHOUSES) │
│ │
│ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐ │
│ │ Cache & │ │ Cache & │ │ Cache & │ │ Cache & │ │
│ │ Micro-partitions │ │ Micro-partitions │ │ Micro-partitions │ │ Micro-partitions │ │
│ └──────────────────┘ └──────────────────┘ └──────────────────┘ └──────────────────┘ │
│ │
│ (Independent compute, auto-scaling, multi-cluster) │
└────────────────────────────────────────────────────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────────────────────────────────────────┐
│ DATABASE STORAGE LAYER │
│ │
│ ┌────────────────────┐ ┌────────────────────┐ ┌────────────────────┐ │
│ │ ▒▒▒▒▒▒▒▒▒▒ │ │ ▒▒▒▒▒▒▒▒▒▒ │ │ ▒▒▒▒▒▒▒▒▒▒ │ │
│ │ Tables │ │ Micro-partitions │ │ Time Travel │ │
│ │ (columnar) │ │ (immutable) │ │ & Fail-safe │ │
│ └────────────────────┘ └────────────────────┘ └────────────────────┘ │
│ │
│ (Centralized, encrypted at rest, auto-managed by Snowflake) │
└────────────────────────────────────────────────────────────────────────────────────────────┘
Snowflake is a cloud-based data warehouse platform that uses a unique multi-cluster, shared data architecture. It separates storage and compute resources, allowing them to scale independently.
Snowflake's architecture consists of three main layers that work together to provide a powerful, scalable, and flexible data warehousing solution:
┌──────────────────────────────────────────────────────────┐
│ CLIENT/CLOUD SERVICES LAYER │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌─────────────┐ │
│ │ Web │ │ ODBC │ │ JDBC │ │ SnowSQL │ │
│ │Interface │ │ Driver │ │ Driver │ │ CLI Tool │ │
│ └──────────┘ └──────────┘ └──────────┘ └─────────────┘ │
│ │
│ ┌────────────────────────────────────────────────────┐ │
│ │ Authentication & Access Control │ │
│ │ Query Parsing & Optimization │ │
│ │ Metadata Management │ │
│ └────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ COMPUTE LAYER │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Virtual │ │ Virtual │ │ Virtual │ │
│ │ Warehouse 1 │ │ Warehouse 2 │ │ Warehouse 3 │ │
│ │ │ │ │ │ │ │
│ │ ┌────────┐ │ │ ┌────────┐ │ │ ┌────────┐ │ │
│ │ │Compute │ │ │ │Compute │ │ │ │Compute │ │ │
│ │ │ Node 1 │ │ │ │ Node 1 │ │ │ │ Node 1 │ │ │
│ │ └────────┘ │ │ └────────┘ │ │ └────────┘ │ │
│ │ ┌────────┐ │ │ ┌────────┐ │ │ ┌────────┐ │ │
│ │ │Compute │ │ │ │Compute │ │ │ │Compute │ │ │
│ │ │ Node 2 │ │ │ │ Node 2 │ │ │ │ Node n │ │ │
│ │ └────────┘ │ │ └────────┘ │ │ └────────┘ │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
│ (Auto-scaling, Multi-cluster) │
└─────────────────────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────┐
│ STORAGE LAYER │
│ │
│ ┌────────────────────────────────────────────────────┐ │
│ │ Centralized Storage (Cloud Storage) │ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │ │
│ │ │ Tables │ │ Schema │ │ File Format │ │ │
│ │ │ Data │ │ Metadata │ │ (Compressed & │ │ │
│ │ │ │ │ │ │ Columnar) │ │ │
│ │ └──────────┘ └──────────┘ └──────────────────┘ │ │
│ │ │ │
│ │ (Amazon S3, Azure Blob, Google Cloud) │ │
│ └────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────┘
The cloud services layer coordinates and manages the entire Snowflake system, handling all user requests and system operations.
The compute layer consists of virtual warehouses that execute queries and perform data processing operations.
The storage layer is the foundation of Snowflake's architecture, responsible for persistent data storage.
Users and applications can connect to Snowflake through various interfaces: