Every cost and performance decision in Snowflake follows from this separation.
Snowflake splits a database into three layers that scale independently.
- Storage: table data lives in the cloud provider's object storage (S3, Azure Blob or GCS) as compressed, columnar, immutable files called micro-partitions. You pay per terabyte stored per month and never manage files or disks.
- Compute: virtual warehouses are clusters that run your queries. They hold no data permanently; any number of them can read the same tables at the same time without competing. You pay in credits only while a warehouse runs.
- Cloud services: the brain that handles logins, metadata, query compilation and optimization, transactions and access control. Much of it is free; it is billed only when its daily usage exceeds 10% of your warehouse compute.
Two consequences matter every day. First, workloads are isolated by giving them separate warehouses: the nightly ELT job and the BI dashboards never slow each other down. Second, storage is cheap and compute is what costs money, so performance work is mostly about scanning less data with less warehouse time.
You interact with Snowflake through Snowsight (the web UI with SQL worksheets and notebooks), the Snowflake CLI or SnowSQL, drivers for Python, JDBC and others, and tools like dbt. All of them send SQL; Snowflake's dialect is ANSI SQL with extensions.
Example
-- Which warehouse, role, database and schema is this session using?
SELECT CURRENT_WAREHOUSE(), CURRENT_ROLE(), CURRENT_DATABASE(), CURRENT_SCHEMA();
-- Snowflake ships a shared sample database you can query right away
SELECT c_mktsegment, COUNT(*) AS customers
FROM SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.CUSTOMER
GROUP BY c_mktsegment
ORDER BY customers DESC;
-- BUILDING 30142
-- FURNITURE 29968
-- ...Remember
- Storage, compute and cloud services scale and bill separately
- Warehouses are compute only; many can query the same data at once
- Compute time, not storage, is usually the main cost
Watch out for
- Thinking a warehouse is where data is stored; it only runs queries.