Snowflake Data Warehouse Architecture

┌────────────────────────────────────────────────────────────────────────────────────────────┐
│                                   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.

Architecture Overview

Snowflake's architecture consists of three main layers that work together to provide a powerful, scalable, and flexible data warehousing solution:

  1. Cloud Services/Client Layer (Top Layer)
  2. Query Processing/Compute Layer (Middle Layer)
  3. Database Storage Layer (Bottom Layer)

Architecture Diagram

┌──────────────────────────────────────────────────────────┐
│                  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)      │  │
│  └────────────────────────────────────────────────────┘  │
└──────────────────────────────────────────────────────────┘

1. Cloud Services Layer (Top Layer)

The cloud services layer coordinates and manages the entire Snowflake system, handling all user requests and system operations.

Key Components:

2. Compute Layer (Middle Layer)

The compute layer consists of virtual warehouses that execute queries and perform data processing operations.

Key Features:

3. Storage Layer (Bottom Layer)

The storage layer is the foundation of Snowflake's architecture, responsible for persistent data storage.

Key Features:

Key Benefits of This Architecture

  1. Separation of Storage and Compute: Allows independent scaling of resources based on needs
  2. Elastic Scalability: Can handle varying workloads without manual intervention
  3. Pay-per-use Model: Only pay for storage used and compute time consumed
  4. Zero Maintenance: No infrastructure management, tuning, or optimization required
  5. Concurrent Workloads: Multiple virtual warehouses can operate simultaneously without resource contention
  6. Instant Data Sharing: Share data across organizations without data movement
  7. Built-in Security: End-to-end encryption, both in transit and at rest
  8. High Availability: Built-in redundancy and automatic failover capabilities

Client Connectivity Options

Users and applications can connect to Snowflake through various interfaces: