Semantic View Editor

Snowsight 中的 Semantic View Editor 提供用于创建和编辑 语义视图 的可视化界面。无论是要细化由 Autopilot 创建的视图、从头开始构建视图,还是编辑上传的 YAML 规范,编辑器可帮助您定义业务概念、指标和数据关系。

Semantic View Editor 可以执行以下操作:

  • 定义映射到物理数据库表的逻辑表

  • 创建维度(分类属性)、事实(行级数据)和指标(汇总度量值)

  • 建立表之间的关系

  • 添加已验证的查询作为 Cortex Analyst 示例

  • 针对查询生成提供自定义指令

  • 配置同义词和描述以提高可发现性

访问编辑器

您可以通过数据目录或通过 Cortex Analyst 访问 Semantic View Editor

通过数据目录

要通过数据目录访问现有语义视图,请执行以下操作:

  1. 登录 Snowsight

  2. 在导航菜单中,选择 Catalog » Database Explorer

  3. 导航到数据库和架构。

  4. 在对象列表中选择 Semantic Views

  5. 选择要编辑的语义视图。

  6. 选择 Semantic information 选项卡以打开编辑器。

通过 Cortex Analyst

要通过 Cortex Analyst 访问语义视图,请执行以下操作:

  1. 登录 Snowsight

  2. 在导航菜单中,选择 AI & ML » Cortex Analyst

  3. 选择 Semantic Views 选项卡。

  4. 要么:

    • 选择现有视图进行编辑

    • 选择 Create new 以创建新的语义视图。

编辑语义视图元数据

语义视图名称和描述可帮助用户发现和理解视图的用途。

要编辑语义视图名称或描述,请执行以下操作:

  1. 在编辑器中,选择位于页面顶部的语义视图名称旁的 Edit

  2. 更新 NameDescription 字段。

  3. 选择 Save

小技巧

撰写清晰、详细的描述,说明以下内容:

  • 此视图可以解答哪些业务问题

  • 其中包括哪些数据源

  • 谁应该使用此视图

示例:“跨产品和客户的收入分析,包括同比趋势。使用此视图按区域、产品类别和客户群分析销售业绩。”

管理逻辑表

逻辑表表示业务实体(例如客户、订单或产品),并映射到物理数据库表或视图。每个语义视图都包含一个或多个逻辑表。

添加逻辑表

要将逻辑表添加到语义视图,请执行以下操作:

  1. 在编辑器中,选择 + Logical Table

  2. 从数据库中浏览并选择物理表或视图。

  3. 选择 Next

  4. 从表中选择要包含的列。

  5. 选择 Generate logical table

编辑器会根据所选列自动生成维度和事实。

编辑逻辑表

要修改现有逻辑表,请执行以下操作:

  1. 选择表名称旁边的 Edit`(或选择 :ui:`More options » Edit Logical Table)。

  2. 修改表属性:

    • Name:选择使用 时默认使用的角色和仓库。此表的业务友好名称

    • Description:选择使用 时默认使用的角色和仓库。此表所表示内容的说明

    • Synonyms:备用名称(逗号分隔)

    • Primary Key:选择使用 时默认使用的角色和仓库。唯一标识行的列

  3. 选择 Save

小技巧

使用 Generate fields 按钮让 AI 根据您的数据和列名称自动填写描述和同义词。这可以显着加快初始设置过程。

管理事实、维度和指标

在每个逻辑表中,您可以定义用户可以查询的业务概念:维度、事实和指标。

了解内容类型

  • 维度:提供上下文的分类属性(例如客户名称、产品类别或订单日期)

  • 事实:行级定量数据(例如销售额、数量或单价)

  • 指标:SUM、AVG 或 COUNT 等函数计算的汇总度量值(例如总收入、平均订单价值)

添加维度、事实或指标

要将新项目添加到逻辑表中,请执行以下操作:

  1. 在编辑器中导航到逻辑表。

  2. 选择 DimensionsFactsMetrics 旁边的 +

  3. 输入所需的详细信息:

    • Name:选择使用 时默认使用的角色和仓库。此项目的描述性名称

    • Expression:用于计算值的 SQL 表达式

    • Data Type:选择使用 时默认使用的角色和仓库。结果的数据类型

  4. 选择 Add

编辑或移除项目

要修改或删除现有维度、事实或指标,请执行以下操作:

  1. 选择项目以打开其详细信息并编辑属性。

  2. 或者选择 More options » Remove 删除项目。

  3. 选择 Save 以应用更改。

高级功能

派生指标:您可以创建组合多个表中指标的视图级指标。有关更多信息,请参阅 Defining derived metrics

专用访问修饰符:将事实或指标标记为专用,即可在查询中隐藏它们,同时仍能在其他计算中使用。有关更多信息,请参阅 Marking a fact or metric as private

指标的首选联接路径:如果有 两个逻辑表之间的多个关系路径,您可以从 Preferred join path 菜单选择要使用的关系。

管理关系

关系定义了逻辑表如何联接在一起,从而实现跨多个表的查询。每个关系定义一个表中的哪些列引用另一个表中的列。

添加关系

