> Jitterbugging
← All 50 Days
Day 4 of 50
D1: Architecture & Features Week 1
DAY 04

Snowflake Interfaces

Snowflake offers several client interfaces: Snowsight, Snowflake CLI, SnowSQL, the VS Code extension, and drivers for application code. The exam tests which command works from which interface, and the PUT/GET rule catches almost everyone the first time.

🗣️ Plain-English First

Some of these terms get used loosely. Here are the distinctions:

TermPlain meaning
WorksheetA SQL editor tab inside Snowsight. Like a Google Doc for queries: saved, shareable, with results panes underneath.
CLI (Command-Line Interface)A program you run from your terminal. Snowflake has two: the new Snowflake CLI (command: snow) and the older SnowSQL (command: snowsql).
Driver / ConnectorA library that lets your application code (Python, Java, Node, .NET, ODBC, JDBC) talk to Snowflake. Same Snowflake on the other end. Different ways to connect.
PUT / GETSQL commands that move files between your local machine and a Snowflake stage. They look like SQL but need access to your local file system, so they only run from a client tool.
📘

Today’s Concept

Micro-Concept 1: Snowsight (The Web UI)

Snowsight is the modern web-based interface that ships with every Snowflake account. You don’t install anything; just open a browser and log in. It covers most everyday work:

Worksheets: write and run SQL, with autocomplete, syntax highlighting, and result panes.
Query History: every query you’ve run, with timing, status, and a clickable Query Profile (we use this heavily in Week 6).
Dashboards: chart query results into shareable dashboards.
Notebooks: Python and SQL notebooks running inside Snowflake (Day 15).
Admin: warehouses, users, roles, resource monitors, network policies, billing.
Marketplace: browse and acquire data products.

For most analyst and developer work, Snowsight is enough. It has one notable limitation: no local file access. Anything that needs to read or write files on your laptop has to come from a CLI client.


© Snowflake Inc.

Micro-Concept 2: The Two CLI Clients (Snowflake CLI vs SnowSQL)

Snowflake ships two command-line clients today. Both work, they coexist, and they target slightly different needs.

Snowflake CLI (snow)SnowSQL (snowsql)
Released2024. Newer, actively developedLong-standing, classic SQL CLI
ScopeSQL plus Snowpark, Streamlit, Native Apps, dbt, Snowpark Container ServicesPure SQL execution from the terminal
StatusAll new features land hereStill supported (1.4.x line through 2027). No new features
Snowflake’s recommendationUse this for new projectsMigrate when you can
PUT / GET file commands✅ Supported✅ Supported

Exam-safe phrasing: SnowSQL is not deprecated; both clients work today. All new feature investment goes into Snowflake CLI.

Micro-Concept 3: The PUT / GET Trap

This is the single most-tested item from Domain 1.2. Two SQL-looking commands cannot run from Snowsight worksheets:

PUT file://<local_path> @<stage>: uploads a file from your machine to a stage.
GET @<stage>/<file> file://<local_dir>: downloads a file from a stage to your machine.

Why can’t they run from a browser? The browser sandbox can’t read or write your local file system. PUT and GET need a client that can: Snowflake CLI, SnowSQL, or a driver with the right APIs.

CommandSnowsightSnowflake CLI / SnowSQLWhy
SELECT, INSERT, COPY INTO, MERGEServer-side SQL. Runs on Snowflake
SHOW, DESCRIBE, GRANT, REVOKEServer-side SQL
LIST @stage, REMOVE @stageServer-side. Operates on the stage, no local files
PUT file://… @stageReads from your local file system
GET @stage file://…Writes to your local file system

Heads-up: Snowsight does offer browser-based file upload via the UI for small ad-hoc uploads. But the SQL commands PUT and GET themselves still cannot run in a worksheet. The exam tests the SQL command behaviour, not the UI affordance.

Micro-Concept 4: VS Code Extension

The Snowflake Extension for Visual Studio Code lets developers stay in their IDE while working with Snowflake. It supports:

→ Browsing databases, schemas, tables, and views in a sidebar.
→ Running SQL files against your account.
→ Editing and running Notebooks.
→ Writing and deploying Snowpark Python, Streamlit, and Native App code.

It is optional and free. For the exam, remember this: VS Code with the Snowflake extension is a supported way to author and run SQL, notebooks, and Snowpark code.

Micro-Concept 5: Drivers & Connectors

For application code, Snowflake provides:

