Cortex Analystのルーティングモード¶
ルーティングモードは、セマンティック SQL を優先して、必要な場合にのみ標準 SQL にフォールバックするクエリ生成戦略です。SQL のよりシンプルなバージョンとして機能しますが、セマンティックビューからのガードレールを使用します。ルーティングモードでは、セマンティックビューを使用して、より高い精度と一貫性を実現します。その結果、メトリック、結合、フィルターはセマンティックビューの管理された定義に従います。
Cortex Analystは、セマンティックビューに基づく生成時に、自動的にルーティングモードを使用します。Text-To-SQLの品質が向上することを除いて、ワークフローに変更はありません。
注釈
ルーティングモードは権限を変更しません。セマンティックビューは、標準の権限を持つSnowflakeオブジェクトです。アクセスは、テーブルやビューと同じ方法で強制されます。
ルーティングモードの利点¶
ルーティングモードには、次の利点があります。
一貫性のあるメトリック: クエリは SQL ではなく、セマンテックビューからの定義を使用します。
安全なデフォルト: ディメンション、メトリック、および結合は、管理されたメタデータから取得します。
LLM フレンドリー: SQL が短いほど、LLM が正しく生成しやすくなります。
ルーティングモードは、次の状況で有益な場合があります。
主要なビジネスエンティティとメトリックを定義する1つ以上のセマンティックビューがあります。
一般的な質問に対する一貫した回答と、エッジケースに対応する柔軟性が必要です。
たとえば、次のシナリオと、ルーティングモードがそれらのシナリオをどのように処理するかを考えます。
管理されたメトリックをビジネスディメンション別に求める
ユーザーの意図: 「顧客セグメントごとの平均注文値」。
ルーティングの動作: まず、セマンティック SQL を試すので、結合とメトリック計算はビューに由来します。
SELECT * FROM SEMANTIC_VIEW( tpch_analysis DIMENSIONS customer.customer_market_segment METRICS orders.order_average_value ) ORDER BY customer_market_segment;
利点: 手動結合やメトリック式はありません。結果は BI 定義と一致します。
複数の管理されたメトリックと1つのディメンション
ユーザーの意図: 「年ごとの総売上と注文数を表示する」。
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はプレイグラウンド、API、およびすべての製品のサーフェスでルーティングモードを使用します。
Cortex Analystは、セマンティック SQL の生成を試みます。
SELECT … FROM SEMANTIC_VIEW(...).
Cortex Analystが、タイムアウト内に質問に回答する有効なセマンティック SQL クエリを生成できない場合、Cortex Analystは物理テーブルでの標準 SQL にルーティングします。
注釈
ルーティングモードでは、セマンティック SQL になるのは、合計でクエリの約10%のみです。この数値は、セマンティックビューで定義されたメトリックの適用範囲によって異なります。
考慮事項¶
セマンティックビューでは質問を満たせない場合、Cortex Analystは標準 SQL にフォールバックします。時間とともにフォールバックを減らすために、セマンティックビューを展開する必要があります。