skills/data-engineering/snowflake/SKILL.md
Utilizes Snowflake for cloud-based data warehousing, enabling scalable SQL queries and analytics on large datasets.
npx skillsauth add alphaonedev/openclaw-graph snowflakeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill allows the AI to leverage Snowflake for cloud-based data warehousing, enabling efficient SQL queries and analytics on large-scale datasets for data engineering tasks.
Use this skill for scenarios involving big data analytics, ETL pipelines, scalable SQL operations, or integrating with cloud storage. Apply it when datasets exceed on-premise capabilities, such as processing terabytes of data in real-time analytics or data warehousing for BI tools.
CREATE DATABASE my_db; or scaling warehouses via API calls to /api/v2/warehouses.Always authenticate using environment variables for security, e.g., set $SNOWFLAKE_ACCOUNT, $SNOWFLAKE_USER, and $SNOWFLAKE_PASSWORD. Start by establishing a connection in code, then execute queries in a try-except block. For CLI usage, pipe queries directly. Pattern for Python:
import snowflake.connector
conn = snowflake.connector.connect(
user=os.getenv('SNOWFLAKE_USER'),
password=os.getenv('SNOWFLAKE_PASSWORD'),
account=os.getenv('SNOWFLAKE_ACCOUNT')
)
cur = conn.cursor()
For repeated tasks, use stored procedures: define with CREATE PROCEDURE proc_name() RETURNS VARCHAR AS $$ ... $$ LANGUAGE SQL;, then call via CALL proc_name();. In workflows, check warehouse status before queries to avoid timeouts.
Use SnowSQL CLI for interactive or scripted operations. Example command: snowsql -a $SNOWFLAKE_ACCOUNT -u $SNOWFLAKE_USER -p $SNOWFLAKE_PASSWORD -d my_database -s my_schema -w my_warehouse -q "SELECT * FROM my_table LIMIT 10;". Include flags like --noup to skip prompts or --format csv for output formatting.
For API interactions, target the Snowflake REST API:
{"sqlText": "SELECT * FROM my_table"}.Authorization: Bearer $SNOWFLAKE_TOKEN.Common SQL commands:
COPY INTO my_table FROM @my_stage/my_file.csv FILE_FORMAT = (TYPE = CSV);ALTER WAREHOUSE my_warehouse SET WAREHOUSE_SIZE = 'MEDIUM'; to scale resources.Integrate Snowflake with Python via the snowflake-connector-python library; install with pip install snowflake-connector-python. For AWS S3, configure external stages: CREATE STAGE my_s3_stage URL='s3://my-bucket/' CREDENTIALS=(AWS_KEY_ID='$AWS_ACCESS_KEY_ID' AWS_SECRET_KEY='$AWS_SECRET_ACCESS_KEY');. Use env vars for keys, e.g., $SNOWFLAKE_PRIVATE_KEY for key-pair auth. When combining with other tools, wrap in a function: for Spark integration, use spark.read.format("snowflake").options(**conn_params).load(), ensuring compatible data types. Always validate schemas before integration to prevent type mismatches.
Handle authentication errors by checking env vars first (e.g., if $SNOWFLAKE_ACCOUNT is unset, log "Missing account ID" and exit). For query errors, use try-except in Python:
try:
cur.execute("SELECT * FROM non_existent_table")
except snowflake.connector.errors.ProgrammingError as e:
print(f"Error: {e.errno} - {e.msg}")
Common issues: 390110 (invalid credentials) – retry with refreshed tokens; 2003 (syntax error) – validate SQL strings. For API calls, check HTTP status codes (e.g., 401 for unauthorized) and implement retries with exponential backoff. Log all errors with context, like query text, to aid debugging.
snowsql -a $SNOWFLAKE_ACCOUNT -u $SNOWFLAKE_USER -q "SELECT COUNT(*) FROM my_table;". In code: cur.execute("SELECT COUNT(*) FROM my_table"); result = cur.fetchone(); print(result[0]). Use this for quick analytics reports.COPY INTO my_table FROM @my_s3_stage/my_data.csv;. In a script: cur.execute("COPY INTO my_table FROM @my_s3_stage/my_data.csv FILE_FORMAT = (TYPE = CSV)"); conn.commit(). This pattern is ideal for ETL jobs, ensuring data is transformed before loading.tools
Root web development: project structure, tooling selection, deployment decisions
development
WebAssembly: Rust/Go/C to WASM, wasm-bindgen, Emscripten, WASM Component Model
development
Vue 3: Composition API script setup, Pinia, Vue Router 4, SFCs, Vite, Nuxt 3
tools
Tailwind CSS 4: utility classes, config, JIT, arbitrary values, darkMode, plugins, shadcn/ui