Snowflake Connector for Python: most popular for data work.
Snowpark APIs (Python, Java, Scala): code runs inside Snowflake (Day 15).
JDBC driver: for any JVM language.
ODBC driver: for tools like Excel, Tableau, Power BI.
Node.js driver, .NET driver, Go driver, PHP driver.

You don’t need to memorize each driver’s quirks for SnowPro Core. Know they all exist, and that picking the right one is a customer choice, not a Snowflake-side restriction.

Micro-Concept 6: How to Choose for the Exam

The exam phrases questions like “Which interface is best for X?” Match X to one of these answers:

NeedBest fit
Ad-hoc SQL, dashboards, admin clicks, Query ProfileSnowsight
Uploading/downloading files (PUT / GET)Snowflake CLI or SnowSQL
Scripted batch jobs, scheduled SQL automationSnowflake CLI or SnowSQL
Deploying Snowpark, Streamlit, Native Apps from local codeSnowflake CLI
Browsing data and authoring SQL inside an IDEVS Code extension
Embedding Snowflake calls in app codeDriver/connector for that language
Plugging Snowflake into Tableau / Power BI / ExcelODBC / JDBC driver

Cheat Sheet

ConceptWhat to remember
SnowsightWeb UI for worksheets, dashboards, query profile, admin. No local file access.
Snowflake CLI (snow)Newer CLI. SQL + Snowpark + Streamlit + Native Apps. All new features land here.
SnowSQL (snowsql)Older CLI. Still supported. Pure SQL. Recommended to migrate, not deprecated.
PUT / GETNeed a client with local file access. Never runs from Snowsight worksheets
VS Code extensionOptional IDE plug-in for browsing, SQL, Snowpark, notebooks
DriversPython connector, JDBC, ODBC, Node.js, .NET, Go, PHP
Query Profile locationSnowsight → Activity → Query History → click query → Query Profile tab
Snowflake-managedSnowsight runs on Snowflake’s infrastructure (you don’t host it)
🎯 Exam Tip

The PUT/GET question is almost guaranteed to appear. If a multi-select asks “which can run from a Snowsight worksheet?”, PUT and GET are never in the answer. They need a CLI client (or a driver) to access your local file system. The other classic trap is the claim that SnowSQL is deprecated. That is false. Snowflake recommends moving to the new CLI for new development, but SnowSQL is still supported and shipping bug-fix releases. “Recommended to transition” ≠ “deprecated.”

🛠️

Hands-On Lab

Type: LAB (UI tour + optional CLI install)  |  Time: ~15 minutes  |  Credits: <0.1
1

Create a named worksheet. In Snowsight, top-left menu, click + Worksheet. Name it Day4Lab. It is a standard SQL tab.

2

Run a query and find its profile. Paste and run:

SQL
USE WAREHOUSE lab_xs;

SELECT O_ORDERSTATUS, COUNT(*) AS cnt
FROM SNOWFLAKE_SAMPLE_DATA.TPCH_SF1.ORDERS
GROUP BY O_ORDERSTATUS
ORDER BY cnt DESC;

Go to Activity → Query History. Find the query, click the SQL row, then open the Query Profile tab. You’ll see the execution plan as a node graph. We dissect Query Profile properly on Day 36.

👀 Observe: Query Profile lives in the UI. Some exam questions ask where to see the execution plan visually. The answer is Snowsight Query Profile.
3

Build a one-tile dashboard. Click the chart icon next to your results pane. Pick a bar chart on O_ORDERSTATUS / cnt. Save the chart as a tile in a new dashboard called Day4Dashboard. This is Snowsight’s no-code BI for ad-hoc visualizations.

👀 Observe: Dashboards are a Snowsight-only feature. They aren’t part of any CLI.
4

Try PUT in Snowsight (and watch it fail). Paste and run:

SQL
PUT file:///tmp/anything.csv @~;
👀 Observe: Snowsight will error. The error message points to using a client tool. You have just empirically proven the PUT/GET trap.
5

(Optional, ~5 min) Install Snowflake CLI locally. If you want to try PUT and GET, install snow from docs.snowflake.com. It works on macOS, Linux, and Windows. Then:

Bash
# Add a connection
snow connection add

# Test it
snow connection test

# Run any SQL
snow sql -q "SELECT CURRENT_VERSION()"
👀 Observe: If snow connection test succeeds, you have an interface that can run PUT and GET. We use it for real on Day 29 (stages) and Day 30 (loading).
6

Cleanup. No DB cleanup needed today. Suspend the warehouse if it’s still running.

SQL
ALTER WAREHOUSE lab_xs SUSPEND;
❄️

