Snowflake Semantic View Patterns
Learn and apply 25 Snowflake Semantic View modeling patterns with interactive tutorials and examples.
Installation
- Make sure Claude is on your device and in your terminal.
Skills load from
~/.claude/skills/when Claude Code starts up — so you need it on your machine first. If you don't have it yet, install it once with the command below, then runclaudein any terminal to verify.One-time setupnpm i -g @anthropic-ai/claude-codeAlready have it? Skip ahead.
- Paste into Claude Code or into your terminal.
This copies the whole skill folder into
~/.claude/skills/snowflake-semantic-view-patterns/— the SKILL.md plus any scripts, reference docs, or templates the skill ships with. Safe default: works for every skill.Faster alternative (instruction-only skills)
Skips the clone and grabs only the SKILL.md file. Don't use this if the skill ships Python scripts, reference markdowns, or asset templates — they won't be downloaded and the skill will fail when it tries to load them.
Quick install (SKILL.md only)Sign up to copy - Restart Claude Code.
Quit and reopen Claude Code (or any other agent that loads from
~/.claude/skills/). New skills are picked up on startup. - Just ask Claude.
Skills auto-activate when your request matches the skill's description — no slash command needed. Trigger phrases live in the skill's own frontmatter; you can read them in the “What this skill does” section above.
Prefer to read the source first? Open on GitHub.
When Claude uses it
Use when learning Snowflake Semantic View patterns, teaching SV concepts, applying patterns to existing SVs, or building new SVs with best practices. Triggers: semantic view patterns, sv patterns, walk me through, time intelligence, range join, ASOF join, semi-additive, window metrics, derived metrics, role playing dimensions, accumulating snapshot, sv diagnostics, fan trap, USING clause, NON ADDITIVE BY.
What this skill does
Semantic View Patterns
Overview
Interactive, end-to-end tutorials for 25 Snowflake Semantic View (SV) modeling patterns. Each pattern ships with annotated DDL and YAML, seed data, and live SEMANTIC_VIEW() queries. Two modes:
- Tutorial mode — deploy a working example into your account, walk through the DDL/YAML, run live queries, then clean up. Triggers: "walk me through", "teach me", "what patterns are available".
- Apply mode — read your existing SV (or table list), map the pattern's structural roles to your columns, and generate adapted DDL/YAML. Triggers: "apply X to my SV", "my tables are…", "help me implement".
If ambiguous, ask which mode the user wants.
Available Patterns
range_join, asof_join, multi_path_metrics, shared_degenerate_dimension, semi_additive_metric, window_metrics, derived_metrics, time_intelligence, entity_facts, variables, multi_fact_table, ai_metadata, tags, introspection, fact_as_relationship_key, system_explain_semantic_query, caller_rights ⚠️ ACCOUNTADMIN, standard_sql, inline_sv ⚠️ PrPr, materialization ⚠️ PrPr, scoped_dataset ⚠️ PrPr, row_access_policies ⚠️ ACCOUNTADMIN, role_playing_dimensions, accumulating_snapshot, sv_diagnostics.
Each pattern lives at <skill_dir>/snippets/<name>/ with README.md, schema.sql, seed_data.sql, semantic_view.sql, semantic_view.yaml, queries.sql.
Authoring Format
Ask whether to use DDL (CREATE SEMANTIC VIEW) or YAML (SYSTEM$CREATE_SEMANTIC_VIEW_FROM_YAML). Skip if the user already specified.
-- Verify (dry-run):
CALL SYSTEM$CREATE_SEMANTIC_VIEW_FROM_YAML('DB.SCHEMA', $$ <yaml> $$, TRUE);
-- Deploy:
CALL SYSTEM$CREATE_SEMANTIC_VIEW_FROM_YAML('DB.SCHEMA', $$ <yaml> $$);
-- Export:
SELECT SYSTEM$READ_YAML_FROM_SEMANTIC_VIEW('DB.SCHEMA.SV');
DDL-only features (no YAML equivalent): AI_QUESTION_CATEGORIZATION, WITH TAG, MAX_STALENESS, ADD MATERIALIZATION, VARIABLES, ASOF joins, inline subqueries in TABLES. Apply these post-deploy via ALTER SEMANTIC VIEW.
Tutorial Workflow
- Pick the pattern from the user's request, or list patterns and ask.
- Pre-flight: probe
SHOW DATABASES LIKE 'SNOWFLAKE_LEARNING_DB'. If present, offer it as default; otherwise ask forDATABASE.SCHEMA, role, and warehouse. Track every object you create for cleanup. Access-control snippets use hardcoded DBs (SV_CALLER_TEST,RAP_TEST) and need ACCOUNTADMIN. - Read the snippet files for the chosen pattern.
- Act 1 — Problem: synthesize what the pattern solves in 2–3 sentences. Hint: "Ask 'tell me about other approaches' to see how Power BI / Tableau / dbt handle this."
- Act 2 — Data Model: walk through
schema.sql, deploy schema + seed viasnowflake_sql_execute(substituteSNIPPETS.PUBLIC→TARGET_DB.TARGET_SCHEMA), thenSELECT * LIMIT 5from each table. - Act 3 — SV Pattern: excerpt and annotate TABLES/RELATIONSHIPS/FACTS/DIMENSIONS/METRICS sections, then deploy.
- Act 4 — Live Queries: run each numbered query in
queries.sql, narrate the actual output values. - Act 5 — Gotchas: read
## What Doesn't Workand present each trap plainly. - Cleanup: list every object created, offer to drop them via the
-- CLEANUPblock.
Apply Workflow
- Match the request to the closest pattern; confirm with the user.
- Read
README.mdand the chosen format file (DDL or YAML). Skip schema/seed/queries. - Get the user's existing SV: pasted text, file path, or
GET_DDL('semantic_view', 'DB.SCHEMA.SV'). If from scratch, take table descriptions. - Show a mapping table (snippet role → user column) and have them fill it in. Ask only for what the pattern requires.
- Generate adapted output: a diff for existing SVs, a complete definition for new ones. Use the user's exact table/column names. For YAML, include the dry-run + deploy snippet.
- Flag schema-specific gotchas (composite keys, non-standard date grain).
- Offer to deploy, run test queries, or layer another pattern.
Common Mistakes
- Not confirming mode or format first — a Tutorial-mode answer to an Apply-mode user wastes both your time. Ask once at the start.
- Reverting to snippet names in adapted output — use the user's
FACT_ORDERS.ORDER_DATE, not the snippet'sFACT_SALES.SALE_MONTH. - Pasting the README verbatim — synthesize, don't dump.
- Skipping cleanup — always list created objects and offer to drop them.
- Generating YAML for DDL-only features silently — call out
ASOF,VARIABLES,WITH TAG,MATERIALIZATIONand emit the post-deploy DDL. - Cardinality wrong on a relationship — silently inflates metrics; verify with
SHOW METRICSand a row-count sanity query. - Fan trap from two facts joined through a shared dim without
USING— disambiguate with theUSING (relationship)clause on each metric. - Forgetting to switch roles in access-control snippets before running query blocks.
Related skills
Skill Builder & Optimizer
anthropics
Create, edit, and optimize Claude skills with performance testing and benchmarking.
CFO Financial Advisor
alirezarezvani
Build financial models, analyze unit economics, and plan fundraising strategy for startups.
Claude Code Session History Finder
daymade
Search and recover code from previous Claude Code sessions and conversations.
Network & Streaming Debugger
daymade
Debug network and streaming bugs using evidence-driven investigation and layered isolation experiments.