SKILL.md
readonly只读
name
snowflake-semanticview
description
使用 Snowflake CLI (snow) 创建、修改和验证 Snowflake 语义视图。当需要构建或排查语义视图/语义层定义(使用 CREATE/ALTER SEMANTIC VIEW)、通过 CLI 验证语义视图 DDL 或指导 Snowflake CLI 安装和连接设置时使用。
Snowflake 语义视图
一次性设置
- 打开新终端并运行
snow --help验证 Snowflake CLI 是否已安装。 - 如果 Snowflake CLI 缺失或用户无法安装,请引导用户访问 https://docs.snowflake.com/en/developer-guide/snowflake-cli/installation/installation。
- 使用
snow connection add配置 Snowflake 连接,详见 https://docs.snowflake.com/en/developer-guide/snowflake-cli/connecting/configure-connections#add-a-connection。 - 在所有验证和执行步骤中使用已配置的连接。
每个语义视图请求的工作流程
- 确认目标数据库、模式、角色、仓库和最终语义视图名称。
- 确认模型遵循星型模式(事实表与一致维度)。
- 使用官方语法起草语义视图 DDL:
- 为每个维度、事实和度量填充同义词和注释:
- 首先读取 Snowflake 表/视图/列注释(首选来源):
- 如果注释或同义词缺失,询问是否可以创建它们、用户是否希望提供文本,或者是否应起草建议供批准。
- 使用带有 DISTINCT 和 LIMIT(最多 1000 行)的 SELECT 语句发现事实表和维度表之间的关系,识别列数据类型,并为列创建更有意义的注释和同义词。
- 创建临时验证名称(例如,追加
__tmp_validate),同时保持相同的数据库和模式。 - 始终通过 Snowflake CLI 将 DDL 发送到 Snowflake 进行验证,然后再最终确定:
- 使用
snow sql执行语句,使用已配置的连接。 - 如果不同版本的标志不同,请检查
snow sql --help并使用其中显示的连接选项。
- 使用
- 如果验证失败,迭代修改 DDL 并重新运行验证步骤,直到成功。
- 使用真实的语义视图名称应用最终的 DDL(创建或修改)。
- 对最终的语义视图运行示例查询,以确认其按预期工作。其 SQL 语法不同,如下所示:https://docs.snowflake.com/en/user-guide/views-semantic/querying#querying-a-semantic-view
示例:
SELECT * FROM SEMANTIC_VIEW(
my_semview_name
DIMENSIONS customer.customer_market_segment
METRICS orders.order_average_value
)
ORDER BY customer_market_segment;
- 清理验证期间创建的任何临时语义视图。
同义词和注释(必需)
- 使用语义视图语法添加同义词和注释:
WITH SYNONYMS [ = ] ( 'synonym' [ , ... ] )
COMMENT = 'comment_about_dim_fact_or_metric'
- 将同义词视为仅用于信息目的;不要在其他地方引用维度、事实或度量。
- 优先使用 Snowflake 注释作为同义词和注释的来源:
- 如果 Snowflake 注释缺失,询问是否可以创建它们、用户是否希望提供文本,或者是否应起草建议供批准。
- 未经用户批准,不要凭空编造同义词或注释。
验证模式(必需)
- 切勿跳过验证。在将其作为最终结果呈现之前,始终通过 Snowflake CLI 对 Snowflake 执行 DDL。
- 优先使用临时名称进行验证,以避免覆盖真实视图。
CLI 验证示例(模板)
# 将占位符替换为实际值。
snow sql -q "<CREATE OR ALTER SEMANTIC VIEW ...>" --connection <connection_name>
如果您的版本中的 CLI 使用不同的连接标志,请运行:
snow sql --help
注意事项
- 将安装和连接设置视为一次性步骤,但在首次验证前确认它们已完成。
- 保持最终语义视图定义与已验证的临时定义相同,仅名称不同。
- 不要省略同义词或注释;即使语法中可选,也将其视为必需以保持完整性。






