语义视图概述¶
You can store semantic business concepts directly in the database in a semantic view, which is a new schema-level object. You can define business metrics and model business entities and their relationships. By adding business meaning to physical data, the semantic view enhances data-driven decisions and provides consistent business definitions across enterprise applications.
You can use semantic views in Cortex Analyst and query these views in a SELECT statement. You can also share semantic views in private listings, in public listings on the Snowflake Marketplace, and in organizational listings.
To create and manage semantic views, you can use SQL commands (such as CREATE SEMANTIC VIEW) or a wizard in Snowsight that guides you through the process of creating a semantic view.
备注
语义视图被视为 元数据。
为什么使用语义视图?¶
语义视图解决了业务用户描述数据的方式与数据库架构中数据存储方式之间不匹配的问题。例如,对于像 总收入 这样的关键业务概念,数据可能会存储在数据库中名为 amt_ttl_pre_dsc 的表列中,这使得业务用户很难找到并解释其含义。
此外,如果公司内部的 净收入 始终表示折扣后的总收入,则语义视图可以将其一致地定义为一个具有正确聚合的指标:SUM(gross_revenue * (1 - discount))。这确保了一个具有正确聚合行为的权威定义。例如,当用户要求查询“按地区划分的净收入”时,语义视图能在适当的级别上进行汇总,而如果没有语义视图,不同的报表和应用程序中可能会存在数十种不一致的计算,常常使用不正确的聚合方法从而导致错误的结果。
这个以业务为中心的抽象层解决了几个常见问题:
对于 AI 应用程序: 语义视图通过结合 LLM 推理和基于规则的定义,提升查询结果的准确性。目前,Cortex Analyst 会读取语义视图定义中获取的信息,并直接根据物理表生成 SQL 查询。
对于商业智能 (BI): 业务用户受益于所有工具中一致的指标和维度。他们可以轻松地将这些预定义的业务概念组合到熟悉的 BI 界面中,以探索数据并获得见解。
对于技术分析师: 业务逻辑的集中位置减少了在查询中重复定义指标的情况,并简化了复杂的架构关系,使构建和维护数据模型更加容易。
了解语义视图¶
备注
在本主题中,与数据库相关的对象(例如数据库表)被称为 物理对象,与语义视图相关的对象被称为 逻辑对象。
在语义视图中,您可以定义逻辑表,这些表通常对应业务实体,例如客户、订单或供应商。您可以通过共享密钥联接来定义逻辑表之间的关系,从而使您能够跨实体分析数据(就像联接数据库表时一样)。
通过逻辑表,您可以定义:
事实: 事实是数据模型中的行级属性,代表特定的业务事件或事务。虽然可以使用来自更详细级别的数据(例如
SUM(t.x),其中t表示更详细的数据)的聚合来定义事实,但它们始终以属性形式显示在逻辑表的各个行级别。事实用于获取最精细的“金额”或“数量”,例如个人销售额、购买数量或成本。值得注意的是,事实通常在语义视图中充当“助手”概念,以帮助构造维度和指标。指标: 指标是用于衡量业务绩效的可量化指标,通过汇总同一表中的事实或其他列(如使用 SUM、AVG 和 COUNT 等函数)跨多行计算得出。它们将原始数据转换为有意义的业务指标,常以复杂公式组合多个计算。示例包括 总收入 或 利润率百分比。指标表示报告和仪表板中用于推动业务决策的 KPIs。
维度: 维度表示分类属性。它们提供上下文框架,通过将数据分组为有意义的类别来赋予指标意义。他们回答“谁”、“什么”、“在哪里”和“何时”的问题,例如购买日期、客户详情、产品类别或地理位置等。维度通常基于文本或分层结构,使用户能够从多个角度筛选、分组和分析数据。
在语义视图中,这三个元素各自发挥着不同的作用,但是指标和维度是您在通过语义视图分析数据时与之交互的主要元素。事实提供基本的行级数值数据,指标通过聚合和计算将数据转化为具有行动意义的见解,而维度决定视角。
有关更多信息,请参阅 语义模型规范中的关键概念部分。
使用语义视图的接口¶
您可以使用以下接口来创建、管理和使用语义视图:
** SQL 命令**:您可以使用 SQL 命令直接创建和管理语义视图。有关信息,请参阅 使用 SQL 命令创建和管理语义视图。
You can also execute a SELECT statement to query a semantic view.
Snowsight: You can use a wizard in Snowsight that guides you through the process of creating a semantic view. You can also upload a Cortex Analyst semantic model specification that defines your semantic view. For information, see Using Snowsight to create and manage semantic views.
Cortex Analyst REST API:要将语义视图与 Cortex Analyst 一起使用,请在 REST API 请求中指定该视图。有关信息,请参阅 Cortex Analyst REST API。
限制¶
不支持 复制 语义视图。
开始使用¶
要开始使用语义视图,请执行以下操作:
设计您的业务数据模型。
您的数据中存在哪些业务实体(例如客户、产品、订单等)?
这些实体如何相互关联?
哪些指标对您的业务很重要?
您使用什么维度来分析这些指标?
将业务概念映射到物理数据。
哪些表包含您需要的数据?我们建议从简单的星型架构开始。
您将如何联接这些表?
需要进行哪些计算才能得出您的指标?
创建语义视图。
您可以使用 其中一个接口 来创建语义视图。
以下列方式使用语义视图:
将 Cortex Analyst 用于语义视图的自然语言查询。
您可以使用 Cortex Analyst REST API 执行使用语义视图的自然语言查询。
如果您需要监控使用语义视图的 REST API 请求,请参阅 Cortex Analyst 管理员监控。
Query the semantic view in a SELECT statement. For information, see 查询语义视图.
有关语义视图的其他信息¶
有关语义视图的其他信息,请参阅以下主题:
For information about the privileges required to work with semantic views, see the following sections:
有关语义视图的 SQL 命令和视图的参考信息,请参阅以下主题:
有关 SQL 命令的文档:
有关 ACCOUNT_USAGE 视图的文档:
有关 INFORMATION_SCHEMA 视图的文档: