| name | snowflake-architecture-variants |
| description | Choose and implement Snowflake architecture blueprints: data lakehouse, data mesh,
data sharing, and Snowpark-native patterns for different scales.
Use when designing Snowflake data platforms, choosing between architectures,
or implementing data sharing and Snowpark patterns.
Trigger with phrases like "snowflake architecture", "snowflake lakehouse",
"snowflake data mesh", "snowflake data sharing", "snowflake Snowpark".
|
| allowed-tools | Read, Grep |
| version | 1.5.0 |
| license | MIT |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
| tags | ["saas","data-warehouse","analytics","snowflake"] |
| compatibility | Designed for Claude Code |
Snowflake Architecture Variants
Overview
Three validated architecture blueprints for Snowflake deployments: traditional data warehouse, lakehouse with Iceberg, and data mesh with data sharing.
Variant A: Traditional Data Warehouse
Best for: Single team, centralized analytics, < 50 users
┌──────────────────────────┐
│ Snowflake Account │
│ │
│ ┌────────┐ ┌────────┐ │
│ │ Bronze │→ │ Silver │→ Gold │
│ └────────┘ └────────┘ │
│ │
│ ┌─────────────────────┐ │
│ │ Single ETL Warehouse │ │
│ └─────────────────────┘ │
│ │
│ ┌──────────┐ ┌──────────┐ │
│ │ BI Tools │ │ Analysts │ │
│ └──────────┘ └──────────┘ │
└──────────────────────────────┘
CREATE DATABASE DW;
CREATE SCHEMA DW.RAW;
CREATE SCHEMA DW.CURATED;
CREATE SCHEMA DW.ANALYTICS;
CREATE WAREHOUSE ETL_WH WAREHOUSE_SIZE = 'MEDIUM' AUTO_SUSPEND = 120;
CREATE WAREHOUSE QUERY_WH WAREHOUSE_SIZE = 'SMALL' AUTO_SUSPEND = 60;
Variant B: Lakehouse with Iceberg Tables
Best for: Hybrid cloud/on-prem, existing data lake, open table format requirement
┌──────────────────────┐ ┌─────────────────────┐
│ External Storage │ │ Snowflake Account │
│ (S3/GCS/Azure) │ │ │
│ │ │ ┌────────────────┐ │
│ ┌─────────────┐ │←───→│ │ Iceberg Tables │ │
│ │ Parquet/ │ │ │ │ (managed) │ │
│ │ Iceberg │ │ │ └────────────────┘ │
│ │ files │ │ │ │
│ └─────────────┘ │ │ ┌────────────────┐ │
│ │ │ │ Native Tables │ │
│ ┌─────────────┐ │ │ │ (hot data) │ │
│ │ Spark/Flink │ │ │ └────────────────┘ │
│ │ (external) │ │ │ │
│ └─────────────┘ │ │ ┌────────────────┐ │
└──────────────────────┘ │ │ Dynamic Tables │ │
│ │ (transforms) │ │
│ └────────────────┘ │
└──────────────────────┘