要在创建两个逻辑表之间的关系,请执行以下操作:

  1. 在编辑器中,选择 Relationships 旁的 +

  2. 输入关系的描述性 :ui:`Name`(例如,“orders_to_customers”)。

  3. 选择 :ui:`Left Table`(具有外键的表)。

  4. 选择 :ui:`Right Table`(被引用的表)。

  5. 为每个表指定 Join Columns

    • Left Column:选择使用 时默认使用的角色和仓库。左侧表中的外键列

    • Right Column:选择使用 时默认使用的角色和仓库。右侧表中的主键或唯一列

  6. 选择 Add

该关系现在显示在关系列表中,使 Cortex Analyst 可以生成联接这些表的查询。

备注

对于语义视图,通常不需要指定联接类型(左外部、内部)或关系类型(一对一、多对一)。这些是在查询时从数据和主键定义中自动推断出来的。

编辑或移除关系

要修改或删除关系,请执行以下操作:

  1. 选择关系以查看其详细信息。

  2. 根据需要编辑属性,或选择 Remove 将其删除。

  3. 选择 Save 以应用更改。

Cortex Analyst 的高级功能

要提高 Cortex Analyst 的准确性和可靠性,您可以通过经过验证的查询、同义词和自定义指令添加上下文和指导。

经过验证的查询

经过验证的查询提供示例问题及其正确的 SQL 答案。它们有两个用途:

  • 帮助 Cortex Analyst 了解如何回答类似问题

  • 为用户提供入门建议问题

添加经过验证的查询:

  1. 选择 Verified Queries 旁边的 +

  2. 输入自然语言 :ui:`Question`(例如,“收入排名前 10 的产品是哪些?”)。

  3. 输入正确回答该问题的对应 SQL Query

  4. (可选)检查 Use as onboarding question 是否将其显示为向用户提供的建议。

  5. 选择 Add

小技巧

为以下内容添加经过验证的查询:

  • 用户可能会问的常见业务问题

  • 需要特定逻辑的复杂查询

  • 边缘情况或异常计算

  • 展示视图功能的问题

同义词

备注

手动添加同义词,而不是使用 AI 自动生成同义词。专注于特定领域的备用名称,例如内部术语、缩写或旧名称。自动生成的同义词通常会降低语义视图的质量。

同义词可帮助用户使用替代术语发现和查询数据。例如,用户可能将“客户”称为“委托人”或“账户”。

向表或字段添加同义词:

  1. 导航到要添加同义词的表、维度、事实或指标。

  2. 选择 Edit 以打开项目属性。

  3. Synonyms 字段中输入替代术语,并用逗号分隔。

  4. 选择 Save

同义词示例:

  • 对于“customer_name”维度:“client name、account name、buyer name”

  • 对于“revenue”指标:“sales、income、earnings”

  • 对于“orders”表:“sales orders、purchases”

自定义指令

自定义指令针对 SQL 生成和问题分类提供 Cortex Analyst 的具体指导。使用自定义指令执行以下操作:

  • 定义业务规则和约束

  • 指定默认行为

  • 处理有歧义的问题

  • 拒绝某些类型的问题

通过以下方式添加自定义指令:

  1. 在编辑器中,选择 Custom Instructions 部分。

  2. 使用自然语言输入指令。示例:

    • “除非另有说明,否则始终按活跃客户筛选(状态 =‘ACTIVE’)”

    • “将所有货币值四舍五入到小数点后 2 位”

    • “当询问收入时,除非明确要求提供总收入,否则使用 net_revenue 指标”

    • “如果问题在未指定区域的情况下询问用户,则要求用户明确是哪个区域”

  3. 选择 Save

有关语义视图自定义指令的更多信息,请参阅 Providing custom instructions for Cortex Analyst

上传 YAML 文件

如果您有现有的语义视图 YAML 规范或旧的语义模型 YAML 文件,可以上传该文件以创建新的语义视图或更新现有语义视图。

要上传 YAML 文件,请执行以下操作:

  1. 在导航菜单中,选择 AI & ML » Cortex Analyst

  2. 选择 Create new » Upload YAML file

  3. 浏览并选择您的 YAML 文件。

  4. 在编辑器中查看生成的语义视图结构。

  5. 选择 Convert and save,按架构级对象创建语义视图。

编辑器将 YAML 规范转换为原生 Snowflake 语义视图,然后您可以使用可视化界面进行编辑。

有关 YAML 规范格式的信息,请参阅 语义视图的 YAML 规范

有关以编程方式将规范转换为语义视图的信息,请参阅 根据 YAML 规范创建语义视图

共享和授予权限

要允许其他用户或角色使用您的语义视图,您需要授予他们适当的权限。

通过编辑器授予访问权限

要快速授予对语义视图的访问权限,请执行以下操作:

  1. 在编辑器中,选择 Share`(或 :ui:`More options » Share)。

  2. 选择要授予访问权限的角色。

  3. 确认授权操作。

这将同时授予对语义视图的 SELECT 和 REFERENCES 权限,允许角色执行以下操作:

  • 查询语义视图

  • 将语义视图与 Cortex Analyst 搭配使用

了解权限

语义视图支持 Snowflake 的标准权限模型:

  • SELECT:查询语义视图并查看其内容时需要

  • REFERENCES:将语义视图与 Cortex Analyst 搭配使用并查看其结构时需要

  • OWNERSHIP:对语义视图的完全控制权

有关授予语义视图权限的更多信息,包括未来授权和更复杂的场景,请参阅 授予语义视图的权限

共享语义视图

您可以使用 Snowflake 的共享机制跨账户共享语义视图。有关更多信息,请参阅 共享语义视图