mcpField
S
snowflake-semanticview

snowflake-semanticview

github.com/github数据与数据库40.5k9.0k 次安装今天更新
代码仓库

关于 snowflake-semanticview

用于 Snowflake 语义视图的技能,指导分析模型、编写 DDL,并通过 Snowflake CLI 验证后创建视图。适合需要按既定流程构建语义视图的 Snowflake 用户。

主要功能

  1. 01语义视图 DDL 编写
  2. 02星型模型关系分析
  3. 03同步注释与同义词
  4. 04临时视图验证与清理
  5. 05执行最终语义视图查询

适用场景

  1. 01根据事实表和维度表构建语义视图
  2. 02验证 DDL 后部署正式视图

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/github/awesome-copilot --skill snowflake-semanticview

安装后在 Claude Code 中输入/snowflake-semanticview确认已加载。

详细介绍

Snowflake 语义视图

一次性设置

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

  1. 确认目标数据库、schema、角色、warehouse 和最终语义视图名称。
  2. 确认模型遵循星型 schema(事实表与一致性维度)。
  3. 使用官方语法草拟语义视图 DDL:
  4. 为每个维度、事实和指标填充同义词和注释:
  5. 使用带 DISTINCT 和 LIMIT(最多 1000 行)的 SELECT 语句来发现事实表与维度表之间的关系,识别列数据类型,并为列创建更有意义的注释和同义词。
  6. 创建临时验证名称(例如追加 __tmp_validate),同时保持相同的数据库和 schema。
  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 注释,请询问是否可以创建它们、用户是否希望提供文本,或者是否应由你草拟建议以供批准。
  • 未经用户批准,不要编造同义词或注释。

验证模式(必需)

  • 绝不要跳过验证。在将 DDL 作为最终结果呈现之前,始终使用 Snowflake CLI 针对 Snowflake 执行它。
  • 验证时优先使用临时名称,以避免覆盖真实视图。

CLI 验证示例(模板)

# Replace placeholders with real values.
snow sql -q "<CREATE OR ALTER SEMANTIC VIEW ...>" --connection <connection_name>

如果你的版本中 CLI 使用不同的连接标志,请运行:

snow sql --help

说明

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

评论

支持 Markdown