はじめに
こんにちは!本元です。
前回の記事では、Snowflake Intelligenceの中核となるCortex Agents単体で、どのようなことができるのかをご紹介しました。
【前回の記事】
Snowflake Intelligenceはどう動く?Cortex Agentsを軸に内部の仕組みを読み解く
前回の記事から、Cortex AgentsからSnowflake内のデータを利用するためには、Cortex Analystなどのツールを組み合わせる必要があることが分かりました。
本記事では、「Snowflake Intelligenceでデータを使った分析方法を知りたい」技術者の方向けに、Cortex Analystに焦点を当て、データ分析がどのような仕組みで実現されるのかを解説します。
本記事でわかること
- Cortex Analystの役割と、Snowflake Intelligenceにおける位置づけ
- Cortex Analyst と Semantic Modelの関係性と設定する内容
- Cortex Agents と Cortex Analyst を組み合わせることでデータが集計できること
Cortex Analyst とは
■ Cortex Analyst の役割と位置づけ
Cortex Analystは、Snowflake Intelligenceの全体構成において以下の赤枠部分に該当し、自然言語の質問をもとにSQLを生成し、データの集計を行う機能です。

■ Cortex Analyst の仕組み
Cortex Analystは、Semantic Modelと呼ばれる設定情報を使って、自然言語の質問をSQLに変換し、変換されたSQLをもとに、Snowflake内のデータを集計します。
そのため、どのデータを使用し、どのように集計するかは、Semantic Modelの設定内容によって決まります。
■ Semantic Model の設定内容
Semantic Modelは、SnowsightまたはSQLで設定することができ、以下の内容を定義します。
| 設定項目 | 設定内容 |
|---|---|
| 分析指標の設定 | 集計するテーブルやカラム、計算式、出力書式を設定する |
| 分析軸の設定 | 集計の切り口となる属性や時間軸を設定する |
| データの関係性の設定 | テーブル間の結合条件を設定する |
| 用語と意味の設定 | 自然言語の単語とデータ項目の対応関係を設定する |
これらの設定によって生成されるSQLが変わるため、利用シーンに応じた設計が重要です。
設計する際には、どのような分析を行いたいかを起点に、それがどのように質問されるかを想定して、設定内容を設計する必要があります。
Cortex Analyst の設定
今回の設定は、前回の記事では回答できなかった以下の質問を回答できるための設定を行います。
「2025年7月の売上をカテゴリ別に教えてください」
■ 使用するデータ
前回の記事と同様に、Snowflakeのチュートリアルで公開されているサンプルデータ(アパレル小売業の販売データ)を使用します。
質問に対する回答は、以下の2つのテーブルを組み合わせることで取得します。
そのため、どのテーブルに必要な情報があるのか、またテーブル同士を結合するためのキーを事前に把握しておく必要があります。
- SALES:売上データ(売上金額、商品ID、日付などを保持)
- PRODUCTS:商品データ(商品ID、カテゴリなどを保持)
※2つのテーブルは商品IDで結合します
■ Semantic Modelの設定内容
前章で示した各設定項目に対して、今回は以下のように設定します。
| 設定項目 | 今回の設定内容 |
|---|---|
| 分析指標の設定 | 売上データの売上金額を集計対象として設定する |
| 分析軸の設定 | 商品データのカテゴリや売上データの日付を、集計の切り口として分析できるように設定する |
| データの関係性の設定 | 売上データと商品データを、商品IDで結合して扱えるようにする |
| 用語と意味の設定 | 「売上」「カテゴリ」「2025年7月」といった自然言語を、それぞれ対応するカラム(売上金額・カテゴリ・日付)として解釈できるように設定する |
設定内容のイメージとして、SQLで定義したSemantic Modelの内容を一部抜粋します。
本記事では設定内容の考え方に焦点を当てるため、必要な箇所のみを抜粋しています。
① 分析指標の設定(売上)/ 用語と意味の設定
facts:
- name: SALES_AMOUNT
synonyms:
- 売上金額
- 売上
- 売上額
expr: SALES_AMOUNT
② 分析軸の設定(カテゴリ・日付)/ 用語と意味の設定
dimensions:
- name: CATEGORY
synonyms:
- カテゴリ
- 商品カテゴリ
expr: CATEGORY
time_dimensions:
- name: DATE
synonyms:
- 日付
- 年月
expr: DATE
data_type: DATE
③ データの関係性の設定
relationships:
- name: SALES_TO_PRODUCT
left_table: SALES
right_table: PRODUCTS
relationship_columns:
- left_column: PRODUCT_ID
right_column: PRODUCT_ID
詳細な設定方法については、以下Snowflake公式ドキュメントをご参照ください。
■ Cortex Agents の設定
Semantic Modelを設定することで、Cortex Analystが作成されます。
作成したCortex Analystを利用するためには、SnowsightのCortex Agents設定画面で、ツールとして紐づける必要があります。


Cortex Agents で分析してみる
前回、Cortex Agents単体ではデータを利用した分析はできませんでしたが、上記の設定を行うことでカテゴリ別の売上を集計することができました。


まとめ
本記事で分かったことは以下の通りです。
- Cortex Analystは、Semantic Modelをもとに自然言語をSQLに変換し、データを集計する役割を持つ
- Cortex Analystを連携することで、Snowflake内のデータに基づいた分析が可能になる
- Cortex Analystの動作は、Semantic Modelの設定内容に基づいて決まる
- そのため、Cortex Analystでは、データ構造や分析目的に応じた設計が重要になる
次の記事では、まだ試していないCortex Searchを使って、実際にどのようにデータ分析が変わるのかを見ていきます。
Snowflake Intelligenceの活用や導入についてご相談がありましたら、お気軽にお問い合わせください。
参考にしたサイト
- Cortex Analyst 公式ドキュメント
https://docs.snowflake.com/ja/user-guide/snowflake-cortex/cortex-analyst - Semantic View 公式ドキュメント
https://docs.snowflake.com/ja/user-guide/views-semantic/overview



コメント