Snowflake Documentation

🔗

External References

Practice Questions

Options:

A. COPY INTO mytable FROM @mystage
B. PUT file:///tmp/data.csv @mystage
C. LIST @mystage
D. GET @mystage/data.csv file:///tmp
E. REMOVE @mystage/old_file.csv

✅ Answer: B and D

Why B and D: PUT and GET move files between your local file system and a Snowflake stage. The browser can’t access local files, so they must run from a CLI (Snowflake CLI or SnowSQL).

Why not A, C, E: COPY INTO, LIST, and REMOVE are server-side SQL. They operate inside Snowflake and run from any interface, including Snowsight.

Options:

A. Snowsight Worksheets
B. Snowflake CLI or SnowSQL
C. Snowsight Dashboards
D. The Snowflake mobile app

✅ Answer: B

Why B: CLI clients (Snowflake CLI or SnowSQL) are headless and scriptable. That fits cron, CI/CD, or any unattended automation. Tasks can also be scheduled inside Snowflake using TASK objects (Day 33), but the CLI is the right “interface” answer here.

Why not A or C: Snowsight is interactive and requires clicks. There is no headless mode for browser-driven worksheets.

Why not D: Snowflake doesn’t ship a mobile app for query execution.

Options:

A. Worksheets → click the result row → “Show Plan”
B. Activity → Query History → click the query → Query Profile
C. Admin → Warehouses → click the warehouse → Active Queries
D. Marketplace → My Queries

✅ Answer: B

Why B: Query Profile lives under Activity → Query History → drill into a specific query. This is the standard path the exam expects.

Why not A, C, D: None of these are valid Snowsight paths to Query Profile.

Options:

A. SnowSQL has been deprecated and is no longer supported
B. Snowflake CLI (snow) and SnowSQL coexist; new features land in the Snowflake CLI
C. Snowflake CLI replaces Snowsight as the primary user interface
D. Both CLIs require Business Critical edition to run

✅ Answer: B

Why B: Snowflake recommends transitioning to the new Snowflake CLI for new development, but SnowSQL is still actively supported (1.4.x line through 2027). Both work; new feature investment is in snow.

Why not A: SnowSQL is not deprecated. “Recommended to transition” is different from “deprecated.”

Why not C: Snowsight is still the primary web UI. The CLI is for scriptable, file-system, and dev workloads.

Why not D: CLIs work on every edition. There is no edition gate.

Options:

A. Browse databases, schemas, and tables in a sidebar
B. Replace the need for a Snowflake account
C. Author and run SQL files and Notebooks against a Snowflake account
D. Provide local on-disk Snowflake compute
E. Manage Snowflake billing and resource monitors visually

✅ Answer: A and C

Why A: The extension provides an object explorer in the IDE sidebar.

Why C: You can author and execute SQL and Notebooks against a connected Snowflake account from VS Code.

Why not B or D: The extension is a client. It doesn’t run a local Snowflake or replace the cloud account.

Why not E: Billing and resource monitors are managed in Snowsight, not in the VS Code extension.

📝 Recap

Today you learned: Snowsight is the web UI for everyday SQL, dashboards, profiles, and admin. Snowflake CLI (snow) is the modern command-line client where new features land. SnowSQL is the older CLI, still supported, recommended to migrate. The VS Code extension brings Snowflake into your IDE. PUT and GET (the file transfer commands) only run from a CLI or driver, never from Snowsight worksheets.

Key takeaway: Match the interface to the need. Local files → CLI. Visual exploration / dashboards / Query Profile → Snowsight. Scripted automation → CLI. Embedded in app code → driver/connector.

Tomorrow (Day 5): Object hierarchy and the 12 database objects. We map Account → Database → Schema → object. We name the 12 things that count as “database objects” on the C03 exam. We also cover the difference between INFORMATION_SCHEMA (real-time, no dropped objects) and ACCOUNT_USAGE (45 min – 3 hr latency, 365-day history including dropped objects). Both questions show up on every test.

Abhay Krishnan

Abhay Krishnan

Senior Data & AI Consultant
Connect on LinkedIn

With over five years of data engineering experience at EY and Infosys, Abhay Krishnan specializes in building scalable data pipelines and cloud warehousing solutions. He is a certified SnowPro Core professional, alongside credentials in AWS and Azure. Abhay created this 50-day track to solve a problem he faced firsthand: the lack of a structured, free resource for Snowflake certification prep. Follow him on LinkedIn for more data engineering insights.