SysPadLessons › analytics lessons › Snowflake

How Snowflake works

Snowflake cloud data warehouse - typically the analytics sink at the end of a data pipeline. Billed by virtual-warehouse credits consumed while running.

Snowflake’s defining idea: storage and compute are completely separate. Your data sits in one shared store, and any number of independent compute clusters (virtual warehouses) query it without fighting each other. A giant ETL job and your executive dashboard can run at once, each on its own engine, and you pay only for the compute while it runs.

What you will learn

Storage and compute, pulled apart

In Snowflake your data lives in a single, shared storage layer (columnar, compressed micro-partitions). Compute is provided by separate clusters that read from it. Because they’re decoupled, you scale them independently, more compute doesn’t mean copying data; more data doesn’t mean more idle compute.

Virtual warehouses

A virtual warehouse is a compute cluster you size (X-Small to huge) for a workload. Many warehouses can query the same data simultaneously, e.g. one for BI, one for ETL, one for data science, each independently sized.

Analytics, BI, data sharing, and consolidating data from many sources for reporting.

Workload isolation

Because each warehouse is its own compute, a heavy job in one can’t starveanother. Your dashboards stay fast while a massive transformation runs on a different warehouse, no resource contention.

Pay for compute while it runs

Storage is billed by volume; compute is billed for the time warehouses are running (per-second after a minimum). Warehouses auto-suspend when idle and auto-resume on the next query, so you don’t pay for compute that’s doing nothing.

Flashcards

What is Snowflake’s defining architectural choice?
Separation of storage and compute: one shared data store, many independent compute clusters that scale separately.
What is a virtual warehouse?
An independently-sized compute cluster that queries the shared storage. Many can run on the same data at once.
How does Snowflake keep a heavy ETL job from slowing dashboards?
Run them on separate virtual warehouses, isolated compute means no resource contention between workloads.
How is Snowflake compute billed, and how do you avoid idle cost?
Per-second while a warehouse runs; auto-suspend on idle and auto-resume on query so you don’t pay for nothing.
One way Snowflake differs from classic Redshift?
Fully decoupled multi-cluster compute on shared storage with near-zero management (classic Redshift coupled compute+storage per cluster; RA3/Serverless narrow this).

Sources

Open the SysPad canvas · Official Snowflake documentation

Other analytics lessons