该技能用于学习、教学和应用 Snowflake Semantic View(SV)建模模式,内置 25 种模式,每个模式包含带注释的 DDL 与 YAML、种子数据以及实时 SEMANTIC_VIEW() 查询。
用途与两种模式:教程模式可将可运行示例部署到用户账户,逐步讲解 DDL/YAML、运行实时查询并清理;适用触发如“walk me through”“teach me”“what patterns are available”。应用模式读取用户已有 SV(或表清单),把模式的结构角色映射到用户列,生成适配的 DDL/YAML;触发如“apply X to my SV”“my tables are…”“help me implement”。模式不明确时应先询问用户选择哪种。
可用模式包括: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、standard_sql、inline_sv、materialization、scoped_dataset、row_access_policies、role_playing_dimensions、accumulating_snapshot、sv_diagnostics。其中 caller_rights、row_access_policies 标注需 ACCOUNTADMIN;inline_sv、materialization、scoped_dataset 标注为 PrPr。每个模式位于 <skill_dir>/snippets/<name>/,含 README.md、schema.sql、seed_data.sql、semantic_view.sql、semantic_view.yaml、queries.sql。
编写格式:需询问使用 DDL(CREATE SEMANTIC VIEW)还是 YAML(SYSTEM$CREATE_SEMANTIC_VIEW_FROM_YAML);用户已指定则跳过。YAML 校验与部署: CALL SYSTEM$CREATE_SEMANTIC_VIEW_FROM_YAML('DB.SCHEMA', $$ <yaml> $$, TRUE); CALL SYSTEM$CREATE_SEMANTIC_VIEW_FROM_YAML('DB.SCHEMA', $$ <yaml> $$); 导出:SELECT SYSTEM$READ_YAML_FROM_SEMANTIC_VIEW('DB.SCHEMA.SV');
仅 DDL 支持、无 YAML 等价物的特性:AI_QUESTION_CATEGORIZATION、WITH TAG、MAX_STALENESS、ADD MATERIALIZATION、VARIABLES、ASOF joins、TABLES 中的内联子查询,需部署后用 ALTER SEMANTIC VIEW 应用。
教程流程:按请求选模式或列出模式让用户选择;预检 SHOW DATABASES LIKE 'SNOWFLAKE_LEARNING_DB',存在则作为默认,否则询问 DATABASE.SCHEMA、角色和仓库,并记录创建的对象以便清理;访问控制片段使用硬编码库(SV_CALLER_TEST、RAP_TEST)且需 ACCOUNTADMIN。随后依次为 Act 1 问题阐述、Act 2 数据模型(部署 schema 与种子,SELECT * LIMIT 5)、Act 3 SV 模式(摘录注解 TABLES/RELATIONSHIPS/FACTS/DIMENSIONS/METRICS 并部署)、Act 4 实时查询(逐条运行并解说输出)、Act 5 陷阱(对照 ## What Doesn't Work),最后列出创建对象并提供清理。
应用流程:匹配最接近模式并确认;读 README.md 与所选格式文件,跳过 schema/seed/queries;获取用户现有 SV(粘贴文本、文件路径或 GET_DDL('semantic_view', 'DB.SCHEMA.SV'))或表描述;展示“片段角色→用户列”映射表由用户填写;生成适配输出(已有 SV 出 diff,新建出完整定义),使用用户真实表列名;YAML 附校验与部署片段;提示模式特有陷阱(复合键、非标准日期粒度);可提供部署、测试查询或叠加其他模式。
常见错误:未先确认模式或格式;适配输出仍沿用片段名而非用户列名;照搬 README;跳过清理;对仅 DDL 特性静默生成 YAML 而未提示 ASOF、VARIABLES、WITH TAG、MATERIALIZATION 并给出部署后 DDL;关系基数错误导致指标虚高,需用 SHOW METRICS 与行数校验;两个事实经共享维表未用 USING 造成扇形陷阱;访问控制片段查询前忘记切换角色。