Home Database Getting Started: Account Setup, Web UI, and First Queries
Beginner 3 min · July 17, 2026

Getting Started: Account Setup, Web UI, and First Queries

Learn how to set up a Snowflake account, navigate the Web UI, and run your first SQL queries.

N
Naren Founder & Principal Engineer

20+ years shipping high-throughput database systems. Lessons pulled from things that broke in production.

Follow
Production
production tested
July 17, 2026
last updated
2,439
articles · all by Naren
Before you start⏱ 15-20 min read
  • Basic knowledge of SQL (SELECT, INSERT, CREATE TABLE)
  • A web browser and internet connection
  • An email address to sign up for a free trial
 ● Production Incident 🔎 Debug Guide ⚙ Triage Commands
Quick Answer
  • Sign up for a free trial at signup.snowflake.com.
  • Use the Web UI (Snowsight) to create warehouses, databases, and schemas.
  • Run basic SQL: CREATE, INSERT, SELECT, and explore sample data.
  • Understand virtual warehouses as compute resources.
  • Follow best practices like auto-suspend and role-based access.
✦ Definition~90s read
What is Getting Started?

Snowflake is a cloud-native data platform that enables you to store, manage, and analyze data using SQL, with automatic scaling and pay-per-use pricing.

Think of Snowflake as a giant, shared library where you can store and analyze data.
Plain-English First

Think of Snowflake as a giant, shared library where you can store and analyze data. The account is your library card, the Web UI is the reading room, and SQL queries are the questions you ask the librarian. Virtual warehouses are like temporary study rooms that you can set up and tear down as needed, so you only pay for the time you use them.

⚙ Browser compatibility
Latest versions — ✓ supported
ChromeFirefoxSafariEdge

Imagine you're a data analyst at a fast-growing e-commerce company. Your team is drowning in CSV files, and every query takes forever. You need a data warehouse that's fast, scalable, and easy to use—without managing servers. That's where Snowflake comes in. Snowflake is a cloud-native data platform that separates storage and compute, allowing you to scale independently and pay only for what you use. In this tutorial, you'll go from zero to running your first queries in minutes. We'll cover account setup, navigating the Snowsight web interface, creating virtual warehouses, loading sample data, and writing basic SQL. By the end, you'll have a solid foundation to start building your own data pipelines. Let's dive in!

1. Creating a Snowflake Account

To get started, navigate to signup.snowflake.com and sign up for a free 30-day trial. You'll need to provide your email, choose a cloud provider (AWS, Azure, or GCP) and region. After verification, you'll receive a URL like https://app.snowflake.com. This is your Snowsight interface. Once logged in, you'll see the classic Snowflake Web UI. For this tutorial, we'll use Snowsight (the new UI). If you see the classic UI, click 'Preview' to switch. Your account comes with a default warehouse (COMPUTE_WH), a database (SNOWFLAKE_SAMPLE_DATA), and a role (ACCOUNTADMIN). We'll use these to run our first queries.

setup.sqlSQL
1
2
3
4
5
6
7
8
9
10
-- Check your current role and warehouse
SELECT CURRENT_ROLE(), CURRENT_WAREHOUSE();

-- Set the warehouse if not set
USE WAREHOUSE COMPUTE_WH;

-- Explore sample data
SHOW DATABASES;
USE DATABASE SNOWFLAKE_SAMPLE_DATA;
SHOW SCHEMAS;
Output
+----------------+-------------------+
| CURRENT_ROLE() | CURRENT_WAREHOUSE()|
+----------------+-------------------+
| ACCOUNTADMIN | COMPUTE_WH |
+----------------+-------------------+
+----------------------------------+
| "name" |
+----------------------------------+
| SNOWFLAKE_SAMPLE_DATA |
| ... |
+----------------------------------+
+----------------------------------+
| "name" |
+----------------------------------+
| TPCH_SF1 |
| TPCDS_SF10TCL |
| ... |
+----------------------------------+
💡Choose the Right Region
📊 Production Insight
In production, never use ACCOUNTADMIN for daily tasks. Create roles with least privilege.
🎯 Key Takeaway
Your Snowflake account is your entry point. Use the ACCOUNTADMIN role initially, but create custom roles for production.

2. Navigating Snowsight (Web UI)

