Cortex Analyst 的路由模式¶
路由模式是一种查询生成策略,优先采用语义化 SQL 查询,仅在必要时回退至标准 SQL 查询。它相当于一个更简单的 SQL 版本,其安全防护机制来源于您的语义视图。路由模式使用您的语义视图来提高准确性和一致性。因此,指标、联接和筛选器遵循语义视图中的治理定义。
当基于语义视图生成查询时,Cortex Analyst 会自动使用路由模式。除了获得更高的文本转 SQL 质量外,您的工作流程无需任何改变。
备注
路由模式不会更改权限。语义视图是具有标准权限的 Snowflake 对象;访问权限的强制执行方式与表或视图相同。
路由模式的优势¶
路由模式具有以下优势:
一致的指标: 查询使用来自语义视图(而不是 SQL)的定义。
更安全的默认值: 维度、指标和联接来自受治理的元数据。
适合 LLM: 更简短的 SQL 能让 LLM 更准确地生成结果。
路由模式在以下情况下可能很有用:
您有一个或多个定义核心业务实体和指标的语义视图。
您希望为常见问题提供一致的答案,并为边缘情况提供灵活性。
例如,考虑以下场景以及路由模式如何处理这些场景:
通过业务维度查询受治理指标
用户意图:“按客户细分划分的平均订单价值。”
路由行为: 先尝试语义 SQL,因此联接和指标计算来自视图。
SELECT * FROM SEMANTIC_VIEW( tpch_analysis DIMENSIONS customer.customer_market_segment METRICS orders.order_average_value ) ORDER BY customer_market_segment;
优势: 无需手动联接或指标公式。结果与您的 BI 定义保持一致。
使用单一维度的多个受治理指标
用户意图:“按年份显示总收入和订单数。”
SELECT * FROM SEMANTIC_VIEW( tpch_analysis DIMENSIONS orders.order_year METRICS orders.total_revenue, orders.order_count ) ORDER BY order_year;
优势: 这两个指标使用与语义视图中相同的定义和筛选器。
未覆盖请求的回退
用户意图:“显示未在视图中建模的原始列或转换。”
路由行为: 如果语义视图无法满足请求,Cortex Analyst 会自动路由到基于基表的标准 SQL。
优势: 在不阻塞用户的前提下提供了灵活性。
工作原理¶
以下过程概述了 Cortex Analyst 在使用路由模式时执行的步骤。
Cortex Analyst 在 Playground、API 和所有产品界面中使用路由模式。
Cortex Analyst 尝试生成语义 SQL。
SELECT … FROM SEMANTIC_VIEW(...).
如果 Cortex Analyst 在超时时间内无法生成能够回答问题的有效语义 SQL 查询,则会路由到基于物理表的标准 SQL。
备注
总体而言,路由模式仅在大约 10% 的查询中会生成语义 SQL。此比例会根据语义视图中定义的指标所覆盖的业务范围而变化。
注意事项¶
如果语义视图无法满足某个问题,Cortex Analyst 将回退到标准 SQL。您应该扩展语义视图,以逐步减少回退的发生。