snowflake-semanticview

snowflake-semanticview

热门

使用 Snowflake CLI (snow) 创建、修改和验证 Snowflake 语义视图。当需要构建或排查语义视图/语义层定义(使用 CREATE/ALTER SEMANTIC VIEW)、通过 CLI 验证语义视图 DDL 或指导 Snowflake CLI 安装和连接设置时使用。

3.6万Star
4556Fork
更新于 2026/7/13
SKILL.md
readonly只读
name
snowflake-semanticview
description

使用 Snowflake CLI (snow) 创建、修改和验证 Snowflake 语义视图。当需要构建或排查语义视图/语义层定义(使用 CREATE/ALTER SEMANTIC VIEW)、通过 CLI 验证语义视图 DDL 或指导 Snowflake CLI 安装和连接设置时使用。

Snowflake 语义视图

一次性设置

每个语义视图请求的工作流程

  1. 确认目标数据库、模式、角色、仓库和最终语义视图名称。
  2. 确认模型遵循星型模式(事实表与一致维度)。
  3. 使用官方语法起草语义视图 DDL:
  4. 为每个维度、事实和度量填充同义词和注释:
  5. 使用带有 DISTINCT 和 LIMIT(最多 1000 行)的 SELECT 语句发现事实表和维度表之间的关系,识别列数据类型,并为列创建更有意义的注释和同义词。
  6. 创建临时验证名称(例如,追加 __tmp_validate),同时保持相同的数据库和模式。
  7. 始终通过 Snowflake CLI 将 DDL 发送到 Snowflake 进行验证,然后再最终确定:
    • 使用 snow sql 执行语句,使用已配置的连接。
    • 如果不同版本的标志不同,请检查 snow sql --help 并使用其中显示的连接选项。
  8. 如果验证失败,迭代修改 DDL 并重新运行验证步骤,直到成功。
  9. 使用真实的语义视图名称应用最终的 DDL(创建或修改)。
  10. 对最终的语义视图运行示例查询,以确认其按预期工作。其 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;
  1. 清理验证期间创建的任何临时语义视图。

同义词和注释(必需)

  • 使用语义视图语法添加同义词和注释:
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

注意事项

  • 将安装和连接设置视为一次性步骤,但在首次验证前确认它们已完成。
  • 保持最终语义视图定义与已验证的临时定义相同,仅名称不同。
  • 不要省略同义词或注释;即使语法中可选,也将其视为必需以保持完整性。