Snowsight is the modern web interface for Snowflake. The left sidebar contains: Home, Data (databases, schemas, tables), Worksheets (SQL editor), Warehouses (compute resources), Admin (users, roles, billing). The top bar shows your current role and warehouse. To create a new worksheet, click 'Worksheets' > '+' > 'New Worksheet'. This opens a SQL editor with syntax highlighting and query history. You can also browse sample data by clicking 'Data' and expanding databases. Let's explore the TPCH_SF1 schema.

explore.sqlSQL
1
2
3
4
5
6
7
8
9
-- List tables in TPCH_SF1
USE SCHEMA TPCH_SF1;
SHOW TABLES;

-- Describe a table
DESC TABLE CUSTOMER;

-- Preview data
SELECT * FROM CUSTOMER LIMIT 10;
Output
+----------------------------------+
| "name" |
+----------------------------------+
| CUSTOMER |
| LINEITEM |
| NATION |
| ORDERS |
| PART |
| PARTSUPP |
| REGION |
| SUPPLIER |
+----------------------------------+
+-------------+-----------+--------+...+
| C_CUSTKEY | C_NAME | ... |
+-------------+-----------+--------+...+
| 1 | Customer#1| ... |
| ... | ... | ... |
+-------------+-----------+--------+...+
(10 rows)
🔥Snowsight vs Classic UI
📊 Production Insight
Use worksheets to document queries. Share them with your team via the 'Share' button.
🎯 Key Takeaway
Snowsight is your primary workspace. Use worksheets to write and save queries, and the Data tab to explore schemas.

3. Understanding Virtual Warehouses

A virtual warehouse is a cluster of compute resources (CPU, memory, storage) that executes queries. You can create multiple warehouses of different sizes (X-Small to 6X-Large) and set them to auto-suspend after inactivity. This decouples compute from storage, so you only pay for compute when queries run. To create a warehouse, go to Admin > Warehouses > + Warehouse. Give it a name, choose size, and set auto-suspend (e.g., 5 minutes). You can also create warehouses via SQL.

warehouse.sqlSQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-- Create a warehouse
CREATE WAREHOUSE my_wh
  WITH WAREHOUSE_SIZE = 'XSMALL'
  AUTO_SUSPEND = 300
  AUTO_RESUME = TRUE
  INITIALLY_SUSPENDED = TRUE;

-- Use the warehouse
USE WAREHOUSE my_wh;

-- Alter warehouse (e.g., resize)
ALTER WAREHOUSE my_wh SET WAREHOUSE_SIZE = 'SMALL';

-- Drop warehouse (if not needed)
DROP WAREHOUSE IF EXISTS my_wh;
Output
Warehouse MY_WH successfully created.
Statement executed successfully.
Warehouse MY_WH successfully altered.
Warehouse MY_WH successfully dropped.
⚠ Warehouse Costs
📊 Production Insight
For production, use multi-cluster warehouses for concurrency. Set auto-suspend to 5-10 minutes for dev, 1 minute for ad-hoc.
🎯 Key Takeaway
Virtual warehouses are the compute engine. Choose size based on query complexity and concurrency. Auto-suspend saves costs.

4. Creating Databases and Schemas

Databases are logical containers for schemas, which contain tables, views, and other objects. You can create databases and schemas with simple SQL. Snowflake also supports cloning databases for zero-copy cloning, which is useful for creating development environments. Let's create a database for our e-commerce example.

create_db.sqlSQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
-- Create a database
CREATE DATABASE IF NOT EXISTS ecommerce_db;

-- Create a schema
CREATE SCHEMA IF NOT EXISTS ecommerce_db.raw_data;

-- Use the schema
USE SCHEMA ecommerce_db.raw_data;

-- Create a table
CREATE TABLE customers (
  customer_id INTEGER PRIMARY KEY,
  name VARCHAR(100),
  email VARCHAR(100),
  signup_date DATE
);

-- Insert sample data
INSERT INTO customers VALUES
  (1, 'Alice', 'alice@example.com', '2023-01-15'),
  (2, 'Bob', 'bob@example.com', '2023-02-20');

