Snowflake Intelligenceはどう分析する?Cortex Analystでデータ分析を実現する仕組みを解説

ブログ

はじめに


こんにちは!本元です。

前回の記事では、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のチュートリアルで公開されているサンプルデータ(アパレル小売業の販売データ)を使用します。

GitHub - Snowflake-Labs/sfguide-getting-started-with-snowflake-intelligence-ja: For JP, Snowflake Intelligence demo
For JP, Snowflake Intelligence demo. Contribute to Snowflake-Labs/sfguide-getting-started-with-snowflake-intelligence-ja...

質問に対する回答は、以下の2つのテーブルを組み合わせることで取得します。
そのため、どのテーブルに必要な情報があるのか、またテーブル同士を結合するためのキーを事前に把握しておく必要があります。

  • SALES:売上データ(売上金額、商品ID、日付などを保持)
  • PRODUCTS:商品データ(商品ID、カテゴリなどを保持)
    ※2つのテーブルは商品IDで結合します

■ Semantic Modelの設定内容

前章で示した各設定項目に対して、今回は以下のように設定します。

設定内容のイメージとして、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公式ドキュメントをご参照ください。  

SYSTEM$CREATE_SEMANTIC_VIEW_FROM_YAML | Snowflake Documentation

■ 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の活用や導入についてご相談がありましたら、お気軽にお問い合わせください。

参考にしたサイト


コメント

タイトルとURLをコピーしました