Snowflake hello world
'Create a minimal working Snowflake example with real SQL queries.From its SKILL.md
npx -y skills add jeremylongshore/claude-code-plugins-plus-skills --skill snowflake-hello-worldAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
5.9 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it
Snowflake Hello World
Overview
Minimal working examples demonstrating core Snowflake operations: connect, query, create objects, load data.
Prerequisites
- Completed
snowflake-install-authsetup - Valid credentials configured in environment
- A warehouse available (e.g.,
COMPUTE_WH)
Instructions
Step 1: Connect and Query (Node.js)
// hello-snowflake.ts
import snowflake from 'snowflake-sdk';
const connection = snowflake.createConnection({
account: process.env.SNOWFLAKE_ACCOUNT!,
username: process.env.SNOWFLAKE_USER!,
password: process.env.SNOWFLAKE_PASSWORD!,
warehouse: 'COMPUTE_WH',
database: 'DEMO_DB',
schema: 'PUBLIC',
});
connection.connect((err) => {
if (err) {
console.error('Connection failed:', err.message);
process.exit(1);
}
console.log('Connected to Snowflake!');
// Run a simple query
connection.execute({
sqlText: `SELECT CURRENT_TIMESTAMP() AS now,
CURRENT_WAREHOUSE() AS warehouse,
CURRENT_DATABASE() AS database,
CURRENT_ROLE() AS role`,
complete: (err, stmt, rows) => {
if (err) {
console.error('Query failed:', err.message);
return;
}
console.log('Query result:', rows);
connection.destroy((err) => {
if (err) console.error('Disconnect error:', err.message);
});
},
});
});
Step 2: Connect and Query (Python)
# hello_snowflake.py
import snowflake.connector
import os
conn = snowflake.connector.connect(
account=os.environ['SNOWFLAKE_ACCOUNT'],
user=os.environ['SNOWFLAKE_USER'],
password=os.environ['SNOWFLAKE_PASSWORD'],
warehouse='COMPUTE_WH',
database='DEMO_DB',
schema='PUBLIC',
)
try:
cursor = conn.cursor()
cursor.execute("""
SELECT CURRENT_TIMESTAMP() AS now,
CURRENT_WAREHOUSE() AS warehouse,
CURRENT_DATABASE() AS database,
CURRENT_ROLE() AS role
""")
for row in cursor:
print(f"Time: {row[0]}, Warehouse: {row[1]}, DB: {row[2]}, Role: {row[3]}")
finally:
conn.close()
Step 3: Create Database Objects
-- Run via connection.execute() or snowflake worksheet
CREATE DATABASE IF NOT EXISTS DEMO_DB;
CREATE SCHEMA IF NOT EXISTS DEMO_DB.MY_SCHEMA;
CREATE OR REPLACE TABLE DEMO_DB.MY_SCHEMA.USERS (
id INTEGER AUTOINCREMENT,
name VARCHAR(100) NOT NULL,
email VARCHAR(255),
created_at TIMESTAMP_NTZ DEFAULT CURRENT_TIMESTAMP()
);
INSERT INTO DEMO_DB.MY_SCHEMA.USERS (name, email)
VALUES ('Alice', '[email protected]'),
('Bob', '[email protected]');
SELECT * FROM DEMO_DB.MY_SCHEMA.USERS;
Step 4: Parameterized Queries (Node.js)
// Insert with bind parameters — prevents SQL injection
connection.execute({
sqlText: 'INSERT INTO DEMO_DB.MY_SCHEMA.USERS (name, email) VALUES (?, ?)',
binds: ['Charlie', '[email protected]'],
complete: (err, stmt, rows) => {
if (err) {
console.error('Insert failed:', err.message);
return;
}
console.log('Inserted rows:', stmt.getNumUpdatedRows());
},
});
// Fetch results with streaming for large datasets
connection.execute({
sqlText: 'SELECT * FROM DEMO_DB.MY_SCHEMA.USERS ORDER BY created_at DESC',
streamResult: true,
complete: (err, stmt) => {
if (err) { console.error(err.message); return; }
const stream = stmt.streamRows();
stream.on('data', (row) => console.log('Row:', row));
stream.on('end', () => console.log('All rows fetched'));
stream.on('error', (err) => console.error('Stream error:', err));
},
});
Step 5: Parameterized Queries (Python)
# Insert with bind parameters
cursor.execute(
"INSERT INTO DEMO_DB.MY_SCHEMA.USERS (name, email) VALUES (%s, %s)",
('Charlie', '[email protected]')
)
print(f"Inserted {cursor.rowcount} row(s)")
# Fetch all results
cursor.execute("SELECT * FROM DEMO_DB.MY_SCHEMA.USERS ORDER BY created_at DESC")
results = cursor.fetchall()
for row in results:
print(f"ID: {row[0]}, Name: {row[1]}, Email: {row[2]}")
# Fetch as pandas DataFrame
import pandas as pd
cursor.execute("SELECT * FROM DEMO_DB.MY_SCHEMA.USERS")
df = cursor.fetch_pandas_all()
print(df)
Output
Connected to Snowflake!
Query result: [{ NOW: '2026-03-22T...', WAREHOUSE: 'COMPUTE_WH', DATABASE: 'DEMO_DB', ROLE: 'SYSADMIN' }]
Inserted 1 row(s)
Row: { ID: 1, NAME: 'Alice', EMAIL: '[email protected]', CREATED_AT: '...' }
Error Handling
| Error | Cause | Solution |
|---|---|---|
002003 (42S02): Object does not exist | Table/DB not created yet | Run CREATE statements first |
000606: No active warehouse | No warehouse set or suspended | USE WAREHOUSE COMPUTE_WH; or set in connection |
001003: SQL compilation error: syntax error | Bad SQL syntax | Check SQL against Snowflake SQL reference |
100035: No space left on device | Large result set, local disk full | Use streamResult: true or limit results |
Resources
Next Steps
Proceed to snowflake-local-dev-loop for development workflow setup.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.