-- Query the table
SELECT * FROM customers;
Output
+-------------+-------+------------------+-------------+
| CUSTOMER_ID | NAME | EMAIL | SIGNUP_DATE |
+-------------+-------+------------------+-------------+
| 1 | Alice | alice@example.com| 2023-01-15 |
| 2 | Bob | bob@example.com | 2023-02-20 |
+-------------+-------+------------------+-------------+
💡Zero-Copy Cloning
📊 Production Insight
In production, separate raw, staging, and analytics schemas. Use time travel to recover dropped objects.
🎯 Key Takeaway
Organize data into databases and schemas. Use cloning for dev/test environments.

5. Loading Data into Snowflake

Snowflake supports loading data from files (CSV, JSON, Parquet) via stages. A stage is a location where data files are stored, either internal (Snowflake-managed) or external (S3, Azure Blob). You can use the PUT command to upload files to a stage, then COPY INTO to load into a table. For this tutorial, we'll use a simple CSV file. First, create a file format and stage.

load_data.sqlSQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
-- Create a file format for CSV
CREATE FILE FORMAT csv_format
  TYPE = 'CSV'
  FIELD_OPTIONALLY_ENCLOSED_BY = '"'
  SKIP_HEADER = 1;

-- Create an internal stage
CREATE STAGE my_stage
  FILE_FORMAT = csv_format;

-- Upload file (using Snowsight or CLI)
-- In Snowsight: Data > Databases > ecommerce_db > Stages > my_stage > + Upload
-- Or using SnowSQL: PUT file:///path/to/orders.csv @my_stage;

-- Create table for orders
CREATE TABLE orders (
  order_id INTEGER,
  customer_id INTEGER,
  order_date DATE,
  amount DECIMAL(10,2)
);

-- Load data from stage
COPY INTO orders
  FROM @my_stage/orders.csv
  FILE_FORMAT = csv_format
  ON_ERROR = 'CONTINUE';

-- Verify
SELECT * FROM orders;
Output
+----------+-------------+------------+--------+
| ORDER_ID | CUSTOMER_ID | ORDER_DATE | AMOUNT |
+----------+-------------+------------+--------+
| 101 | 1 | 2023-03-01 | 50.00 |
| 102 | 2 | 2023-03-05 | 75.00 |
+----------+-------------+------------+--------+
🔥Loading Best Practices
📊 Production Insight
Automate loading with Snowpipe for continuous ingestion. Monitor load errors with COPY_HISTORY.
🎯 Key Takeaway
Stages are the bridge between files and tables. Use COPY INTO for efficient bulk loading.

6. Running Your First Queries

Now that we have data, let's run some analytical queries. Snowflake supports standard SQL with extensions for analytics. We'll explore joins, aggregations, and window functions. Let's find total sales per customer.

first_queries.sqlSQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-- Join customers and orders
SELECT c.name, SUM(o.amount) AS total_spent
FROM customers c
JOIN orders o ON c.customer_id = o.customer_id
GROUP BY c.name
ORDER BY total_spent DESC;

-- Use a window function to rank customers
SELECT name, total_spent,
  RANK() OVER (ORDER BY total_spent DESC) AS rank
FROM (
  SELECT c.name, SUM(o.amount) AS total_spent
  FROM customers c
  JOIN orders o ON c.customer_id = o.customer_id
  GROUP BY c.name
);
Output
+-------+-------------+
| NAME | TOTAL_SPENT |
+-------+-------------+
| Bob | 75.00 |
| Alice | 50.00 |
+-------+-------------+
+-------+-------------+------+
| NAME | TOTAL_SPENT | RANK |
+-------+-------------+------+
| Bob | 75.00 | 1 |
| Alice | 50.00 | 2 |
+-------+-------------+------+
💡Query Optimization
📊 Production Insight
Leverage clustering keys on large tables to improve query performance. Monitor query profiles for bottlenecks.
🎯 Key Takeaway
Snowflake runs standard SQL. Use joins, aggregations, and window functions for analytics.

7. Managing Roles and Permissions

Snowflake uses role-based access control (RBAC). The default roles are: ACCOUNTADMIN (full access), SECURITYADMIN (manage roles), SYSADMIN (create warehouses/databases), USERADMIN (manage users), PUBLIC (default for all users). Best practice: create custom roles with least privilege. For example, create a role 'analyst' that can only SELECT from specific schemas.

roles.sqlSQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-- Create a custom role
CREATE ROLE analyst;

-- Grant usage on database and schema
GRANT USAGE ON DATABASE ecommerce_db TO ROLE analyst;
GRANT USAGE ON SCHEMA ecommerce_db.raw_data TO ROLE analyst;

-- Grant SELECT on all tables in schema
GRANT SELECT ON ALL TABLES IN SCHEMA ecommerce_db.raw_data TO ROLE analyst;

-- Create a user and assign role
CREATE USER analyst_user
  PASSWORD = 'strong_password'
  DEFAULT_ROLE = analyst
  MUST_CHANGE_PASSWORD = TRUE;

GRANT ROLE analyst TO USER analyst_user;
Output
Role ANALYST successfully created.
Grant succeeded.
Grant succeeded.
Grant succeeded.
User ANALYST_USER successfully created.
Grant succeeded.
⚠ Password Policies
📊 Production Insight
Regularly audit privileges with SHOW GRANTS. Use SCIM for automated user provisioning.
🎯 Key Takeaway
Use RBAC to control access. Create roles for job functions and assign users accordingly.

8. Monitoring Usage and Costs

Snowflake provides account usage views and information schema to monitor queries, warehouse usage, and storage. The ACCOUNT_USAGE schema contains views like QUERY_HISTORY, WAREHOUSE_METERING_HISTORY, and STORAGE_USAGE. You can also set resource monitors to cap credit consumption.

monitor.sqlSQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
-- View recent queries
SELECT query_text, warehouse_size, credits_used_cloud_services
FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY
WHERE start_time > DATEADD('day', -1, CURRENT_TIMESTAMP())
ORDER BY start_time DESC
LIMIT 10;

-- Check warehouse credit usage
SELECT warehouse_name, SUM(credits_used) AS total_credits
FROM SNOWFLAKE.ACCOUNT_USAGE.WAREHOUSE_METERING_HISTORY
WHERE start_time > DATEADD('day', -7, CURRENT_TIMESTAMP())
GROUP BY warehouse_name;

-- Create a resource monitor
CREATE RESOURCE MONITOR daily_limit
  WITH CREDIT_QUOTA = 100
  FREQUENCY = 'DAILY'
  START_TIMESTAMP = '2024-01-01 00:00:00'
  TRIGGERS ON 80 PERCENT DO NOTIFY
            ON 100 PERCENT DO SUSPEND;

ALTER WAREHOUSE my_wh SET RESOURCE_MONITOR = daily_limit;
Output
+----------------------------------+----------------+------------------------+
| QUERY_TEXT | WAREHOUSE_SIZE | CREDITS_USED_CLOUD_SERV|
+----------------------------------+----------------+------------------------+
| SELECT * FROM customers... | XSMALL | 0.01 |
+----------------------------------+----------------+------------------------+
+----------------+---------------+
| WAREHOUSE_NAME | TOTAL_CREDITS |
+----------------+---------------+
| COMPUTE_WH | 5.2 |
| MY_WH | 1.1 |
+----------------+---------------+
Resource Monitor DAILY_LIMIT successfully created.
Warehouse MY_WH successfully altered.
🔥Cost Management
📊 Production Insight
Create alerts for unusual spending. Use query tagging to track costs by project.
🎯 Key Takeaway
Monitor usage with ACCOUNT_USAGE views and resource monitors to control costs.
● Production incidentPOST-MORTEMseverity: high

The Case of the Unbounded Warehouse

Symptom
The team noticed a huge spike in Snowflake costs on Monday morning.
Assumption
The developer assumed the warehouse would auto-suspend after a few minutes of inactivity.
Root cause
The warehouse was set to 'Always On' mode (no auto-suspend) and a long-running query kept it active.
Fix
Set auto-suspend to 5 minutes for all non-production warehouses and implemented cost alerts.
Key lesson
  • Always configure auto-suspend for warehouses, especially in dev/test.
  • Use resource monitors to cap daily/weekly credits.
  • Regularly review warehouse usage in Account Usage views.
  • Avoid running large queries on X-Large warehouses unnecessarily.
  • Implement role-based access to prevent unauthorized warehouse creation.
Production debug guideSymptom to Action3 entries
Symptom · 01
Cannot connect to Snowflake from BI tool
Fix
Check network policies, user authentication, and warehouse status. Ensure the user has USAGE privilege on the warehouse.
Symptom · 02
Query runs slowly
Fix
Check warehouse size, concurrency, and query profile. Consider scaling up or using auto-scale.
Symptom · 03
Costs higher than expected
Fix
Review warehouse credit usage in ACCOUNT_USAGE.WAREHOUSE_METERING_HISTORY. Look for warehouses without auto-suspend.
★ Quick Debug Cheat SheetCommon Snowflake setup issues and immediate fixes.
Login fails
Immediate action
Verify account identifier and credentials.
Commands
SHOW NETWORK POLICIES;
SELECT CURRENT_USER(), CURRENT_ACCOUNT();
Fix now
Reset password or contact admin.
No warehouse selected+
Immediate action
Set a warehouse for the session.
Commands
USE WAREHOUSE my_wh;
ALTER SESSION SET WAREHOUSE = my_wh;
Fix now
Create a warehouse if none exists: CREATE WAREHOUSE my_wh;
Database not found+
Immediate action
Check database name and schema.
Commands
SHOW DATABASES;
USE DATABASE my_db;
Fix now
Create database: CREATE DATABASE my_db;
FeatureSnowflakeTraditional Data Warehouse
Compute/StorageSeparated, independent scalingTightly coupled
PricingPay per credit (compute + storage)Fixed hardware costs
Auto-scalingYes, multi-cluster warehousesManual scaling
Zero-copy cloningYes, instant and storage-freeFull copy required
Time travelUp to 90 daysLimited or none
⚙ Quick Reference
8 commands from this guide
FileCommand / CodePurpose
setup.sqlSELECT CURRENT_ROLE(), CURRENT_WAREHOUSE();1. Creating a Snowflake Account
explore.sqlUSE SCHEMA TPCH_SF1;2. Navigating Snowsight (Web UI)
warehouse.sqlCREATE WAREHOUSE my_wh3. Understanding Virtual Warehouses
create_db.sqlCREATE DATABASE IF NOT EXISTS ecommerce_db;4. Creating Databases and Schemas
load_data.sqlCREATE FILE FORMAT csv_format5. Loading Data into Snowflake
first_queries.sqlSELECT c.name, SUM(o.amount) AS total_spent6. Running Your First Queries
roles.sqlCREATE ROLE analyst;7. Managing Roles and Permissions
monitor.sqlSELECT query_text, warehouse_size, credits_used_cloud_services8. Monitoring Usage and Costs

Key takeaways

1
Snowflake separates storage and compute, allowing independent scaling and cost savings.
2
Use Snowsight for querying, monitoring, and managing your Snowflake environment.
3
Virtual warehouses are the compute engine; configure auto-suspend and resource monitors to control costs.
4
Organize data into databases and schemas, and use RBAC for secure access.
5
Leverage Snowflake's SQL capabilities for analytics, including joins, aggregations, and window functions.

Common mistakes to avoid

3 patterns
×

Forgetting to set a warehouse before querying

×

Using ACCOUNTADMIN for daily tasks

×

Not setting auto-suspend on warehouses

INTERVIEW PREP · PRACTICE MODE

Interview Questions on This Topic

Q01JUNIOR
What is a virtual warehouse in Snowflake?
Q02SENIOR
How does Snowflake separate storage and compute?
Q03SENIOR
Explain the concept of zero-copy cloning in Snowflake.
Q01 of 03JUNIOR

What is a virtual warehouse in Snowflake?

ANSWER
A virtual warehouse is a cluster of compute resources that executes SQL queries. It can be scaled up/down and auto-suspended to save costs.
FAQ · 5 QUESTIONS

Frequently Asked Questions

01
What is the difference between a virtual warehouse and a database?
02
How do I reset my Snowflake password?
03
Can I use Snowflake for free?
04
How do I share data with another Snowflake account?
05
What is the maximum size of a virtual warehouse?
N
Naren Founder & Principal Engineer

20+ years shipping high-throughput database systems. Lessons pulled from things that broke in production.

Follow
Verified
production tested
July 17, 2026
last updated
2,439
articles · all by Naren
🔥

That's Snowflake. Mark it forged?

3 min read · try the examples if you haven't

Previous
Introduction: Cloud Data Warehousing for Modern Analytics
2 / 33 · Snowflake
Next
Databases, Schemas, Tables, and Data Types